通过 SAP CDC 从 SAP 复制多个对象

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

本文介绍一种解决方案模板,你可以使用该模板通过 SAP CDC 连接器将多个 ODP 对象以增量格式从 SAP 复制到带键分区的 Azure Data Lake Gen2。

关于此解决方案模板

此模板以 json 格式读取存储上的外部控制文件,该文件包含 SAP 源系统中的 SAP ODP 上下文、SAP ODP 对象和键列,以及 Azure Data Lake Gen2 目标存储中的容器、文件夹和分区。 然后,它将每个 SAP ODP 对象以增量格式从 SAP 系统复制到 Azure Data Lake Gen2。

该模板包含三个活动:

  • “查找”从 Azure Data Lake Gen2 存储上的外部控制文件中检索要加载的 SAP ODP 对象列表和目标存储路径。
  • “ForEach”从查找活动中获取 SAP ODP 对象列表,并将每个对象迭代到映射数据流活动。
  • “映射数据流”以增量格式将每个 SAP ODP 对象从 SAP 系统复制到 Azure Data Lake Gen2。 它将在第一次运行时执行初始完全加载,然后在后续运行中自动执行增量加载。 它将以增量格式合并对 Azure Data Lake Gen2 的更改。

此模板中需要 json 格式的外部控件文件。 控件文件的架构如下所示。

  • checkPointKey 是自定义密钥,用于管理 ADF 中变更数据捕获的检查点。 你可在此处获取更多详细信息。
  • sapContext 是源 SAP 系统中的 SAP ODP 上下文。 你可在此处获取更多详细信息。
  • sapObjectName 是要从 SAP 系统加载的 SAP ODP 对象名称。 你可在此处获取更多详细信息。
  • sapRunMode 决定如何加载 SAP 对象。 它可以是 fullLoad、incrementalLoad 或 fullAndIncrementalLoad。
  • sapKeyColumns 是 SAP ODP 对象中的键列名称,用于在映射数据流中执行重复数据消除。
  • sapPartitions 是在连接的 SAP 系统中导致独立提取流程的分区条件的列表。
  • deltaContainer 是 Azure Data Lake Gen2 中作为目标存储的容器名称。
  • deltaFolder 是 Azure Data Lake Gen2 中作为目标存储的文件夹名称。
  • deltaKeyColumns 是列,用于确定要更新或删除行时,源的行是否匹配接收器的行。
  • deltaPartition 是列,用于为该列中的每个唯一值创建分区,以便通过映射数据流使用的 Spark 群集将数据写入 Azure Data Lake Gen2 上的增量格式。 可在此处获取更多详细信息

示例控制文件如下所示:

[
  {
    "checkPointKey":"CheckPointFor_ZPERFCDPOS$F",
    "sapContext": "ABAP_CDS",
    "sapObjectName": "ZPERFCDPOS$F",
    "sapRunMode": "fullAndIncrementalLoad",
    "sapKeyColumns": [
      "TABKEY"
    ],
    "sapPartitions": [
	[{
        "fieldName": "TEXTCASE",
        "sign": "I",
        "option": "EQ",
        "low": "1"
       },
       {
        "fieldName": "TEXTCASE",
        "sign": "I",
        "option": "EQ",
        "low": "X"
      }]
    ],
    "deltaContainer":"delta",
    "deltaFolder":"ZPERFCDPOS",
    "deltaKeyColumns":["TABKEY"],
    "deltaPartition":"TEXTCASE",
    "stagingStorageFolder":"stagingcontainer/stagingfolder"
  },
  {
    "checkPointKey":"CheckPointFor_Z0131",
    "sapContext": "SAPI",
    "sapObjectName": "Z0131",
    "sapRunMode": "incrementalLoad",
    "sapKeyColumns": [
      "ID"
    ],
    "sapPartitions": [],
    "deltaContainer":"delta",
    "deltaFolder":"Z0131",
    "deltaKeyColumns":["ID"],
    "deltaPartition":"COMPANY",
    "stagingStorageFolder":"stagingcontainer/stagingfolder"
  }
]

如何使用此解决方案模板

  1. 创建并上传 json 格式的控制文件到作为目标存储的 Azure Data Lake Gen2。 用于存储控制文件的默认容器为“demo”,默认控件文件名为“SapToDeltaParameters.json”。

  2. 转到“以增量格式将多个表从 SAP ODP 复制到 Azure Data Lake Storage Gen 2”模板,然后“单击”它。

    SAP CDC 搜索模板的屏幕截图。

  3. 单击“继续”,输入连接到 SAP 系统的链接服务作为源,并输入连接到 Azure Data Lake Gen2 的链接服务作为目标。 可从此处获取有关 SAP CDC 链接服务的更多详细信息。 请注意,外部控制文件应上传到 Azure Data Lake Gen2 的同一帐户。

    SAP CDC 使用模板的屏幕截图。

  4. 单击“使用此模板”,会看到管道已准备就绪。

    SAP CDC 管道的屏幕截图。