SAP SLT 複製來源

本頁說明如何使用 SAP Landscape Transformation (SLT),啟用從 SAP 應用程式到 Google Cloud 的資料即時複製功能。本文內容適用於 SAP SLT ReplicationSAP SLT No RFC Replication 外掛程式,這些外掛程式可在 Cloud Data Fusion Hub 中取得。其中顯示 SAP 來源系統、SLT、Cloud Storage 和 Cloud Data Fusion 的設定,可執行下列操作:

  • 使用 SAP SLT 將 SAP 中繼資料和資料表資料推送至 Google Cloud 。
  • 建立 Cloud Data Fusion 複寫工作,從 Cloud Storage bucket 讀取資料。

SAP SLT Replication 可讓您從 SAP 來源持續即時地將資料複製到 BigQuery。您可以設定及執行 SAP 系統的資料轉移作業,完全不需要進行編碼。

Cloud Data Fusion SLT 複製程序如下:

  1. 資料來自 SAP 來源系統。
  2. SLT 會追蹤及讀取資料,並將資料推送至 Cloud Storage。
  3. Cloud Data Fusion 會從儲存空間 bucket 提取資料,並將資料寫入 BigQuery。

您可以從支援的 SAP 系統 (包括 Google Cloud代管的 SAP 系統) 轉移資料。

詳情請參閱 SAP on Google Cloud 總覽和支援詳細資料

事前準備

如要使用這個外掛程式,您必須具備下列領域的專業知識:

  • Cloud Data Fusion 中建構管道
  • 使用 IAM 管理存取權
  • 設定 SAP Cloud 和內部部署的企業資源規劃 (ERP) 系統

執行設定的管理員和使用者

本頁面的工作由 Google Cloud 或 SAP 系統中具有下列角色的使用者執行:

使用者類型 說明
Google Cloud 管理員 獲派此角色的使用者是 Google Cloud 帳戶的管理員。
Cloud Data Fusion 使用者 獲派此角色的使用者有權設計及執行資料管道。他們至少會獲得 Data Fusion 檢視者 ( roles/datafusion.viewer) 角色。如果您使用角色式存取權控管,可能需要其他角色
SAP 管理員 獲派此角色的使用者是 SAP 系統的管理員。他們可以從 SAP 服務網站下載軟體。並非 IAM 角色。
SAP 使用者 指派此角色的使用者可連線至 SAP 系統。這不是 IAM 角色。

支援的複製作業

SAP SLT Replication 外掛程式支援下列作業:

資料建模:這個外掛程式支援所有資料建模作業 (記錄 insertdeleteupdate)。

資料定義:如 SAP 注意事項 2055599 所述 (需要登入 SAP 支援服務才能查看),SLT 自動複製的來源系統資料表結構變更有限。外掛程式不支援部分資料定義作業 (您必須手動傳播這些作業)。

  • 支援:
    • 新增非鍵欄位 (在 SE11 中進行變更後,使用 SE14 啟用資料表)
  • 不支援:
    • 新增/刪除鍵欄位
    • 刪除非鍵欄位
    • 修改資料類型

SAP 規定

SAP 系統必須具備下列項目:

  • 您已在來源 SAP 系統 (內嵌) 或專用 SLT 中心系統中,安裝 SLT 伺服器 2011 SP17 以上版本。
  • 來源 SAP 系統為 SAP ECC 或 SAP S/4HANA,支援 DMIS 2011 SP17 以上版本,例如 DMIS 2018、DMIS 2020。
  • SAP 使用者介面外掛程式必須與 SAP Netweaver 版本相容。
  • 您的支援方案支援 /UI2/CL_JSON 類別 PL 12 以上版本。 否則,請根據使用者介面外掛程式版本,為 /UI2/CL_JSON 類別corrections導入最新的 SAP 附註,例如 PL12 的 SAP 附註 2798102。

  • 我們已採取下列安全措施:

Cloud Data Fusion 需求

  • 您需要 Cloud Data Fusion 執行個體 (6.4.0 以上版本,任何版本皆可)。
  • 指派給 Cloud Data Fusion 執行個體的服務帳戶會獲得必要角色 (請參閱「授予服務帳戶使用者權限」一節)。
  • 如果是私人 Cloud Data Fusion 執行個體,則必須使用 VPC 對等互連。

Google Cloud 需求條件

建立儲存空間值區

建立 SLT 複寫作業前,請建立 Cloud Storage bucket。這項作業會將資料傳輸至 bucket,並每五分鐘更新一次暫存 bucket。執行這項工作時,Cloud Data Fusion 會讀取儲存空間 bucket 中的資料,並將資料寫入 BigQuery。

如果 SLT 安裝在 Google Cloud

SLT 伺服器必須具備在您建立的 bucket 中建立及修改 Cloud Storage 物件的權限。

至少要將下列角色授予服務帳戶:

如果 Google Cloud未安裝 SLT

