使用 Azure 数据工厂或 Azure Synapse Analytics 中的 SAP CDC 连接器转换 SAP ODP 源的数据
适用于: Azure 数据工厂 Azure Synapse Analytics
提示
试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用!
本文概述了如何使用映射数据流通过 SAP CDC 连接器转换 SAP ODP 源的数据。 有关详细信息,请阅读 Azure 数据工厂或 Azure Synapse Analytics 的简介文章。 有关使用 Azure 数据工厂和 Azure Synapse 分析转换数据的简介,请阅读映射数据流或有关映射数据流的教程。
提示
若要了解对 SAP 数据集成方案的总体支持,请参阅使用 Azure 数据工厂进行 SAP 数据集成白皮书,其中包含有关每个 SAP 连接器的详细介绍、比较和指导。
支持的功能
此 SAP CDC 连接器支持以下功能:
支持的功能 | IR |
---|---|
映射数据流(源/-) | ①, ② |
① Azure 集成运行时 ② 自承载集成运行时
此 SAP CDC 连接器使用 SAP ODP 框架从 SAP 源系统中提取数据。 有关解决方案体系结构的简介,请阅读 SAP 知识中心的 SAP 更改数据捕获 (CDC) 的简介和体系结构。
SAP ODP 框架包含在所有基于 SAP NetWeaver 的系统中,包括 SAP ECC、SAP S/4HANA、SAP BW、SAP BW/4HANA、SAP LT 复制服务器 (SLT)。 有关先决条件和最低必需版本,请参阅先决条件和配置。
如果已配置 SNC,则 SAP CDC 连接器支持基本身份验证或安全网络通信 (SNC)。
当前限制
下面是数据工厂中 SAP CDC 连接器的当前限制:
- 不能在数据工厂中重置或删除 ODQ 订阅(请在连接的 SAP 系统中使用事务 ODQMON 来执行此操作)。
- 不能在该解决方案中使用 SAP 层次结构。
先决条件
若要使用此 SAP CDC 连接器,请参阅 SAP CDC 连接器的先决条件和设置。
入门
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用 UI 为 SAP CDC 连接器创建链接服务
按照准备 SAP CDC 链接服务中所述的步骤,在 Azure 门户 UI 中为 SAP CDC 连接器创建链接服务。
数据集属性
若要准备 SAP CDC 数据集,请按照准备 SAP CDC 源数据集进行操作。
使用 SAP CDC 连接器转换数据
原始 SAP ODP 更改源难以解释,将其正确更新到接收器可能是一个挑战。 例如,必须理解与每一行关联的技术属性(如ODQ_CHANGEMODE)才能将变更正确应用到接收器。 此外,从 ODP 提取的变更数据可能包含对同一键(例如,同一销售订单)的多个变更。 因此,必须遵循变更的顺序,同时通过并行处理变更来优化性能。 此外,管理变更数据捕获源还需要跟踪状态以及满足其他要求,以便为错误恢复提供内置机制。 Azure 数据工厂映射数据流将负责所有这些方面。 因此,SAP CDC 连接是映射数据流体验的一部分。 这使用户能够专注于所需的转换逻辑,而无需操心数据提取的技术细节。
若要开始操作,请使用映射数据流创建管道。
接下来,在 Azure Data Lake Gen2 中指定暂存链接服务和暂存文件夹,其用作从 SAP 提取的数据的中间存储。
注意
- 暂存链接服务不能使用自承载集成运行时。
- 应将暂存文件夹视为 SAP CDC 连接器的内部存储。 为了进一步优化 SAP CDC 运行时,实现详细信息(例如用于暂存数据的文件格式)可能会更改。 因此,建议不要将暂存文件夹用于其他目的,例如作为其他复制活动或映射数据流的源。
检查点键由 SAP CDC 运行时用于存储有关变更数据捕获进程的状态信息。 例如,允许 SAP CDC 映射数据流自动从错误情况中恢复,或者了解是否已建立指定数据流的变更数据捕获进程。 因此,为每个源使用唯一检查点键是很重要的。 否则,一个源的状态信息将被另一个源覆盖。
注意
- 为了避免冲突,默认情况下会生成唯一 ID 作为检查点键。
- 当使用参数为多个源利用相同数据流时,请确保使用每个源的唯一值对检查点键进行参数化。
- 如果 SAP CDC 源中的运行模式在每次运行时都设置为 Full,则不会显示检查点键属性(请参阅下一节),因为在这种情况下,不会建立变更数据捕获过程。
参数化检查点键
检查点键是管理变更数据捕获流程的状态所必需的。 为了实现高效管理,你可以将检查点键参数化,以允许连接到不同的源。 下面介绍了如何实现参数化检查点键:
创建一个全局参数来将检查点键存储在管道级别,以确保各次执行之间的一致性:
"parameters": { "checkpointKey": { "type": "string", "defaultValue": "YourStaticCheckpointKey" } }
以编程方式设置检查点键,以便在每次运行时使用所需值调用该管道。 下面是使用参数化检查点键的 REST 调用的示例:
PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelines/{pipelineName}?api-version=2018-06-01 Content-Type: application/json { "properties": { "activities": [ // Your activities here ], "parameters": { "checkpointKey": { "type": "String", "defaultValue": "YourStaticCheckpointKey" } } } }
有关更多详细信息,请参阅 SAP CDC 连接器高级主题。
映射数据流属性
若要使用 SAP CDC 连接器作为源创建映射数据流,请完成以下步骤:
在 ADF Studio 中,转到“创作”中心的“数据流”部分,选择“...”按钮打开“数据流操作”下拉菜单,然后选择“新建数据流”项。 使用数据流画布顶部栏中的“数据流调试”按钮打开调试模式。
在映射数据流编辑器中,选择“添加源”。
在“源设置”选项卡上,选择准备好的 SAP CDC 数据集,或选择“新建”按钮以创建新数据集。 或者,还可以在“源类型”属性中选择“内联”,然后继续操作,无需定义显式数据集。
在选项卡“源选项”上,如果要在每次执行映射数据流时加载完整快照,请选择选项“每次运行时已满”。 如果要从 SAP 源系统订阅更改源(包括初始完整数据快照),请选择“第一次运行时已满,然后增量”。 在这种情况下,管道的第一次运行将执行增量初始化,这意味着它会在源系统中创建 ODP 增量订阅,并返回当前的完整数据快照。 后续管道运行仅返回自上一次运行以来的增量更改。 选项“仅增量更改”将创建 ODP 增量订阅,而不会在第一次运行中返回初始完整数据快照。 同样,后续运行仅返回自上一次运行以来的增量更改。 两个增量加载选项都需要在 Key columns 属性中指定 ODP 源对象的键。
对于“预测”、“优化”和“检查”选项卡,请遵循映射数据流。
使用源分区优化完整或初始加载的性能
如果“运行模式”设为“每次运行时已满”或“第一次运行时已满,然后增量”,则“优化”选项卡会提供选择和分区类型“源”。 此选项允许指定多个分区(即筛选条件),将大型源数据集分块为多个较小的部分。 对于每个分区,SAP CDC 连接器都会在 SAP 源系统中触发单独的提取过程。
如果分区大小相等,则源分区可以线性增加数据提取的吞吐量。 若要实现此类性能改进,SAP 源系统、托管自承载集成运行时的虚拟机和 Azure 集成运行时中需要足够的资源。