SAP ERP 資料來源

適用於 SAP ERP 的 Google Cloud Cortex Framework 資料基礎層需要連線至來源系統原始資料。SAP ECC 和 SAP S/4HANA 皆支援。

部署 Cortex Framework 內容前,必須先將相關 SAP ERP 資料表複製到 BigQuery。如要達成這個目標,請將資料存放在專用的原始層資料集,以進行變更資料擷取 (CDC) 處理,或使用已建立的 CDC 管道直接提供資料基礎層。詳情請參閱「複製 SAP ERP 資料的技術相關規定」。

只要能以原始資料表格式將資料複製到 BigQuery,您可以使用任何複製工具。舉例來說,Google Cloud 解決方案包括 BigQuery Connector for SAP (需要 SAP SLT)BigQuery Toolkit for SAP

為確保從 SAP ERP 複製的原始資料集與 Cortex Framework 資料基礎層相容,請務必符合下列需求。

複製 SAP ERP 資料的技術相關規定

請務必檢查並完成下列技術規定,將 SAP 資料複製到 BigQuery 中的 Cortex Framework。

  1. 原始資料結構:來自 ECC 或 S/4HANA 的資料應以與 SAP 基礎資料表相同的結構,且未經業務轉換,存放在 BigQuery 中。資料表必須以 SAP 中的必要欄位名稱、類型和精細度進行複製。

  2. 資料表設定:要轉換的資料表清單定義於 table_settings.yaml 檔案 (位於 config/cortex/data_foundation/sap 底下)。 如果部署期間缺少必要資料表,取決於該資料表的特定資料產品就會失敗。

  3. 中繼資料規定:您必須將 SAP 來源中的 DD03L 等中繼資料表,複製到原始資料集 (在 config/config.yaml 中設定為基礎模組的來源)。請注意,這些中繼資料表必須存在於原始資料集中,但不得納入資料基礎 table_settings.yaml 檔案,且不會由資料基礎層處理。請確認複製的 DD03L 資料表包含您打算擷取的所有資料表 (例如自訂或補充資料表,如 sflight) 的欄位中繼資料記錄。Cortex Framework 建構指令碼和依附元件解析器會讀取這些中繼資料列,以識別資料欄清單、資料型別,以及資料表之間的主鍵關係。

  4. 大小寫:為確保與 Cortex Framework 資料模型相容,BigQuery 中複製的 SAP 資料表名稱必須為小寫 (例如,SAP 資料表 MARA 在 BigQuery 中會變成 mara)。

  5. 物件名稱 (資料欄) 和特殊字元:如果物件名稱 (資料欄) 含有特殊字元 (例如 /- 或開頭底線 _),Cortex 會採用一般清除模式:

    • 所有非英數字元都會替換為底線 _
    • 開頭不得為底線和數字。舉例來說,/GOOG/TEST 會轉換為 goog_test_DATAAGING 會轉換為 dataaging。如果您的複製工具會保留開頭底線,則必須在 Data Foundation 層執行正規化步驟 (別名)。
  6. 資料傳播欄位:為支援 CDC (變更資料擷取) 和資料傳播,複製的 SAP 表格必須具備下列條件:

    • 名為 operation_flag 的作業旗標 (L = 初始載入、I = 插入、U = 更新、D = 刪除)。
    • 名為 recordstamp 的時間戳記 (在載入時填入目前時間戳記)。
    • 選用:在複製的 _DS_RAW 資料表 (初始載入時預設為 false) 中選擇額外欄位 is_deleted (BOOLEAN)。Cortex 產生的執行階段檢視畫面會參照這個資料欄,但如果複製工具未產生這個資料欄,則可在執行前從 CDC 和檢視畫面範本中移除。
  7. 資料類型:為確保相容性,必須將 SAP 資料類型對應至 BigQuery 資料類型:

    標準作業的必要條件:

    資料類型 SAP BigQuery 資料類型 說明
    DATS DATE 日期資料類型
    TIMS TIME 時間資料類型
  8. 強烈建議使用,可確保精確度和相容性:

    • CURR (幣別) 和 QUAN (數量) 對應至 NUMERICBIGNUMERIC (請避免使用 FLOAT64,以免財務計算發生四捨五入錯誤)。
    • NUMC (數字字元) 對應至 STRING (保留文件號碼和項目號碼的前置零,確保聯結成功)。
  9. 酬載壓縮:為避免 BigQuery 中填入 NULL 的 SAP 欄位為空 (初始值為空格或零),請確保在連接器設定中停用酬載壓縮 (或啟用「傳送未壓縮的資料」)。這可確保空字串或零值在目標中會保留原樣,而不是預設為 NULL