在 SAP VM 和Google Cloud 之間安裝 Cloud VPN 或 Cloud Interconnect,以允許連線至內部中繼資料端點 (請參閱「為內部部署主機設定私人 Google 存取權」)。

如果無法對應內部中繼資料:

  • 根據 SLT 執行的基礎架構作業系統,安裝 Google Cloud CLI。

  • 在啟用 Cloud Storage 的 Google Cloud 專案中建立服務帳戶。

  • 在 SLT 作業系統上,使用服務帳戶授權存取 Google Cloud

  • 為服務帳戶建立 API 金鑰,並授權 Cloud Storage 相關範圍。

  • 使用 CLI 將 API 金鑰匯入先前安裝的 gcloud CLI。

  • 如要啟用可列印存取權杖的 gcloud CLI 指令,請在 SLT 系統的交易 SM69 工具中設定 SAP 作業系統指令。

SAP 管理員會設定作業系統指令 SM69,從 Google Cloud擷取存取權杖。

建立指令碼來列印存取權杖,並設定 SAP 作業系統指令,以使用者 <sid>adm 身分從 SAP LT Replication Server 主機呼叫指令碼。

Linux

如要建立 OS 指令,請按照下列步驟操作:

  1. 在 SAP LT Replication Server 主機上,於 <sid>adm 可存取的目錄中,建立包含下列程式碼的 Bash 腳本:

    PATH_TO_GCLOUD_CLI/bin/gcloud auth print-access-token SERVICE_ACCOUNT_NAME
    
  2. 使用 SAP 使用者介面建立外部 OS 指令:

    1. 輸入交易SM69
    2. 點選「建立」
    3. 在「外部指令」面板的「指令」部分,輸入指令名稱,例如 ZGOOGLE_CDF_TOKEN
    4. 在「定義」部分中:

      1. 在「Operating System Command」(作業系統指令) 欄位中,輸入 sh 做為指令碼檔案副檔名。
      2. 在「Parameters for Operating System Command」(作業系統指令的參數) 欄位中,輸入:

        /PATH_TO_SCRIPT/FILE_NAME.sh
        
    5. 按一下 [儲存]

    6. 如要測試指令碼,請按一下「執行」

    7. 再次點按「執行」

    系統會傳回 Google Cloud 權杖,並顯示在 SAP 使用者介面面板底部。

Windows

使用 SAP 使用者介面建立外部作業系統指令:

  1. 輸入交易 SM69
  2. 點選「建立」
  3. 在「外部指令」面板的「指令」部分,輸入指令名稱,例如 ZGOOGLE_CDF_TOKEN
  4. 在「定義」部分中:

    1. 在「Operating System Command」(作業系統指令) 欄位中,輸入 cmd /c
    2. 在「Parameters for Operating System Command」(作業系統指令的參數) 欄位中,輸入:

      gcloud auth print-access-token SERVICE_ACCOUNT_NAME
      
  5. 按一下 [儲存]

  6. 如要測試指令碼,請按一下「執行」

  7. 再次點按「執行」

系統會傳回 Google Cloud 權杖,並顯示在 SAP 使用者介面面板底部。

SLT 規定

SLT 連接器必須具備下列設定:

  • 這個連接器支援 SAP ECC NW 7.02、DMIS 2011 SP17 以上版本。
  • 在 SLT 和 Cloud Storage 系統之間設定 RFC 或資料庫連線。
  • 設定 SSL 憑證:
    • 請從 Google Trust Services 存放區下載下列 CA 憑證:
      • GTS Root R1
      • GTS CA 1C3
    • 在 SAP 使用者介面中,使用 STRUST 交易將根憑證和下層憑證匯入 SSL Client (Standard) PSE 資料夾。
  • 必須為 HTTPS 設定網際網路通訊管理員 (ICM)。確認 HTTP 和 HTTPS 通訊埠已在 SAP SLT 系統中維護及啟用。你可以透過交易代碼 SMICM > Services 檢查這項資訊。
  • 在 SAP SLT 系統代管的 VM 上,啟用 Google Cloud API 的存取權。這樣一來,Google Cloud 服務之間就能進行私密通訊,不必透過公用網際網路傳輸。
  • 確認網路可支援 SAP 基礎架構與 Cloud Storage 之間所需的資料移轉量和速度。為確保安裝成功,建議使用 Cloud VPN 和/或 Cloud Interconnect。串流 API 的輸送量取決於已授予 Cloud Storage 專案的用戶端配額

設定 SLT 複寫伺服器

SAP 使用者會執行下列步驟。

在下列步驟中,您會將 SLT 伺服器連線至來源系統和 Cloud Storage 中的 bucket,並指定來源系統、要複製的資料表和目標儲存空間 bucket。

設定 Google ABAP SDK

