I was wondering what the best solution/practice would be for the following scenario:
We have a complex data structure with many tables creating one product, there are +- 20 million records. These products get updated on a daily basis and anywhere from 100K - 1 million records are affected each day.
We have a online read only database as well that holds a watered down version of the product record, a basic flat structure of the most crucial fields.
What would be the best way to keep the online version up to date, but have it updated outside of working hours?
I have 2 ideas, but not sure if either are the best or even plausible.
1. Create the update/insert queries that will populate the online version and that will connect form our internal system to the online version and run it as a job each night at a certain time.
2. Setup some sort of replication, Log shipping? I realize that in this option, I will need to create a local version of the online table(s) and populate it with the same queries used in step 1, but then the replication will handle the actual data transfer etc.
Or is there another way of simplifying this task?