sql-server - ETL 的变更捕获替代方案
问题描述
我们需要从 SQL 数据库中提取数据到数据湖,使用 Azure 数据流进行转换,并将数据加载到 Azure SQL 数据库中作为最终目的地。
SQL 数据库表只有记录的插入日期时间。不捕获记录的更新日期时间。新记录可以根据插入日期值以增量方式引入,但我们正试图找到一种方法来捕获更新的记录并以增量方式引入这些记录,而无需对源数据库进行任何修改。因此,我们无法启用 CDC 或创建触发器。
我们通过以下资源来解释哈希比较。
https://www.mssqltips.com/sqlservertip/6110/change-capture-alternatives-with-azure-data-factory/
但在这些方法中,我们必须遵循以下步骤
- 将所有表的完整数据集带到湖中
- 对整个数据集进行转换
- 将数据集加载到 ASQL 数据库中的暂存层
- 生成哈希并将该哈希值与 ASQl 数据库中现有数据集的哈希值进行比较。
由于我们每天都必须带来和转换完整的数据集,我们认为这种方法成本高昂,因为它不支持增量提取。
有没有更好的方法来处理这种情况?
(技术栈:MS SQL、ADF、Azure 数据湖、Azure SQL)
提前致谢
解决方案
推荐阅读
- python - Azure 数据库引入速度
- orientdb - 如何创建具有类类型的嵌入式列表?
- ruby - Ruby 类需要类变量,但仅在 Rake 任务中
- google-chrome - 如何在 Chrome 扩展程序中使用 Promise?
- angularjs - 如何将 AngularJS 表达式包含到 div 类字符串中?
- javascript - 简单的Js程序上来NaN和objectHtmlSpanElement
- node.js - 未安装 Kerberos 库
- python - 在运行时更改 python 文件安全吗?
- github - GitHub ERROR probot:找不到集成,documentation_url
- javascript - 谷歌方向路线 - 中点标记