首页 > 解决方案 > ETL 的变更捕获替代方案

问题描述

我们需要从 SQL 数据库中提取数据到数据湖,使用 Azure 数据流进行转换,并将数据加载到 Azure SQL 数据库中作为最终目的地。

SQL 数据库表只有记录的插入日期时间。不捕获记录的更新日期时间。新记录可以根据插入日期值以增量方式引入,但我们正试图找到一种方法来捕获更新的记录并以增量方式引入这些记录,而无需对源数据库进行任何修改。因此,我们无法启用 CDC 或创建触发器。

我们通过以下资源来解释哈希比较。

https://www.mssqltips.com/sqlservertip/6110/change-capture-alternatives-with-azure-data-factory/

但在这些方法中,我们必须遵循以下步骤

  1. 将所有表的完整数据集带到湖中
  2. 对整个数据集进行转换
  3. 将数据集加载到 ASQL 数据库中的暂存层
  4. 生成哈希并将该哈希值与 ASQl 数据库中现有数据集的哈希值进行比较。

由于我们每天都必须带来和转换完整的数据集,我们认为这种方法成本高昂,因为它不支持增量提取。

有没有更好的方法来处理这种情况?

(技术栈:MS SQL、ADF、Azure 数据湖、Azure SQL)

提前致谢

标签: sql-serveretlcdc

解决方案


推荐阅读