如要設定 SLT 進行資料複製 (每個 Cloud Data Fusion 執行個體一次),請按照下列步驟操作:

  1. 如要設定 SLT 連接器,SAP 使用者須在設定畫面 (SAP 交易 /GOOG/CDF_SETTINGS) 中輸入下列資訊,以取得將資料移轉至 Cloud Storage 的服務帳戶金鑰。 Google Cloud 使用交易 SE16 在資料表 /GOOG/CDF_CLT_KY 中設定下列屬性,並記下這個金鑰:

    • NAME:服務帳戶金鑰的名稱 (例如 CDFSLT)
    • 服務帳戶名稱:IAM 服務帳戶名稱
    • 範圍:服務帳戶的範圍
    • 專案 ID: Google Cloud 專案的 ID
    • 選用:EXT OS Command:只有在 Google Cloud未安裝 SLT 時,才使用這個欄位
    • AUTH CLASS:如果 OS 指令是在表格 /GOOG/CDF_CLT_KY 中設定,請使用固定值:/GOOG/CDF_CL_GCP_AUTH

    • TOKEN REFRESH SEC:授權權杖更新時間長度

輸入服務帳戶金鑰的詳細資料

建立複製設定

在交易代碼中建立複製設定:LTRC

  • 繼續設定 LTRC 之前,請先確認 SLT 和來源 SAP 系統之間的 RFC 連線已建立。
  • 一個 SLT 設定可能有多個指派用於複製的 SAP 資料表。
  1. 前往交易代碼 LTRC,然後按一下「New Configuration」(新增設定)

    輸入服務帳戶金鑰的詳細資料

  2. 輸入「設定名稱」和「說明」,然後按一下「下一步」

  3. 指定 SAP 來源系統 RFC 連線,然後按一下「Next」

    指定來源系統 RFC 連線詳細資料

  4. 在「目標系統連線詳細資料」中,選取「其他」

  5. 展開「Scenario for RFC Communication」欄位,選取「SLT SDK」,然後按一下「Next」

  6. 前往「Specify Transfer Settings」(指定轉移設定) 視窗,然後輸入應用程式名稱:ZGOOGLE_CDF

    指定轉移設定

  7. 輸入「資料移轉工作數」、「初始載入工作數」和「計算工作數」。如要進一步瞭解效能,請參閱 SAP LT Replication Server 效能最佳化指南

  8. 依序點選「即時」>「下一步」

  9. 檢查設定,然後按一下「儲存」。請記下「大量轉移 ID」,以供後續步驟使用。

    儲存設定並記下大量轉移 ID

  10. 如要維護大量轉移 ID 和 SAP 表格詳細資料,請執行 SAP 交易:/GOOG/CDF_SETTINGS

  11. 按一下「執行」或按下 F8

  12. 按一下「附加列」圖示,建立新項目。

    1. 輸入「Mass Transfer ID」(大量轉移 ID)、「Mass Transfer Key」(大量轉移金鑰)、「GCP Key Name」(GCP 金鑰名稱) 和「Target GCS Bucket」(目標 GCS 值區)。勾選「Is Active」核取方塊,然後儲存變更。

      輸入運輸大量轉移詳細資料

  13. 在「設定名稱」欄中選取設定,然後按一下「資料供應」

    選取資料佈建

  14. 選用:自訂資料表和欄位名稱。

    1. 按一下「自訂名稱」並儲存。

    2. 按一下「顯示」

    3. 按一下「附加列」或「建立」按鈕,建立新項目。

    4. 輸入要在 BigQuery 中使用的 SAP 資料表名稱和外部資料表名稱,然後儲存變更。

    5. 按一下「顯示欄位」欄中的「查看」按鈕,即可維護資料表欄位的對應關係。

    6. 系統會隨即開啟包含建議對應的頁面。選用:編輯「臨時欄位名稱」和「欄位說明」,然後儲存對應關係。

  15. 前往 LTRC 交易。

  16. 選取「設定名稱」欄中的值,然後按一下「資料佈建」

  17. 在「Database Table Name」(資料庫資料表名稱) 欄位中輸入資料表名稱,然後選取複製情境。

    選取複製情境

  18. 按一下 [Execute] (執行)。這會觸發 SLT SDK 實作,並開始將資料轉移至 Cloud Storage 中的目標 bucket。

安裝 SAP 傳輸檔案

如要在 Cloud Data Fusion 中設計及執行複製工作,SAP 元件會以 SAP 傳輸檔案的形式提供,並封存於 ZIP 檔案中。在 Cloud Data Fusion Hub 中部署外掛程式後,即可下載。

如要安裝 SAP 傳輸,請按照下列步驟操作:

步驟 1:上傳傳輸要求檔案

  1. 登入 SAP 執行個體的作業系統。
  2. 使用 SAP 交易代碼 AL11 取得 DIR_TRANS 資料夾的路徑。通常路徑為 /usr/sap/trans/
  3. 將 cofiles 複製到 DIR_TRANS/cofiles 資料夾。
  4. 將資料檔案複製到 DIR_TRANS/data 資料夾。
  5. 將資料和共用檔案的使用者和群組設為 <sid>admsapsys

步驟 2:匯入傳輸要求檔案

SAP 管理員可以使用 SAP 傳輸管理系統或作業系統匯入傳輸要求檔案:

