本頁面說明如何使用 SAP Landscape Transformation (SLT),將資料從 SAP 應用程式即時複製到 Google Cloud 。這篇文章適用於 Cloud Data Fusion Hub 提供的 SAP SLT Replication 和 SAP SLT No RFC Replication 外掛程式。這張圖表顯示 SAP 來源系統、SLT、Cloud Storage 和 Cloud Data Fusion 的設定,可執行下列操作:
- 使用 SAP SLT 將 SAP 中繼資料和資料表資料推送至 Google Cloud 。
- 建立 Cloud Data Fusion 複製工作,讀取 Cloud Storage 值區中的資料。
透過 SAP SLT Replication,您可以即時持續從 SAP 來源複製資料到 BigQuery。您可以設定及執行 SAP 系統的資料傳輸作業,完全不需要進行編碼。
Cloud Data Fusion SLT 複製程序如下:
- 資料來自 SAP 來源系統。
- SLT 會追蹤及讀取資料,並將資料推送至 Cloud Storage。
- Cloud Data Fusion 會從儲存值區提取資料,並將資料寫入 BigQuery。
您可以從支援的 SAP 系統轉移資料,包括在 Google Cloud中代管的 SAP 系統。
事前準備
如要使用這個外掛程式,您必須具備下列領域的專業知識:
- 在 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 外掛程式支援下列作業:
資料建模:這個外掛程式支援所有資料建模作業 (記錄 insert
、delete
和 update
)。
資料定義:如 SAP 注意事項 2055599 所述 (需登入 SAP 支援服務才能查看),SLT 自動複製的來源系統表格結構變更有限制。外掛程式不支援某些資料定義作業 (您必須手動進行)。
- 支援:
- 新增非鍵欄位 (在 SE11 中進行變更後,使用 SE14 啟用資料表)
- 不支援:
- 新增/刪除索引鍵欄位
- 刪除非關鍵欄位
- 修改資料類型
SAP 需求
您的 SAP 系統中必須有下列項目:
- 您已在來源 SAP 系統 (嵌入式) 或專用 SLT 中樞系統上安裝 SLT Server 2011 SP17 以上版本。
- 來源 SAP 系統為 SAP ECC 或 SAP S/4HANA,且支援 DMIS 2011 SP17 以上版本 (例如 DMIS 2018、DMIS 2020)。
- SAP 使用者介面外掛程式必須與 SAP Netweaver 版本相容。
您的支援方案支援
/UI2/CL_JSON
類別PL 12
以上版本。否則,請根據使用者介面外掛程式版本 (例如PL12
的 SAP 附註 2798102),為/UI2/CL_JSON
類別corrections
導入最新的 SAP 附註。我們已採取下列安全措施:
Cloud Data Fusion 需求
- 您需要 Cloud Data Fusion 執行個體 (任何版本,版本 6.4.0 以上)。
- 系統會將必要的角色授予指派給 Cloud Data Fusion 執行個體的服務帳戶 (請參閱「授予服務帳戶使用者權限」)。
- 私人 Cloud Data Fusion 執行個體需要 VPC 對等互連。
Google Cloud 規定
- 在 Google Cloud 專案中啟用 Cloud Storage API。
- Cloud Data Fusion 使用者必須具備在 Cloud Storage 值區中建立資料夾的權限 (請參閱「Cloud Storage 的 IAM 角色」)。
- 選用步驟:如有需要,請設定保留政策。
建立儲存空間值區
建立 SLT 複寫工作之前,請先建立 Cloud Storage 值區。這項工作會將資料傳輸至儲存體,並每五分鐘重新整理一次待機儲存體。執行工作時,Cloud Data Fusion 會讀取儲存值區中的資料,並將資料寫入 BigQuery。
如果 SLT 已安裝在 Google Cloud上
SLT 伺服器必須具備在您建立的值區中建立及修改 Cloud Storage 物件的權限。
至少將下列角色授予服務帳戶:
- 服務帳戶權杖建立者 (
roles/iam.serviceAccountTokenCreator
) - 服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer
) - Storage 物件管理員 (
roles/storage.objectAdmin
)
如果 Google Cloud未安裝 SLT
在 SAP VM 和 之間安裝 Cloud VPN 或 Cloud Interconnect,以便連線至內部中繼資料端點 (請參閱「為內部主機設定私人 Google 存取權」)。Google Cloud
如果無法對應內部中繼資料:
根據 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 作業系統指令,以 SAP LT Replication Server 主機中的使用者 <sid>adm
身分呼叫指令碼。
Linux
如要建立 OS 指令,請按照下列步驟操作:
在 SAP LT Replication Server 主機上,在可供
<sid>adm
存取的目錄中,建立包含下列行程式的 bash 指令碼:PATH_TO_GCLOUD_CLI/bin/gcloud auth print-access-token SERVICE_ACCOUNT_NAME
使用 SAP 使用者介面建立外部 OS 指令:
- 輸入交易
SM69
。 - 按一下 [建立]。
- 在「外部指令」面板的「指令」部分中,輸入指令名稱,例如
ZGOOGLE_CDF_TOKEN
。 在「Definition」部分中:
- 在「Operating System Command」欄位中,輸入
sh
做為指令碼檔案副檔名。 在「作業系統指令參數」欄位中輸入:
/PATH_TO_SCRIPT/FILE_NAME.sh
- 在「Operating System Command」欄位中,輸入
按一下 [儲存]。
如要測試指令碼,請按一下「執行」。
再次按一下「執行」。
系統會傳回 Google Cloud 權杖,並顯示在 SAP 使用者介面面板的底部。
- 輸入交易
Windows
使用 SAP 使用者介面建立外部作業系統指令:
- 輸入交易
SM69
。 - 按一下 [建立]。
- 在「外部指令」面板的「指令」部分,輸入指令名稱,例如
ZGOOGLE_CDF_TOKEN
。 在「Definition」部分中:
- 在「Operating System Command」欄位中輸入
cmd /c
。 在「作業系統指令參數」欄位中輸入:
gcloud auth print-access-token SERVICE_ACCOUNT_NAME
- 在「Operating System Command」欄位中輸入
按一下 [儲存]。
如要測試指令碼,請按一下「執行」。
再次按一下「執行」。
系統會傳回 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
資料夾。
- 請從 Google Trust Services 存放區下載下列 CA 憑證:
- 必須為 Internet Communication Manager (ICM) 設定 HTTPS。請確認 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 中的值區,並指定來源系統、要複製的資料表,以及目標儲存空間值區。
設定 Google ABAP SDK
如要設定 SLT 以進行資料複製 (每個 Cloud Data Fusion 執行個體一次),請按照下列步驟操作:
如要設定 SLT 連接器,SAP 使用者應在設定畫面 (SAP 交易
/GOOG/CDF_SETTINGS
) 中輸入以下關於 Google Cloud 服務帳戶金鑰的資訊,以便將資料轉移至 Cloud Storage。使用交易 SE16 在 /GOOG/CDF_CLT_KY 資料表中設定下列屬性,並記下這個鍵:- NAME:服務帳戶金鑰的名稱 (例如
CDFSLT
) - 服務帳戶名稱:身分與存取權管理服務帳戶名稱
- SCOPE:服務帳戶的範圍
- 專案 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:授權權杖重新整理的時間長度
- NAME:服務帳戶金鑰的名稱 (例如
建立複製設定
在交易程式碼 LTRC
中建立複製設定。
- 繼續進行 LTRC 設定前,請確認 SLT 和來源 SAP 系統之間的 RFC 連線已建立。
- 對於一個 SLT 設定,可能會為複製作業指派多個 SAP 資料表。
前往交易代碼
LTRC
,然後點選「新設定」。輸入「設定名稱」和「說明」,然後按一下「下一步」。
指定 SAP 來源系統 RFC 連線,然後按一下「Next」。
在「Target System Connection Details」(目標系統連線詳細資料) 中,選取「Other」(其他)。
展開「RFC 通訊情境」欄位,選取「SLT SDK」,然後按一下「Next」。
前往「指定轉移設定」視窗,然後輸入應用程式名稱:
ZGOOGLE_CDF
。輸入「資料移轉工作數量」、「初始載入工作數量」和「計算工作數量」。如要進一步瞭解效能,請參閱 SAP LT Replication Server 效能最佳化指南。
依序點選「即時」>「下一步」。
檢查設定,然後按一下「儲存」。請記下以下步驟的大量轉移 ID。
如要維護大量轉移 ID 和 SAP 資料表詳細資料,請執行 SAP 交易:
/GOOG/CDF_SETTINGS
。按一下「執行」或按下
F8
。按一下附加資料列圖示,建立新的項目。
輸入「Mass Transfer ID」、「Mass Transfer Key」、「GCP Key Name」和「Target GCS Bucket」。選取「Is Active」核取方塊,然後儲存變更。
在「設定名稱」欄中選取所需設定,然後按一下「資料佈建」。
選用:自訂表格和欄位名稱。
按一下「自訂名稱」並儲存。
按一下「顯示」。
按一下「附加資料列」或「建立」按鈕,建立新的項目。
輸入要在 BigQuery 中使用的 SAP 資料表名稱和外部資料表名稱,然後儲存變更。
按一下「顯示欄位」欄中的「檢視」按鈕,即可維護資料表欄位的對應項目。
系統會隨即開啟建議的對應頁面。選用:編輯「Temp Field Name」和「Field Description」,然後儲存對應項目。
前往 LTRC 交易。
在「設定名稱」欄中選取值,然後按一下「資料佈建」。
在「資料庫中的資料表名稱」欄位中輸入資料表名稱,然後選取複製情境。
按一下 [Execute] (執行)。這會觸發 SLT SDK 實作,並開始將資料傳輸至 Cloud Storage 中的目標值區。
安裝 SAP 傳輸檔案
如要在 Cloud Data Fusion 中設計及執行複製工作,SAP 元件會以 SAP 傳輸檔案的形式提供,並封存於 ZIP 檔案中。在 Cloud Data Fusion Hub 中部署外掛程式後,即可下載。
如要安裝 SAP 傳輸工具,請按照下列步驟操作:
步驟 1:上傳運算要求檔案
- 登入 SAP 執行個體的作業系統。
- 使用 SAP 交易代碼
AL11
取得DIR_TRANS
資料夾的路徑。通常路徑為/usr/sap/trans/
。 - 將 cofiles 複製到
DIR_TRANS/cofiles
資料夾。 - 將資料檔案複製到
DIR_TRANS/data
資料夾。 - 將資料和共用檔案的使用者和群組設為
<sid>adm
和sapsys
。
步驟 2:匯入傳輸要求檔案
SAP 管理員可以使用 SAP 傳輸管理系統或作業系統,匯入傳輸要求檔案:
SAP 運輸管理系統
- 以 SAP 管理員身分登入 SAP 系統。
- 輸入交易 STMS。
- 依序點選「總覽」>「匯入」。
- 在「佇列」欄中,按兩下目前的 SID。
- 依序點選「額外」>「其他要求」>「新增」。
- 選取運送要求 ID,然後按一下「繼續」。
- 在匯入作業佇列中選取運送要求,然後依序點選「要求」>「匯入」。
- 輸入客戶編號。
在「Options」分頁中,選取「Overwrite Originals」和「Ignore Invalid Component Version」 (如果有的話)。
選用:如要稍後重新匯入傳輸,請按一下「Leave Transports Requests in Queue for Later Import」和「Import Transport Requests Again」。這對於 SAP 系統升級和備份還原作業非常實用。
按一下「繼續」。
使用
SE80
和PFCG
等交易,驗證函式模組和授權角色是否已成功匯入。
作業系統
- 以 SAP 管理員身分登入 SAP 系統。
將要求新增至匯入緩衝區:
tp addtobuffer TRANSPORT_REQUEST_ID SID
例如:
tp addtobuffer IB1K903958 DD1
匯入運輸要求:
tp import TRANSPORT_REQUEST_ID SID client=NNN U1238
將
NNN
替換為客戶編號。例如:tp import IB1K903958 DD1 client=800 U1238
使用任何適當的交易 (例如
SE80
和PFCG
),確認函式模組和授權角色是否已成功匯入。
必要的 SAP 授權
如要在 Cloud Data Fusion 中執行資料管道,您需要 SAP 使用者。SAP 使用者必須是「通訊」或「對話」類型。為避免使用 SAP 對話方塊資源,建議使用「通訊」類型。SAP 管理員可以使用 SAP 交易代碼 SU01
建立使用者。
您必須取得 SAP 授權,才能維護及設定 SAP 的連接器,這項作業結合了 SAP 標準和新連接器授權物件。您可以根據貴機構的安全性政策維護授權物件。下列清單說明連接器所需的部分重要授權:
授權物件:授權物件
ZGOOGCDFMT
會在運輸要求角色中運送。建立角色:使用交易代碼
PFCG
建立角色。對於標準 SAP 授權物件,貴機構可使用自身的安全性機制管理權限。
針對自訂授權物件,請在授權物件
ZGOOGCDFMT
的授權欄位中提供值。針對精細的存取權控管機制,
ZGOOGCDFMT
提供以授權群組為基礎的授權機制。使用者可根據其角色中指派的授權群組,獲得完整、部分或無授權群組的存取權。/GOOG/SLT_CDF_AUTH:可存取所有授權群組的角色。如要限制特定授權群組的存取權,請在設定中維護授權群組 FICDF。
為來源建立 RFC 目的地
開始設定前,請確認來源和目的地之間已建立 RFC 連線。
前往交易代碼
SM59
。依序點選「建立」>「連線類型 3 (ABAP 連線)」。
在「Technical Settings」視窗中,輸入 RFC 目的地相關詳細資料。
按一下「Logon and Security」分頁標籤,即可維護 RFC 憑證 (RFC 使用者和密碼)。
按一下 [儲存]。
按一下「測試連線」。測試成功後,您就可以繼續進行。
確認 RFC 授權測試是否成功。
依序點選「工具」>「測試」>「授權測試」。
設定外掛程式
如要設定外掛程式,請從 Hub 部署外掛程式、建立複製工作,然後按照下列步驟設定來源和目標。
在 Cloud Data Fusion 中部署外掛程式
Cloud Data Fusion 使用者執行下列步驟。
請先部署 SAP SLT Replication 外掛程式,再執行 Cloud Data Fusion 複製工作:
前往您的執行個體:
前往 Google Cloud 控制台的 Cloud Data Fusion「Instances」(執行個體) 頁面。
在新執行個體或現有執行個體中啟用複製功能:
- 如為新執行個體,請按一下「建立執行個體」,輸入執行個體名稱,然後按一下「新增加速器」,選取「複製」核取方塊,並按一下「儲存」。
- 如為現有執行個體,請參閱「啟用現有執行個體的複製功能」。
按一下「View instance」(查看執行個體),在 Cloud Data Fusion 網頁介面中開啟執行個體。
按一下「Hub」(中樞)。
前往「SAP」分頁,按一下「SAP SLT」,然後按一下「SAP SLT Replication Plugin」或「SAP SLT No RFC Replication Plugin」。
按一下 [Deploy] (部署)。
建立複製作業
SAP SLT Replication 外掛程式會使用 Cloud Storage API 暫存值區讀取 SAP 資料表的內容。
如要為資料移轉作業建立複寫工作,請按照下列步驟操作:
在已開啟的 Cloud Data Fusion 執行個體中,依序按一下「Home」>「Replication」>「Create a replication job」。如果沒有「Replication」選項,請為執行個體啟用複寫功能。
輸入複本作業的專屬「名稱」和「說明」。
點按「Next」。
設定來源
在下列欄位中輸入值,即可設定來源:
- 專案 ID: Google Cloud 專案的 ID (這個欄位會預先填入)
資料複製 GCS 路徑:包含複製資料的 Cloud Storage 路徑。必須與 SAP SLT 工作中設定的路徑相同。在內部,系統會將提供的路徑與
Mass Transfer ID
和Source Table Name
連結:格式:
gs://<base-path>/<mass-transfer-id>/<source-table-name>
範例:
gs://slt_bucket/012/MARA
GUID:SLT GUID,是指派給 SAP SLT 大量轉移 ID 的專屬 ID。
Mass Transfer ID:SLT Mass Transfer 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 的服務帳戶。
點按「Next」。
設定目標
如要將資料寫入 BigQuery,外掛程式必須具備 BigQuery 和暫存值儲存桶的寫入權限。變更事件會先以批次方式從 SLT 寫入 Cloud Storage。接著,系統會將這些資料載入 BigQuery 的暫存資料表。系統會使用 BigQuery 合併查詢,將暫存資料表的變更合併至最終目標資料表。
最終目標資料表包含來源資料表的所有原始資料欄,以及額外的 _sequence_num
資料欄。序號可確保在複製器失敗情況下,資料不會重複或遺漏。
在下列欄位中輸入值,即可設定來源:
- 專案 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
代表多地區值區 (請參閱「位置」)。如果您指定現有值區,系統會忽略這個值,因為代管值區和 BigQuery 資料集會在該值區所在位置建立。 暫存值區:變更事件會先寫入這個值區,再載入至暫存資料表。變更會寫入包含複製器名稱和命名空間的目錄。在同一個執行個體內,使用相同的資料夾來跨多個複製器是安全的。如果是透過複製器在多個執行個體間共用,請務必確保命名空間和名稱皆不重複,否則行為會不明確。值區必須與 BigQuery 資料集位於同一個位置。如果未提供,系統會為每個工作建立名為
df-rbq-<namespace-name>-<job-name>-<deployment-timestamp>
的新值區。載入間隔 (秒):等待將一批資料載入 BigQuery 之前的秒數。
前置表格:變更會先寫入前置表格,然後再合併至最終表格。只要在目標資料表名稱前面加上這個前置字串,即可產生中繼資料表名稱。
Require Manual Drop Intervention:遇到捨棄資料表或捨棄資料庫事件時,是否需要手動管理操作來捨棄資料表和資料集。如果設為 true,複製器就不會刪除資料表或資料集。而是會失敗並重試,直到資料表或資料集不存在為止。如果資料集或資料表不存在,則不需要手動介入。系統會照常略過事件。
啟用軟刪除功能:如果設為 true,當目標收到刪除事件時,記錄的
_is_deleted
欄就會設為true
。否則,系統會從 BigQuery 資料表中刪除記錄。對於產生事件順序不正確的來源,這項設定會無效,而且記錄一律會從 BigQuery 資料表中軟刪除。
點按「Next」。
憑證
如果外掛程式是在 Dataproc 叢集中執行,則應將服務帳戶金鑰設為自動偵測。系統會自動從叢集環境讀取憑證。
如果外掛程式未在 Dataproc 叢集中執行,則必須提供服務帳戶金鑰的路徑。您可以在 Google Cloud 主控台的「IAM」頁面中找到服務帳戶金鑰。請確認帳戶金鑰具備存取 BigQuery 的權限。服務帳戶金鑰檔案必須可供叢集中的每個節點使用,且所有執行工作內容的使用者都必須能夠讀取。
限制
- 資料表必須具有要複製的主索引鍵。
- 不支援表格重新命名作業。
- 部分支援資料表變更。
- 現有的不可為空值欄可變更為可為空值欄。
- 您可以將新的可為空值資料欄新增至現有資料表。
- 任何其他類型的資料表結構變更都會失敗。
- 主要索引鍵的變更不會失敗,但現有資料不會重寫,以便遵循新主要索引鍵的唯一性。
選取資料表和轉換
在「選取資料表和轉換」步驟中,系統會顯示在 SLT 系統中複製所選資料表的清單。
- 選取要複製的資料表。
- 選用:選取其他結構定義作業,例如「插入」、「更新」或「刪除」。
- 如要查看結構定義,請按一下表格的「要複製的欄」。
選用步驟:如要重新命名架構中的資料欄,請按照下列步驟操作:
- 查看結構定義時,請依序點選「轉換」「重新命名」。
- 在「重新命名」欄位中輸入新名稱,然後按一下「套用」。
- 如要儲存新名稱,請依序點選「重新整理」和「儲存」。
點按「Next」。
選用步驟:設定進階屬性
如果您知道一小時內複製的資料量,可以選取適當的選項。
查看評估結果
「評估評估」步驟會掃描結構定義問題、缺少的功能,或複製期間發生的連線問題。
在「查看評估結果」頁面中,按一下「查看對應項目」。
如有任何問題,請務必先解決問題才能繼續操作。
選用:如果您在選取資料表和轉換時重新命名資料欄,請在這一步驟中確認新名稱是否正確。
點按「Next」。
查看摘要並部署複製工作
在「查看複寫工作詳細資料」頁面中,查看設定,然後按一下「部署複寫工作」。
選取 Compute Engine 設定檔
部署複製工作後,請在 Cloud Data Fusion 網頁介面的任何頁面中按一下「設定」。
選取要用來執行此複製工作所需的 Compute Engine 設定檔。
按一下 [儲存]。
開始複製作業
- 如要執行複製工作,請按一下「Start」。
選用:提升效能
根據預設,外掛程式會設定為最佳效能。如需其他最佳化方式,請參閱「執行階段引數」。
SLT 和 Cloud Data Fusion 通訊的效能取決於下列因素:
- 來源系統上的 SLT 與專屬的中央 SLT 系統 (建議選項)
- 在 SLT 系統上處理背景工作
- 來源 SAP 系統上的對話方塊工作程序
- 在「LTRC 管理」分頁中,為每個大規模轉移 ID 分配的背景工作程序數量
- LTRS 設定
- SLT 系統的硬體 (CPU 和記憶體)
- 使用的資料庫 (例如:HANA、Sybase 或 DB2)
- 網際網路頻寬 (透過網際網路連線至 SAP 系統和Google Cloud 之間的連線)
- 系統上現有的使用率 (負載)
- 資料表中的欄數。資料欄越多,複製作業速度就會變慢,延遲時間也可能增加。
建議在 LTRS 設定中使用下列讀取類型進行初始載入:
SLT 系統 | 來源系統 | 資料表類型 | 建議的讀取類型 [初始載入] |
---|---|---|---|
SLT 3.0 獨立版 [DMIS 2018_1_752 SP 2] |
S/4 HANA 1909 | 透明 (小/中) 透明 (大) 叢集表格 |
1 個區間計算作業 1 個區間計算作業 4 個傳送端佇列 |
SLT embedded [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 個傳送者佇列 |
- 如要進行複製,請使用 No Ranges 來提升效能:
- 只有在記錄表產生大量積壓資料時,才需要使用範圍。
- 使用單一範圍計算:在 SLT 2.0 和非 HANA 系統中,不建議使用初始載入的讀取類型。
- 使用單一範圍計算:初始載入的讀取類型可能會導致 BigQuery 中的記錄重複。
- 使用獨立的 SLT 系統,效能一律會更好。
- 如果來源系統的資源使用率已達到高水準,建議您一律採用獨立的 SLT 系統。
執行階段引數
snapshot.thread.count
:傳遞要開始並行執行SNAPSHOT/INITIAL
資料載入作業的執行緒數量。根據預設,系統會使用複本工作執行時,在 Dataproc 叢集中可用的 vCPU 數量。建議:只有在需要精確控制並行執行緒數量 (例如減少叢集中的使用量) 時,才設定這個參數。
poll.file.count
:從網頁介面中的「Data Replication GCS Path」欄位提供的 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 級別 0016 以上。
- SAP_ABA 702 版本,SP 級別 0016 以上。
- DMIS 2011_1_700 版本,SP 級別 0017 以上。
支援的 SLT 版本
支援 SLT 2 和 3 版。
支援的 SAP 部署模式
可做為獨立系統或嵌入來源系統。
開始使用 SLT 前,需要實作的 SAP 附註
如果您的支援套件未納入 PL 12 以上版本的 /UI2/CL_JSON
類別修正項目,請實作最新的 SAP 附註,例如 PL12 的 SAP 附註 2798102。/UI2/CL_JSON
建議做法:根據報表 CNV_NOTE_ANALYZER_SLT
建議的 SAP 附註,實作中央或來源系統條件。詳情請參閱 SAP 注意事項 3016862 (需要登入 SAP)。
如果 SAP 已設定,則不必實作其他附註。如有任何特定錯誤或問題,請參閱 SLT 版本的 中央 SAP 附註。
資料量或記錄寬度的限制
擷取的資料量和記錄寬度沒有明確的限制。
SAP SLT Replication 外掛程式的預期處理量
如果環境是根據「最佳化效能」一文中的指南進行設定,外掛程式每小時可擷取約 13 GB 的初始載入資料,以及 3 GB 的複製資料 (CDC)。實際效能可能會因 Cloud Data Fusion 和 SAP 系統負載或網路流量而異。
支援 SAP 差異 (變更資料) 擷取作業
支援 SAP 差異擷取。
必要條件:Cloud Data Fusion 執行個體的租用戶 peering
使用內部 IP 位址建立 Cloud Data Fusion 執行個體時,必須進行租用戶 peering。如要進一步瞭解租用戶對等連線,請參閱「建立私人執行個體」。
疑難排解
複製工作持續重新啟動
如果複製工作持續自動重新啟動,請增加複製工作叢集記憶體,並重新執行複製工作。
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. |
確認所提供的 Mass Transfer 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 |
位元組 | |||
RAW LRAW |
x | 二進位資料 | bytes |
RAWSTRING | xstring | 位元組字串 BLOB | bytes |
日期/時間 | |||
DATS | d | 日期 | date |
時間 | t | 時間 | time |
TIMESTAMP | utcl | ( Utclong ) 時間戳記 |
timestamp |
後續步驟
- 進一步瞭解 Cloud Data Fusion。
- 進一步瞭解 Google Cloud上的 SAP。