我们正在为我们的项目构建一个新的数据管道,我们必须将SQL服务器上每天发生的增量更新转移到Azure synapse中进行一些数字处理。我们必须将跨60+表发生的更新(每天1-200万次更新)放入synapse中,以便在一天中发生的时候压缩一些聚合和统计数据。
其中一个要求是接近实时,并且批量导入synapse并不理想,因为它需要10分钟以上的时间对所有数据进行完整计算。
我一直在阅读关于CDC feed到synapse https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-change-data-capture-feature-portal的文章,这是一种可能的解决方案。想知道是否有其他替代方案或建议,以实现数据库更新的数据处理近乎实时的最终目标。
发布于 2021-11-01 11:18:25
变更数据捕获(CDC)是捕获变更并添加到目标位置(存储/数据库)的合适方法。
除此之外,您还可以使用水印列来捕获SQL Server中多个表中的更改。
为源数据存储中的每个表选择一列,您可以在每次运行时标识新记录或更新的记录。通常,在创建或更新行时,此选定列中的数据(例如,last_modify_time或ID)会不断增加。此列中的最大值用作水印。
以下是此方法的高级解决方案图:

这个官方文档Incrementally load data from multiple tables in SQL Server to Azure SQL Database using PowerShell给出了一步一步的方法。
https://stackoverflow.com/questions/69771632
复制相似问题