SAP 的变更数据捕获到具有 Azure 数据工厂的 Microsoft Fabric OneLake

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,无需繁琐地重新进行初始化操作。

从 SAP 变更数据捕获到使用 Azure 数据工厂的 OneLake 的体系结构示意图。

使用入门

若要在自己的环境下一步步按照本文进行操作,则需要以下资源:

  1. Azure 数据工厂或 Synapse Analytics 工作区
  2. 具有 Lakehouse 的 Microsoft Fabric 工作区
  3. 满足此处指定的 ADF 的 SAP CDC 连接器需求的 SAP 系统。 在此方案中,我们使用 SAP S/4HANA 本地 2023 FPS00,但也支持最新版本的 SAP ECC、SAP BW、SAP BW/4HANA 等。
  4. 安装了当前版本的 SAP .NET 连接器的自承载集成运行时 (SHIR)。

为了专注于连接性部分,这里的管道模板涵盖使用 SAP CDC 连接器的导出变更数据的大多数简单场景,并将其与 Fabric Lakehouse 表合并,无需任何进一步的转换:https://github.com/ukchrist/ADF-SAP-data-flows/blob/main/p_SAPtoFabric.zip。 如果熟悉 ADF 映射数据流和 SAP CDC,则可以自己从头开始设置场景,并跳过 Lakehouse 链接服务的以下配置。

若要使用模板,需要执行以下步骤:

  1. 创建三个链接服务以连接到 SAP 源、过渡文件夹和 Fabric Lakehouse。
  2. 将模板导入 ADF 或 Synapse 工作区。
  3. 使用 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,请完成以下步骤:

  1. 在 Microsoft Fabric 中导航到 Lakehouse。

    屏幕截图显示导航到 Fabric 湖屋的位置。

  2. 在浏览器中打开 Lakehouse 体验后,复制浏览器 URL。 它具有以下格式:

    https://xxxxxx.powerbi.com/groups/<工作区 ID>/lakehouses/<Lakehouse ID>

    从 URL 中复制<工作区 ID><Lakehouse ID>

配置服务主体

配置服务主体需要两个步骤。 首先,在 Microsoft Entra ID 中创建一个服务主体。 然后,将服务主体作为成员添加到 Fabric 工作区。

让我们先从 Microsoft Entra ID 开始。

  1. 导航到 Azure 门户并从左侧菜单中选择 Microsoft Entra ID。 复制“租户 ID”以供稍后使用。

    屏幕截图显示在 Azure 门户中查找 Microsoft Entra ID 的位置。

  2. 若要创建服务主体,依次选择“应用注册”,“+ 新建注册”。

    屏幕截图显示创建新的服务主体应用注册的位置。

  3. 输入应用程序的“名称”。 该名称与服务主体名称相同,因此请复制它供以后使用。

  4. 选择“仅此组织目录中的帐户”。

  5. 然后选择“注册”。

    屏幕截图显示提供新的应用注册名称和帐户类型的位置。

  6. 复制“应用程序(客户端) ID”。 稍后在 ADF 的链接服务定义中需要此步骤。 然后选择“添加证书或机密”。

    屏幕截图显示查找应用程序(客户端)ID 以及添加证书或机密的位置。

  7. 选择 + 新客户端密码。 添加“说明”和“过期策略”。

    a屏幕截图显示添加新的客户端机密、说明和到期策略的位置。

  8. 复制客户端机密的。 此步骤完成在 Microsoft Entra ID 中的服务主体配置。

    屏幕截图显示查找客户端机密值的位置。

接下来,我们将服务主体作为参与者管理员的身份添加到 Microsoft Fabric 工作区。

  1. 导航到工作区并选择“管理访问”。

    屏幕截图显示管理对 Fabric 工作区的访问权限的位置。

  2. 输入服务主体的名称,选择“参与者”或“管理员”角色,然后选择“添加”。 现在可以使用服务主体将 ADF 连接到工作区。

    屏幕截图显示将服务主体添加到 Fabric 工作区,并为其授予参与者或管理员访问权限的位置。

在 ADF 或 Synapse 中创建 Lakehouse 链接服务

现在就可以在 ADF 或 Synapse 中配置 Lakehouse 链接服务。

  1. 打开 ADF 或 Synapse 工作区,选择“管理”工具,然后选择“链接服务”。 然后选择“+ 新建”。

    屏幕截图显示在 ADF 或 Synapse 中添加新链接服务的位置。

  2. 搜索“Lakehouse”,选择 Microsoft Fabric Lakehouse 链接服务类型,然后选择“继续”。

    显示如何查找 Microsoft Fabric 湖屋链接服务的屏幕截图。

  3. 为链接服务分配一个名称,选择“手动输入”并配置先前从 Fabric URL 中复制的 Fabric 工作区 IDLakehouse 对象 ID的值。

    • 在“租户”属性中,提供在 Microsoft Entra ID 配置服务主体的步骤 1 中复制的租户 ID。
    • 服务主体 ID 处,提供在配置服务主体步骤 6 中复制的应用程序(客户端)ID(注意不是服务主体名称!)。
    • 服务主体密码处,提供在配置服务主体步骤 8 中复制的客户端密码值。

    验证是否可以成功建立连接,然后选择“创建”。

    显示 ADF 中 Fabric 湖屋链接服务的配置的屏幕截图。

配置管道模板

完成链接服务的设置后,可以导入模板并调整源对象的模板。

  1. 在管道菜单中,选择 + 以添加新资源,然后选择“管道”和“模板库”。

    显示在 ADF 工作室的模板库中选择模板的位置的屏幕截图。

  2. 会显示“模板库”对话框。 查找将 SAP 中的变更数据复制到 Fabric Lakehouse 表模板,选择该模板,然后选择“继续”。

    显示在模板库中选择的模板的屏幕截图。

  3. 此时会打开配置屏幕,在其中指定要用于实例化模板的链接服务。 输入在前面的部分中创建的链接服务。 第一个链接服务是 ADLS Gen2 中临时文件夹所需的链接服务,第二个服务是连接到 SAP 源,第三个链接服务连接到 Microsoft Fabric Lakehouse:

    显示如何配置管道模板的屏幕截图。

  4. 配置模板后,ADF 会创建新的管道,并且可以对特定设置进行任何所需的调整。 首先,将暂存文件夹配置为中间存储 SAP 中的更改数据,然后再将其与 Fabric 中的增量表合并。 选择管道中的数据流活动,然后选择“设置”选项卡。在“暂存”属性中,可以看到最后一步中配置的暂存关联服务。 进入暂存存储文件夹

  5. 双击管道中的数据流活动,打开映射数据流以配置源和接收器。 首先,选择 SAP CDC 源传输,然后选择“源选项”选项卡。在 ODP 上下文中提供源对象的详细信息属性、ODP 名称键列(作为 JSON 数组)。 然后选择运行模式。 有关这些属性的详细信息,请参阅 SAP 变更数据捕获功能的 Azure 数据工厂文档

  6. 选择数据流的接收器转换,然后选择“设置”选项卡,然后在 Fabric 工作区中输入 Lakehouse 表的表名称。 选择键列属性的单选按钮“自定义表达式”,输入源的键列作为 JSON 数组。

  7. 发布变更。

检索数据

  1. 导航回管道并触发管道运行:

  2. 切换到监视体验并等待管道运行完成:

  3. 在 Fabric 工作区中打开 Lakehouse。 在“”下,可以看到新创建的 Lakehouse 表。 屏幕右侧会显示从 SAP 加载的数据预览。

    屏幕截图显示湖屋表中从 SAP 导入的数据。