SAP 傳輸管理系統

  1. 以 SAP 管理員身分登入 SAP 系統。
  2. 輸入交易 STMS。
  3. 依序點選「總覽」>「匯入」
  4. 在「佇列」欄中,按兩下目前的 SID。
  5. 依序點選「Extras」>「Other Requests」>「Add」
  6. 選取傳輸要求 ID,然後按一下「繼續」
  7. 在匯入佇列中選取傳輸要求,然後依序點選「要求」>「匯入」
  8. 輸入客戶編號。
  9. 在「選項」分頁中,選取「覆寫原始檔」和「忽略無效的元件版本」 (如有)。

    選用:如要稍後重新匯入轉移要求,請按一下「將轉移要求留在佇列中,稍後再匯入」和「再次匯入轉移要求」。這對於 SAP 系統升級和備份還原作業很有幫助。

  10. 按一下「繼續」

  11. 使用 SE80PFCG 等交易,確認函式模組和授權角色是否已順利匯入。

作業系統

  1. 以 SAP 管理員身分登入 SAP 系統。
  2. 將要求新增至匯入緩衝區:

    tp addtobuffer TRANSPORT_REQUEST_ID SID
    

    例如:tp addtobuffer IB1K903958 DD1

  3. 匯入運輸要求:

    tp import TRANSPORT_REQUEST_ID SID client=NNN U1238
    

    NNN 替換為客戶編號。例如:tp import IB1K903958 DD1 client=800 U1238

  4. 使用任何適當的交易 (例如 SE80PFCG),確認函式模組和授權角色已成功匯入。

必要的 SAP 授權

如要在 Cloud Data Fusion 中執行資料管道,您需要 SAP 使用者。SAP 使用者必須為 Communications 或 Dialog 類型。為避免使用 SAP 對話資源,建議使用「通訊」類型。SAP 管理員可以使用 SAP 交易代碼 SU01 建立使用者。

您必須具備 SAP 授權,才能維護及設定 SAP 連接器,包括 SAP 標準授權物件和新的連接器授權物件。您可根據貴機構的安全政策維護授權物件。下列清單說明連接器需要的一些重要授權:

  • 授權物件:授權物件 ZGOOGCDFMT 會隨傳輸要求角色一併出貨。

  • 建立角色:使用交易代碼 PFCG 建立角色。

    使用 SAP 交易代碼建立角色

  • 對於標準 SAP 授權物件,貴機構會透過自身的安全機制管理權限。

  • 如果是自訂授權物件,請在授權物件的授權欄位中提供值 ZGOOGCDFMT

  • 如要進行精細的存取權控管,ZGOOGCDFMT 提供以授權群組為基礎的授權機制。使用者可存取授權群組的程度 (完整、部分或無法存取),取決於角色中指派的授權群組。

  • /GOOG/SLT_CDF_AUTH:可存取所有授權群組的角色。如要限制特定授權群組的存取權,請在設定中維護授權群組 FICDF。

為來源建立 RFC 目的地

開始設定前,請確認來源和目的地之間已建立 RFC 連線。

  1. 前往交易代碼 SM59

  2. 依序點選「建立」>「連線類型 3 (ABAP 連線)」

    建立交易代碼

  3. 在「Technical Settings」(技術設定) 視窗中,輸入 RFC 目的地詳細資料。

  4. 按一下「Logon and Security」(登入和安全性) 分頁標籤,維護 RFC 憑證 (RFC 使用者和密碼)。

  5. 按一下 [儲存]

  6. 按一下「連線測試」。如果測試成功,即可繼續。

  7. 確認 RFC 授權測試成功。

  8. 依序點選「公用程式」>「測試」>「授權測試」

設定外掛程式

如要設定外掛程式,請從 Hub 部署外掛程式、建立複寫工作,然後按照下列步驟設定來源和目標。

在 Cloud Data Fusion 中部署外掛程式

Cloud Data Fusion 使用者會執行下列步驟。

執行 Cloud Data Fusion 複製工作前,請先部署 SAP SLT 複製外掛程式:

  1. 前往您的執行個體:

    1. 前往 Google Cloud 控制台的 Cloud Data Fusion「Instances」(執行個體) 頁面。

      前往「Instances」(執行個體)

    2. 在新執行個體或現有執行個體中啟用複製功能:

      • 如要建立新執行個體,請按一下「建立執行個體」,輸入執行個體名稱,按一下「新增加速器」,選取「複製」核取方塊,然後按一下「儲存」
      • 如果是現有執行個體,請參閱「啟用現有執行個體的複製功能」。
    3. 按一下「查看執行個體」,在 Cloud Data Fusion 網頁介面中開啟執行個體。

  2. 按一下「Hub」(中樞)

  3. 前往「SAP」分頁,按一下「SAP SLT」,然後按一下「SAP SLT Replication Plugin」或「SAP SLT No RFC Replication Plugin」

  4. 按一下 [Deploy] (部署)

建立複製工作

