I have a transactional (OLTP) database with tables that have about 100 million rows. I have on another server a data warehouse with similar size tables. I would like to update the data warehouse close to real time. Data is entered into the transactional database at a rate of thousands of rows within minutes by thousands of users. I wonder if using a trigger to insert, possibly into a staging database on the same server where the transactional database resides is a good option that will not hit performance of the transactional database. Or, should I use an ETL process? Is using CSV files a preferred (faster, less load on the source database) approach, compared to inserting into database tables? Any other ideas? Thank you very much.