Azure 数据工厂 - 初始加载 SQL Server,然后加载 CDC

问题描述 投票:0回答:1

我有一个任务,需要使用 ADF 将 2 年的数据从表加载到数据湖,然后继续使用 CDC。

我是 ADF 新手,想知道如何实现这一目标,因为桌面上的 CDC 尚未激活。我的问题是如何使用 CDC 从初始加载进一步移动而不丢失数据或摄取所有表。

此外,对于 CI/CD,stg env 的管道在计划与否方面将如何工作?仅使用数据子集用于测试目的等?

如有任何指导,我们将不胜感激!

azure azure-data-factory etl
1个回答
0
投票

我将把你的问题分成三部分:

第 1 部分: 加载 2 年的数据需要使用复制活动来移动数据的 ADF 管道。您只需将源数据集配置为指向您的表,并将接收器数据集配置为指向 Data Lake 存储。 既然您提到您有一个大型数据集,请考虑使用数据集成单元 (DIU) 进行并行处理和暂存来优化复制活动(如果需要加快传输速度)。

https://learn.microsoft.com/en-us/azure/data-factory/copy-activity-overview

https://learn.microsoft.com/en-us/azure/data-factory/copy-data-tool?tabs=data-factory

https://learn.microsoft.com/en-us/azure/data-factory/copy-activity-performance

第二部分: 初始加载后的 CDC

如果您的源数据库尚未启用 CDC,您将需要启用它,这取决于您的数据库类型。

您还可以创建另一个 ADF 管道,该管道使用 CDC 功能并结合源数据库的更改跟踪功能

对于 SQL 数据库,ADF 为某些源提供了内置 CDC 功能,或者您可以使用水印(具有时间戳或自动递增主键等顺序标识符的列)手动实现它。

为了确保您不会错过初始加载和 CDC 启动之间的任何数据,您可能需要:

  • 初始负载和 CDC 时间范围略有重叠

  • 使用初始负载的高水位线以确保 CDC 准确地从初始负载停止的位置开始

https://learn.microsoft.com/en-us/azure/data-factory/concepts-change-data-capture

CI/CD 和触发器:

对于 CI/CD,您可以在源代码控制系统(例如 Azure Repos、GitHub)中管理代码,并使用 Azure DevOps 或 GitHub Actions 自动进行部署。

https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-delivery

当涉及到开发到暂存到生产时,您可以使用 ARM 模板跨环境进行资源部署,并使用模板中的参数来处理特定于环境的设置,例如连接字符串或文件路径。

您可以使用触发器来安排管道运行,如果您正在寻找连续处理,请考虑使用滚动窗口触发器进行连续处理。

https://learn.microsoft.com/en-us/azure/data-factory/concepts-pipeline-execution-triggers

© www.soinside.com 2019 - 2024. All rights reserved.