Azure 数据工厂 (ADF) 和 Azure Synapse Analytics 提供 SAP 变更数据捕获 (CDC) 连接器(请参阅 SAP CDC 功能概述和架构或适用于 Azure 数据工厂和 Azure Synapse Analytics 的 SAP CDC 正式版,了解功能简介),可提供覆盖各种 SAP 源的内置变更数据捕获功能。 许多客户使用此连接器将 SAP 中的变更数据馈送置入 ADLS Gen2 中的 Delta 表中,这对于 Lakehouse 架构中的入站层(也称为“铜牌”)而言是非常好的存储选项。
本文介绍如何使用 SAP CDC 连接器直接在使用 ADF 或 Synapse 的 Microsoft Fabric OneLake 创建入站层。
这两种场景在安装上类似,主要区别在于接收器配置。 事实上,如下图所示,只需将数据流写入克隆到 Azure Data Lake Storage (ADLS) Gen2 中的 Delta 表中,根据本文档的介绍更改接收器配置即可开始使用。
如果计划将 ADLS Gen2 中的 SAP 数据迁移到 Microsoft Fabric,甚至可以通过调整接收器配置,将 ADLS Gen2 中现有的 CDC 数据流重定向到 OneLake。 更改接收器后,可以恢复原始 CDC 流程,让你可以无缝迁移到 Fabric,无需繁琐地重新进行初始化操作。
使用入门
若要在自己的环境下一步步按照本文进行操作,则需要以下资源:
- Azure 数据工厂或 Synapse Analytics 工作区
- 具有 Lakehouse 的 Microsoft Fabric 工作区
- 满足此处指定的 ADF 的 SAP CDC 连接器需求的 SAP 系统。 在此方案中,我们使用 SAP S/4HANA 本地 2023 FPS00,但也支持最新版本的 SAP ECC、SAP BW、SAP BW/4HANA 等。
- 安装了当前版本的 SAP .NET 连接器的自承载集成运行时 (SHIR)。
为了专注于连接性部分,这里的管道模板涵盖使用 SAP CDC 连接器的导出变更数据的大多数简单场景,并将其与 Fabric Lakehouse 表合并,无需任何进一步的转换:https://github.com/ukchrist/ADF-SAP-data-flows/blob/main/p_SAPtoFabric.zip。 如果熟悉 ADF 映射数据流和 SAP CDC,则可以自己从头开始设置场景,并跳过 Lakehouse 链接服务的以下配置。
若要使用模板,需要执行以下步骤:
- 创建三个链接服务以连接到 SAP 源、过渡文件夹和 Fabric Lakehouse。
- 将模板导入 ADF 或 Synapse 工作区。
- 使用 SAP 系统和接收器表中的源对象配置模板。
设置到 SAP 源系统的连接
若要使用 SAP CDC 连接器将 SAP 源系统连接到 ADF 或 Synapse,需要自承载集成运行时。 此处介绍了安装过程:为 SAP CDC 连接器设置自承载集成运行时。 若要自承载集成运行时通过 SAP 的 RFC 协议连接 SAP 源系统,请按照此处介绍的下载和安装 SAP .NET 连接器:下载和安装 SAP .NET 连接器。
接下来,创建 SAP CDC 链接服务。 详细信息请参阅此处:为 SAP CDC 连接器设置链接服务和数据集。 为此,需要 SAP 系统连接参数(应用程序/消息服务器、实例编号、客户端 ID)和用户凭据才能连接到 SAP 系统。 有关此 SAP 用户所需的配置的详细信息,请阅读本文档:设置 SAP 用户。
根据链接服务配置文档中所述创建 SAP CDC 数据集是可选的 - 映射数据流提供了更精简的选项,用于在数据流本身中内联定义数据集属性。 此处提供的管道模板使用此类内联数据集定义。
设置用于暂存的 ADLS Gen2 连接
在将更改数据从 SAP 源系统写入接收器之前,它会暂存到 ADLS Gen2 中的文件夹。 从那里,映射数据流运行时根据数据流中定义的步骤选取数据并对其进行处理。 模板中提供的数据流将更改与接收器表中的现有数据合并,从而提供源的最新副本。
此处介绍了 ADLS Gen2 链接服务的设置:使用 UI 创建 Azure Data Lake Storage Gen2 链接服务。
检索 Fabric 工作区 ID 和 Lakehouse 对象 ID
若要在 Microsoft Fabric 中收集所需的 Fabric 工作区 ID 和 Lakehouse 对象 ID,请完成以下步骤:
在 Microsoft Fabric 中导航到 Lakehouse。
在浏览器中打开 Lakehouse 体验后,复制浏览器 URL。 它具有以下格式:
https://xxxxxx.powerbi.com/groups/
<工作区 ID>/lakehouses/
<Lakehouse ID>从 URL 中复制<工作区 ID> 和 <Lakehouse ID>。
配置服务主体
配置服务主体需要两个步骤。 首先,在 Microsoft Entra ID 中创建一个服务主体。 然后,将服务主体作为成员添加到 Fabric 工作区。
让我们先从 Microsoft Entra ID 开始。
导航到 Azure 门户并从左侧菜单中选择 Microsoft Entra ID。 复制“租户 ID”以供稍后使用。
若要创建服务主体,依次选择“应用注册”,“+ 新建注册”。
输入应用程序的“名称”。 该名称与服务主体名称相同,因此请复制它供以后使用。
选择“仅此组织目录中的帐户”。
然后选择“注册”。
复制“应用程序(客户端) ID”。 稍后在 ADF 的链接服务定义中需要此步骤。 然后选择“添加证书或机密”。
选择 + 新客户端密码。 添加“说明”和“过期策略”。
复制客户端机密的值。 此步骤完成在 Microsoft Entra ID 中的服务主体配置。
接下来,我们将服务主体作为参与者或管理员的身份添加到 Microsoft Fabric 工作区。
在 ADF 或 Synapse 中创建 Lakehouse 链接服务
现在就可以在 ADF 或 Synapse 中配置 Lakehouse 链接服务。
打开 ADF 或 Synapse 工作区,选择“管理”工具,然后选择“链接服务”。 然后选择“+ 新建”。
搜索“Lakehouse”,选择 Microsoft Fabric Lakehouse 链接服务类型,然后选择“继续”。
为链接服务分配一个名称,选择“手动输入”并配置先前从 Fabric URL 中复制的 Fabric 工作区 ID 和 Lakehouse 对象 ID的值。
- 在“租户”属性中,提供在 Microsoft Entra ID 配置服务主体的步骤 1 中复制的租户 ID。
- 在服务主体 ID 处,提供在配置服务主体步骤 6 中复制的应用程序(客户端)ID(注意不是服务主体名称!)。
- 在服务主体密码处,提供在配置服务主体步骤 8 中复制的客户端密码值。
验证是否可以成功建立连接,然后选择“创建”。
配置管道模板
完成链接服务的设置后,可以导入模板并调整源对象的模板。
在管道菜单中,选择 + 以添加新资源,然后选择“管道”和“模板库”。
会显示“模板库”对话框。 查找将 SAP 中的变更数据复制到 Fabric Lakehouse 表模板,选择该模板,然后选择“继续”。
此时会打开配置屏幕,在其中指定要用于实例化模板的链接服务。 输入在前面的部分中创建的链接服务。 第一个链接服务是 ADLS Gen2 中临时文件夹所需的链接服务,第二个服务是连接到 SAP 源,第三个链接服务连接到 Microsoft Fabric Lakehouse:
配置模板后,ADF 会创建新的管道,并且可以对特定设置进行任何所需的调整。 首先,将暂存文件夹配置为中间存储 SAP 中的更改数据,然后再将其与 Fabric 中的增量表合并。 选择管道中的数据流活动,然后选择“设置”选项卡。在“暂存”属性中,可以看到最后一步中配置的暂存关联服务。 进入暂存存储文件夹。
双击管道中的数据流活动,打开映射数据流以配置源和接收器。 首先,选择 SAP CDC 源传输,然后选择“源选项”选项卡。在 ODP 上下文中提供源对象的详细信息属性、ODP 名称和键列(作为 JSON 数组)。 然后选择运行模式。 有关这些属性的详细信息,请参阅 SAP 变更数据捕获功能的 Azure 数据工厂文档。
选择数据流的接收器转换,然后选择“设置”选项卡,然后在 Fabric 工作区中输入 Lakehouse 表的表名称。 选择键列属性的单选按钮“自定义表达式”,输入源的键列作为 JSON 数组。
发布变更。
检索数据
导航回管道并触发管道运行:
切换到监视体验并等待管道运行完成:
在 Fabric 工作区中打开 Lakehouse。 在“表”下,可以看到新创建的 Lakehouse 表。 屏幕右侧会显示从 SAP 加载的数据预览。