SAP SLT 複寫外掛程式會使用 Cloud Storage API 暫存值區,讀取 SAP 資料表的內容。

如要建立資料轉移的複製工作,請按照下列步驟操作:

  1. 在開啟的 Cloud Data Fusion 執行個體中,依序點選「首頁」>「複製」>「建立複製工作」。如果沒有「複製」選項,請為執行個體啟用複製功能

  2. 輸入複製作業的不重複「名稱」和「說明」

  3. 點選「下一步」

設定來源

  1. 在下列欄位中輸入值,設定來源:

    • 專案 ID: Google Cloud 專案的 ID (這個欄位會預先填入)
    • 資料複製 GCS 路徑:包含複製資料的 Cloud Storage 路徑。必須與 SAP SLT 工作中設定的路徑相同。在內部,提供的路徑會與 Mass Transfer IDSource Table Name 串連:

      格式:gs://<base-path>/<mass-transfer-id>/<source-table-name>

      範例:gs://slt_bucket/012/MARA

    • GUID:SLT GUID,這是指派給 SAP SLT 大量轉移 ID 的專屬 ID。

    • 大量轉移 ID:SLT 大量轉移 ID 是指在 SAP SLT 中指派給設定的專屬 ID。

    • SAP JCo 程式庫 GCS 路徑:儲存路徑,內含使用者上傳的 SAP JCo 程式庫檔案。您可以從 SAP 支援入口網站下載 SAP JCo 程式庫。(已在 0.10.0 版外掛程式中移除)。

    • SLT 伺服器主機:SLT 伺服器主機名稱或 IP 位址。(已在外掛程式 0.10.0 版中移除)。

    • SAP 系統編號:系統管理員提供的安裝系統編號 (例如 00)。(外掛程式 0.10.0 版已移除此欄位)。

    • SAP 用戶端:要使用的 SAP 用戶端 (例如 100)。(已在外掛程式 0.10.0 版中移除)。

    • SAP 語言:SAP 登入語言 (例如 EN)。(已在外掛程式 0.10.0 版中移除)。

    • SAP 登入使用者名稱:SAP 使用者名稱。(已在 0.10.0 版外掛程式中移除)。

      • 建議:如果 SAP 登入使用者名稱會定期變更,請使用巨集。
    • SAP 登入密碼 (M):用於使用者驗證的 SAP 使用者密碼。

      • 建議:針對密碼等機密值使用安全巨集。(已在 0.10.0 版外掛程式中移除)。
    • 在 CDF 工作停止時暫停 SLT 複製:嘗試在 Cloud Data Fusion 複製工作停止時,停止 SLT 複製工作 (適用於相關資料表)。如果 Cloud Data Fusion 中的工作意外停止,可能會失敗。

    • 複製現有資料:指出是否要從來源表格複製現有資料。根據預設,工作會從來源資料表複製現有資料。如果設為 false,系統會忽略來源資料表中的所有現有資料,只複製工作開始後發生的變更。

    • 服務帳戶金鑰:與 Cloud Storage 互動時使用的金鑰。服務帳戶必須具備 Cloud Storage 的寫入權限。在 Google Cloud VM 上執行時,應將此值設為 auto-detect,以使用附加至 VM 的服務帳戶。

  2. 點選「下一步」

設定目標

如要將資料寫入 BigQuery,外掛程式必須具備 BigQuery 和暫存值區的寫入權限。變更事件會先從 SLT 分批寫入 Cloud Storage。接著載入 BigQuery 的暫存資料表。系統會使用 BigQuery 合併查詢,將暫存資料表的變更合併至最終目標資料表。

