将用于报告目的的表复制到单独的数据库

Copying tables for reporting purposes to a separate database

我有一个事务数据库(SQL Server 2014)大约有 60 tables,并且需要创建一个单独的报告数据库用于报告目的。

这只需要每 24 小时 运行 - 但是我需要将数据移动到一个不同的、查询更友好的模式中!

因此,我希望我可以在事务数据库上创建一些视图,然后根据报告数据库中的视图创建一个 table 并复制数据。

我最初想写一个预定的 Windows 服务,以某种方式从 table 中提取数据并插入到新的数据中,但后来想到如果模式发生变化,它必须分两次更新地方,还以为肯定是企业 SQL 服务器许可证肯定有一些技巧。

然后我在特定的 table 上调查了 'database mirroring',但这看起来很快就会被弃用。

'Log shipping' 看起来更像是一种灾难恢复解决方案!

是否有解决此问题的行业'best'方法?

您将需要设计一个 ETL 过程来从源数据库中提取数据,对其进行转换并将其加载到报告数据库中。您可以使用许多工具来简化此操作。您可以使用 SSIS、Azure Data Factory for Azure SQL,还有许多其他选项。您可以使用 SQL 代理将存储过程安排到 运行 您的 ETL 过程。

您的目标数据库看起来与源数据库有很大不同。确实没有快速的方法(如安排备份一样快速)来完成此操作。有很多关于数据仓库和 ETL 设计的信息可以帮助您决定如何进行。