A vendor has provided us with read-only access to a cloud SQL (2014) database for reporting purposes.
We originally built some local reports off this database directly, but that proved too slow and inflexible.
Then we wrote some PowerShell scripts to drop and re-import a dozen or so needed tables to a local SQL 2019 server, and that definitely gives us the reporting performance and flexibility we need, but now has also proven too slow, as it tries to re-import million-row tables several times per day.
We are now discussing a new version of our process that uses the MODIFY_DATE column of the large tables to only import new rows, but will also have to handle modified rows. Not too hard, but also not trivial.
Am I on the right track here? If these were both under my control, I'd have set up transactional replication from the very beginning, but I don't have any ability to modify the configuration of the vendor's source database.
None of the fancier replication options would work here, would they? (Pull replication, Merge replication, etc.)
Are there clean options I'm missing? Does SSIS have easy ways to do this kind of "upsert" logic for scenarios like this?