最終目標資料表會包含來源資料表中的所有原始資料欄,以及一個額外的 _sequence_num 資料欄。序號可確保在複寫器故障時,資料不會重複或遺失。

  1. 在下列欄位中輸入值,設定來源:

    • 專案 ID:BigQuery 資料集的專案。在 Dataproc 叢集上執行時,可以將此欄位留空,系統會使用叢集的專案。
    • 憑證:請參閱「憑證」。
    • 服務帳戶金鑰:與 Cloud Storage 和 BigQuery 互動時要使用的服務帳戶金鑰內容。在 Dataproc 叢集上執行時,這項設定應留空,系統會使用叢集的服務帳戶。
    • 資料集名稱:要在 BigQuery 中建立的資料集名稱。這是選用項目,根據預設,資料集名稱與來源資料庫名稱相同。有效名稱只能包含英文字母、數字和底線,且長度不得超過 1024 個字元。最終資料集名稱中的任何無效字元都會替換成底線,超過長度限制的字元則會遭到截斷。
    • 加密金鑰名稱:用於保護這個目標所建立資源的客戶自行管理的加密金鑰 (CMEK)。加密金鑰名稱的格式必須為 projects/<project-id>/locations/<key-location>/keyRings/<key-ring-name>/cryptoKeys/<key-name>
    • 位置:建立 BigQuery 資料集和 Cloud Storage 中繼值區的位置。例如,us-east1 代表區域值區,us 代表多區域值區 (請參閱「位置」)。如果指定現有 bucket,系統會忽略這個值,因為暫存 bucket 和 BigQuery 資料集會建立在該 bucket 的相同位置。
    • 暫存值區:變更事件寫入這個值區後,才會載入暫存資料表。變更會寫入包含複寫器名稱和命名空間的目錄。在同一個執行個體中,多個複寫器可以安全地使用同一個 bucket。如果由多個執行個體中的複寫器共用,請確保命名空間和名稱是唯一的,否則行為未定義。值區必須與 BigQuery 資料集位於相同位置。如未提供,系統會為每個工作建立名為 df-rbq-<namespace-name>-<job-name>-<deployment-timestamp> 的新 bucket。

    • 載入間隔 (秒):將一批資料載入 BigQuery 前等待的秒數。

    • 暫存表前置字元:變更會先寫入暫存表,再合併至最終表。暫存資料表名稱是透過將這個前置字串加到目標資料表名稱前面而產生。

    • 需要手動捨棄介入:是否需要手動管理動作,才能在遇到捨棄資料表或捨棄資料庫事件時捨棄資料表和資料集。如果設為 true,複寫器就不會刪除資料表或資料集。而是會失敗並重試,直到資料表或資料集不存在為止。如果資料集或資料表不存在,則不需要手動介入。系統會照常略過該事件。

    • 啟用軟刪除:如果設為 true,當目標收到刪除事件時,記錄的 _is_deleted 欄會設為 true。否則系統會從 BigQuery 資料表刪除記錄。 如果來源產生的事件順序有誤,系統一律會從 BigQuery 資料表軟刪除記錄,因此這項設定不會有任何作用。

  2. 點選「下一步」

憑證

如果外掛程式是在 Dataproc 叢集上執行,服務帳戶金鑰應設為自動偵測。系統會自動從叢集環境讀取憑證。

如果外掛程式不是在 Dataproc 叢集上執行,則必須提供服務帳戶金鑰的路徑。服務帳戶金鑰位於 Google Cloud 控制台的「IAM」頁面。確認帳戶金鑰具備 BigQuery 存取權。服務帳戶金鑰檔案必須位於叢集中的每個節點,且執行作業的所有使用者都必須可讀取該檔案。

限制

  • 資料表必須有主鍵才能複製。
  • 系統不支援重新命名表格。
  • 部分支援資料表變更。
    • 現有的不可為空值資料欄可以變更為可為空值資料欄。
    • 您可以在現有資料表中新增可為空值的資料欄。
    • 對資料表結構定義進行任何其他類型的變更都會失敗。
    • 變更主鍵不會失敗,但系統不會重新編寫現有資料,以遵守新主鍵的唯一性。

選取資料表和轉換

在「選取資料表和轉換」步驟中,系統會顯示在 SLT 系統中選取用於複製的資料表清單。

  1. 選取要複製的資料表。
  2. 選用:選取其他結構定義作業,例如「插入」、「更新」或「刪除」
  3. 如要查看結構定義,請按一下資料表的「要複製的資料欄」
  4. 選用:如要重新命名架構中的資料欄,請按照下列步驟操作:

    1. 查看結構定義時,依序點選「轉換」>「重新命名」
    2. 在「重新命名」欄位中輸入新名稱,然後按一下「套用」
    3. 如要儲存新名稱,請依序點選「重新整理」和「儲存」
  5. 點選「下一步」

選用:設定進階屬性

如果您知道每小時複製的資料量,可以選取適當的選項。

查看評估結果

「查看評估結果」步驟會掃描結構定義問題、缺少的特徵或複製期間發生的連線問題。

  1. 在「查看評估」頁面中,按一下「查看對應關係」

    如有任何問題,請務必先解決再繼續操作。

  2. 選用:如果您在選取資料表和轉換時重新命名資料欄,請在這個步驟中確認新名稱是否正確。

  3. 點選「下一步」

查看摘要並部署複製工作

在「Review replication job details」(檢視複寫工作詳細資料) 頁面中,檢查設定並點選「Deploy replication job」(部署複寫工作)

選取 Compute Engine 設定檔

  1. 部署複寫工作後,請在 Cloud Data Fusion 網頁介面的任何頁面中,按一下「設定」

  2. 選取要用於執行這項複寫作業的 Compute Engine 設定檔。

  3. 按一下 [儲存]

    在 Cloud Data Fusion 網頁介面中選取運算設定檔。

啟動複製作業

  • 如要執行複製作業,請按一下「開始」

在 Cloud Data Fusion 網頁介面中啟動複製作業

選用:提升效能

外掛程式預設會設定為最佳效能。如需其他最佳化做法,請參閱「執行階段引數」。

