我们正在为我们的软件开发一个报告模块,因此我们需要将一些数据从系统的生产数据库移动到一个数据仓库数据库中,该数据库将用作报告的数据源(SQL Server 报告)。
生产数据库中的模式已经很老了,所以一旦我们在 DW 数据库中有数据,我们将需要一些额外的字段(例如,从 prod 数据库的“日期”和“时间”整数列中计算出正确的日期时间列。 (别问了,老了。)
我们正在内部讨论如何以有效的方式做到这一点。现在,它是在一个丑陋的 SSIS 作业中实现的,基本上每晚都会拆除整个 DW DB,然后从 prod db 重新构建它,同时进行数据转换。这不能很好地扩展。
我一直在研究使用“更新”的技术,例如 SQL Server 复制以更精细的方式移动数据。
我对此的问题是: - 通过复制,“移动数据”部分显然得到了解决,但数据转换部分没有得到解决。我知道我可以在 DW DB 上创建更新触发器,但是每当我对订阅进行重新初始化时,所有与表相关的触发器似乎都会被擦除,这使得设置变得困难。
我不是在这里寻找一个确切的答案,更多的是关于采取这个方向的提示。对不起,如果问题有点模糊。
更新: 感谢下面的好点。这是我们向客户销售的软件,因此我非常喜欢为客户设置和维护尽可能少的“配置项”。今天的 SSIS 包是客户需要密切关注的另一个“项目”,以及它的时间表。
复制让我很感兴趣,因为它在移动数据时完全抽象了整个 CRUD “困境”,但你可能是对的 - SSIS 仍然会更好,只要 SSIS 逻辑的创建比现在更智能一点。
数据可能非常大,因此像我们今天所做的那样擦除和重新导入所有内容绝对是一个需要解决的问题。