透過 SAP CDC 從 SAP 複寫多個物件

適用於: Azure Data Factory Azure Synapse Analytics

提示

Data Factory in Microsoft Fabric 是下一代的 Azure Data Factory,擁有更簡單的架構、內建 AI 及新功能。 如果你是資料整合新手,建議先從 Fabric Data Factory 開始。 現有的 ADF 工作負載可升級至 Fabric,以存取資料科學、即時分析與報告等新能力。

本文描述了一個解決方案範本,你可以用它透過 SAP CDC 連接器,將多個 ODP 物件從 SAP 複製到 Azure Data Lake Gen2,並以 Delta 格式搭配金鑰分割區。

關於此解決方案範本

此範本會在你的儲存庫讀取一個 JSON 格式的外部控制檔案,該檔案包含你的 SAP ODP 上下文、SAP ODP 物件與來自 SAP 來源系統的金鑰欄位,以及來自 Azure Data Lake Gen2 目的地儲存庫的容器、資料夾和分割區。 接著它會將 SAP 系統中的每個 SAP ODP 物件以 Delta 格式複製到 Azure Data Lake Gen2。

範本包含三個活動:

  • Lookup 從你 Azure Data Lake Gen2 儲存庫的外部控制檔取得 SAP ODP 物件清單及目的地儲存路徑。
  • ForEach 會從查閱活動取得 SAP ODP 物件清單,並遍歷每個物件,然後將其傳送至映射資料流程活動。
  • Mapping dataflow 將每個 SAP ODP 物件從 SAP 系統複製到 Azure Data Lake Gen2 的 Delta 格式。 它會在第一次執行中進行初始完整載入,然後在後續的執行中自動進行累加式載入。 它將把變更合併到以 Delta 格式的 Azure Data Lake Gen2 中。

此範本需要 json 格式的外部控制檔案。 控制檔案的結構描述如下所示。

  • checkPointKey 是您專屬的自訂鍵,用於管理 Azure Data Factory (ADF) 中變更資料擷取的檢查點。 如需詳細資訊,請前往這裡 (英文)。
  • sapContext 是來源 SAP 系統中的 SAP ODP 內容。 如需詳細資訊,請前往這裡 (英文)。
  • sapObjectName 是從 SAP 系統載入的 SAP ODP 物件名稱。 如需詳細資訊,請前往這裡 (英文)。
  • sapRunMode 用以決定您要如何載入 SAP 物件。 它可以是 fullLoad、incrementalLoad 或 fullAndIncrementalLoad。
  • sapKeyColumns 是來自 SAP ODP 物件的索引鍵資料行名稱,用於在對應資料流程中執行去除重複。
  • sapPartitions 是一份資料分割條件的清單,這些條件會在連線的 SAP 系統中導致各自的擷取程序。
  • deltaContainer 是你在 Gen2 Azure Data Lake 作為目的地商店的容器名稱。
  • deltaFolder 是你在 Azure Data Lake Gen2 中作為目的地商店的資料夾名稱。
  • deltaKeyColumns 是您用來判斷來源資料列是否與接收資料列相符的資料行,當您想要更新或刪除資料列時會用到。
  • deltaPartition 是你的欄位,用來為該欄位中每個獨特值建立分割區,並透過映射資料流使用的 Spark 叢集,將資料以 Delta 格式寫入 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. 前往以 Delta 格式將多個資料表從 SAP ODP 複寫到 Azure Data Lake Storage Gen2 範本,然後按一下該範本。

    SAP CDC 搜尋範本的螢幕快照。

  3. 點選 Continue,輸入連接 SAP 系統的連結服務作為來源,Azure Data Lake Gen2 連結的連結服務作為目的地。 您可以從這裡取得 SAP CDC 連結服務的更多詳細資料。 請注意,你的外部控制檔案應該要上傳到同一個 Azure Data Lake Gen2 帳號。

    SAP CDC 使用範本的螢幕快照。

  4. 按一下 [使用此範本],您會看到管線已準備就緒可使用。

    SAP CDC 管線的螢幕快照。