SLT 和 Cloud Data Fusion 通訊的效能取決於下列因素:

  • 來源系統上的 SLT 與專用中央 SLT 系統 (建議選項)
  • 在 SLT 系統上處理背景工作
  • 來源 SAP 系統上的對話工作程序
  • 「LTRC Administration」(LTRC 管理) 分頁中,分配給每個大量轉移 ID 的背景工作程序數量
  • LTRS 設定
  • SLT 系統的硬體 (CPU 和記憶體)
  • 使用的資料庫 (例如:HANA、Sybase 或 DB2)
  • 網際網路頻寬 (SAP 系統與網際網路之間的連線)Google Cloud
  • 系統上現有的使用率 (負載)
  • 資料表中的欄數。如果資料欄數量較多,複製作業會變慢,延遲時間也可能增加。

建議您在初始載入時,使用 LTRS 設定中的下列讀取類型:

SLT 系統 來源系統 資料表類型 建議的讀取類型
[initial load]
SLT 3.0 獨立版
[DMIS 2018_1_752 SP 2]
S/4 HANA 1909 透明 (小/中)
透明 (大)
叢集資料表
1 個範圍計算
1 個範圍計算
4 個傳送者佇列
SLT 內嵌
[S4CORE 104 HANA 1909]
不適用 透明 (小/中)
透明 (大)
叢集資料表
1 個範圍計算
1 個範圍計算
4 個傳送者佇列
SLT 2.0 獨立版
[DMIS 2011_1_731 SP 17]
ECC NW 7.02 透明 (小/中)
透明 (大)
叢集資料表
5 個傳送者佇列
5 個傳送者佇列
4 個傳送者佇列
SLT 嵌入式
[DMIS 2011_1_700 SP 17]
不適用 透明 (小/中)
透明 (大)
叢集資料表
5 個傳送者佇列
5 個傳送者佇列
4 個傳送者佇列
  • 如要進行複製,請使用「無範圍」來提升效能:
    • 只有在記錄資料表產生高延遲的待處理項目時,才必須使用範圍。
    • 使用一個範圍計算:如果是 SLT 2.0 和非 HANA 系統,不建議使用初始載入的讀取類型。
    • 使用一個範圍計算:初始載入的讀取類型可能會導致 BigQuery 中出現重複記錄。
  • 使用獨立 SLT 系統時,效能一律較佳。
  • 如果來源系統的資源用量已偏高,建議一律使用獨立的 SLT 系統。

執行階段引數

  • snapshot.thread.count:將要啟動的執行緒數量傳遞至 SNAPSHOT/INITIAL,以平行執行資料載入作業。根據預設,系統會使用執行複寫工作的 Dataproc 叢集中可用的 vCPU 數量。

    建議:只有在需要精確控制平行執行緒數量時,才設定這個參數 (例如減少叢集上的用量)。

  • poll.file.count:將檔案數傳遞至網頁介面「資料複製 GCS 路徑」欄位中提供的 Cloud Storage 路徑,以進行輪詢。根據預設,每個輪詢的值為 500,但可根據叢集設定增加或減少。

    建議:只有在對複製延遲時間有嚴格要求時,才設定這項參數。值越小,延遲時間可能越短。可用於提升輸送量 (如無回應,請使用高於預設值的值)。

  • bad.files.base.path:傳遞基本 Cloud Storage 路徑,所有在複製期間發現的錯誤或有問題的資料檔案都會複製到該路徑。如果對資料稽核有嚴格要求,且必須使用特定位置記錄失敗的轉移作業,這項功能就非常實用。

    根據預設,所有有問題的檔案都會從網頁介面「資料複製 Cloud Storage 路徑」欄位中提供的 Cloud Storage 路徑複製。

    • 資料檔案最終路徑模式有誤:

      gs://BASE_FILE_PATH/MASS_TRANSFER_ID/SOURCE_TABLE_NAME/bad_files/REPLICATION_JOB_NAME/REPLICATION_JOB_ID/BAD_FILE_NAME
      

    • 範例:

      gs://slt_to_cdf_bucket/001/MARA/bad_files/MaraRepl/05f97349-7398-11ec-9443-8
      ac0640fc83c/20220205_1901205168830_DATA_INIT.xml
      

    如果 XML 檔案損毀或無效、缺少 PK 值,或是欄位資料類型不符,就會被視為不良檔案。

支援詳情

支援的 SAP 產品和版本

  • SAP_BASIS 702 版本,SP-Level 0016 以上。
  • SAP_ABA 702 版本,SP-Level 0016 以上。
  • DMIS 2011_1_700 版本,SP-Level 0017 以上版本。

支援的 SLT 版本

支援 SLT 第 2 版和第 3 版。

支援的 SAP 部署模式

SLT 可做為獨立系統,或嵌入來源系統。

開始使用 SLT 前必須實作的 SAP 附註

如果您的支援套件未包含 PL12 以上版本的 /UI2/CL_JSON 類別修正,請實作最新 SAP 附註的 /UI2/CL_JSON 類別修正,例如 PL12 的 SAP 附註 2798102。

建議做法:根據中央或來源系統狀況,實作報告建議的 SAP 附註 CNV_NOTE_ANALYZER_SLT。詳情請參閱 SAP 附註 3016862 (需要登入 SAP)。

如果已設定 SAP,則無須實作其他附註。如要瞭解特定錯誤或問題,請參閱 SLT 版本適用的中央 SAP 附註

資料量或記錄寬度限制

擷取的資料量和記錄寬度沒有限制。

SAP SLT 複製外掛程式的預期處理量

如果環境是按照「最佳化效能」中的指南設定,外掛程式每小時可擷取約 13 GB 的初始載入資料,以及每小時 3 GB 的複製 (CDC) 資料。實際效能可能會因 Cloud Data Fusion 和 SAP 系統負載或網路流量而異。

支援 SAP 差異 (變更資料) 擷取作業

支援 SAP 差異擷取。

必要條件:Cloud Data Fusion 執行個體的租戶對等互連

如果 Cloud Data Fusion 執行個體是使用內部 IP 位址建立,則必須進行租戶對等互連。如要進一步瞭解租戶對等互連,請參閱「建立私有執行個體」。

疑難排解

複製工作不斷重新啟動

如果複製作業持續自動重新啟動,請增加複製作業叢集記憶體,然後重新執行複製作業。

BigQuery 接收器中的重複項目

如果您在 SAP SLT 複寫外掛程式的高階設定中定義平行工作數量,當資料表很大時,就會發生錯誤,導致 BigQuery 接收器中出現重複的資料欄。

如要避免發生問題,請移除平行工作,改為載入資料。

錯誤情況

下表列出一些常見的錯誤訊息 (引號中的文字會在執行階段替換為實際值):

郵件 ID 訊息 建議做法
CDF_SAP_SLT_01402 Service account type is not defined for SERVICE_ACCT_NAME_FROM_UI. 確認提供的 Cloud Storage 路徑正確無誤。
CDF_SAP_SLT_01403 Service account key provided is not valid due to error: ROOT_CAUSE. Please provide a valid service account key for service account type : SERVICE_ACCT_NAME_FROM_UI. 查看訊息中顯示的根本原因,並採取適當行動。
CDF_SAP_SLT_01404 Mass Transfer ID could not be found. Please ensure that it exists in given GCS Bucket. 確認提供的「大量轉移 ID」格式正確無誤。
CDF_SAP_SLT_01502 The specified data replication GCS path 'slt_to_cdf_bucket_1' or Mass Transfer ID '05C' could not be found. Please ensure that it exists in GCS. 確認提供的 Cloud Storage 路徑正確無誤。
CDF_SAP_SLT_01400 Metadata file not found. The META_INIT.json file is not present or file is present with invalid format. 查看訊息中顯示的根本原因,並採取適當行動。
CDF_SAP_SLT_03408 Failed to start the event reader. 查看訊息中顯示的根本原因,並採取適當行動。
CDF_SAP_SLT_03409 Error while processing TABLE_NAME file for source table gs://CLOUD_STORAGE_BUCKET_NAME/MT_ID/TABLE_NAME /FILE_NAME. Root cause: ROOT_CAUSE. 查看訊息中顯示的根本原因,並採取適當行動。
CDF_SAP_SLT_03410 Failed to replicate data for source table TABLE_NAME from file: gs://CLOUD_STORAGE_BUCKET_NAME/MT_ID/ TABLE_NAME/FILE_NAME. Root cause: ROOT_CAUSE. 查看訊息中顯示的根本原因,並採取適當行動。
CDF_SAP_SLT_03411 Failed data replication for source table TABLE_NAME. Root cause: ROOT_CAUSE. 查看訊息中顯示的根本原因,並採取適當行動。
CDF_SAP_SLT_03412 Failed to create target table for source table TABLE_NAME. Root cause: ROOT_CAUSE. 查看訊息中顯示的根本原因,並採取適當行動。

資料類型對應

下表顯示 SAP 應用程式和 Cloud Data Fusion 中使用的資料類型對應關係。

SAP 資料類型 ABAP 類型 說明 (SAP) Cloud Data Fusion 資料類型
數字
INT1 b 1 位元組整數 int
INT2 2 位元組整數 int
INT4 i 4 位元組整數 int
INT8 8 8 位元組整數 long
12 月 p BCD 格式的封裝數字 (DEC) decimal
DF16_DEC
DF16_RAW
a 十進位浮點 8 位元組 IEEE 754r decimal
DF34_DEC
DF34_RAW
e 十進位浮點 16 位元組 IEEE 754r decimal
FLTP f 二進位浮點數 double
字元
CHAR
LCHR
c 字元字串 string
SSTRING
GEOM_EWKB
字串 字元字串 string
STRING
GEOM_EWKB
字串 字元字串 CLOB bytes
NUMC
ACCP
n 數字文字 string
Byte
RAW
LRAW
x 二進位資料 bytes
RAWSTRING xstring 位元組字串 BLOB bytes
日期/時間
DATS d 日期 date
Tims t 時間 time
TIMESTAMP utcl ( Utclong )
TimeStamp
timestamp

後續步驟