本規劃指南提供 SAP 和 Google Cloud 管理員 所需資訊,協助他們規劃如何使用 BigQuery Connector for SAP 2.9 版 (最新版) 和 SAP LT Replication Server,將 SAP 資料複製到 BigQuery。
本指南涵蓋下列主題:
如要瞭解 BigQuery 中 SAP 資料模型的解決方案加速器,請參閱 Google Cloud Cortex Framework。
軟體需求
本節說明 BigQuery Connector for SAP 的軟體需求。
您可以在 SAP LT Replication Server 中安裝 BigQuery Connector for SAP,位置可以是 Google Cloud、內部部署或公有雲 (例如 AWS、Azure 等)。
SAP 軟體版本需求
SAP LT Replication Server 和 SAP 來源系統的必要版本,取決於您是在獨立架構中,將 SAP LT Replication Server 安裝在自有伺服器上,還是在內嵌架構中,將 SAP LT Replication Server 安裝在來源 ABAP 應用程式系統中。
此外,根據您用來做為資料來源的 SAP 系統 (SAP S/4HANA 或 SAP ECC),SAP 軟體需求也會有所不同。
如要查看 BigQuery Connector for SAP 支援的 SAP 軟體版本,請選取與 SAP 來源系統對應的分頁標籤: Google Cloud
S/4HANA
安裝架構 | 系統 | 支援的版本 | 使用者介面 (UI) 外掛程式 |
---|---|---|---|
獨立式 | 來源系統 |
|
請確認 UI Add-On 是與 SAP NetWeaver 版本相容的最新版本 (SAP 建議)。 /UI2/CL_JSON:PL12 以上版本。 如要瞭解 UI Add-On 的最低必要版本,請參閱 SAP Note 22798102 - /UI2/CL_JSON corrections - PL12 的「Support Package」一節。 如要瞭解 UI Add-On 與 SAP NetWeaver 的相容性,請參閱: |
SAP LT Replication Server 系統 |
|
||
嵌入 | 來源系統 |
|
ECC
安裝架構 | 系統 | 支援的版本 | 使用者介面 (UI) 外掛程式 |
---|---|---|---|
獨立式 | 來源系統 |
|
請務必使用與 SAP NetWeaver 版本相容的最新版 UI Add-On,這是 SAP 建議的做法。 /UI2/CL_JSON:PL12 以上版本。 如要瞭解 UI Add-On 的最低必要版本,請參閱 SAP Note 22798102 - /UI2/CL_JSON corrections - PL12 的「Support Package」一節。 如要瞭解 UI Add-On 與 SAP NetWeaver 的相容性,請參閱: |
SAP LT Replication Server 系統 |
|
||
嵌入 | 來源系統 |
|
作業系統需求
BigQuery Connector for SAP 支援 SAP LT Replication Server 支援的任何作業系統。
如要瞭解 SAP LT Replication Server 支援的作業系統,請參閱 SAP 產品供應情形矩陣。
Cloud Billing 帳戶規定
雖然 BigQuery Connector for SAP 免費提供,但您需要Cloud 帳單帳戶才能收到安裝套件。
擴充性
對於大量資料 (例如數十億筆資料記錄,以及數百萬個差異),BigQuery Connector for SAP 會使用 SAP LT Replication Server 的擴充和分割功能,大規模平行擷取資料。詳情請參閱 SAP 說明入口網站中,適用於 SAP LT Replication Server 版本的大小調整指南。
在 Google Cloud 端,BigQuery Connector for SAP 會根據複製路徑,使用不同的 Google Cloud 服務來擴充資料載入作業:
- 透過 Pub/Sub 進行 CDC 複製時,BigQuery Connector for SAP 會使用 Pub/Sub API 和 Storage Write API。
- 如要以串流方式複製資料,BigQuery Connector for SAP 會使用 BigQuery 串流 API。
支援的複製來源
BigQuery Connector for SAP 支援 SAP LT Replication Server 支援的大部分常用應用程式和資料庫來源系統。
支援的 SAP 應用程式來源
您可以從 SAP LT Replication Server 支援的 SAP 應用程式來源複製資料。BigQuery Connector for SAP 支援主要維護中的企業應用程式版本做為資料來源,以及較早的舊版應用程式。支援的 SAP 應用程式包括:
- SAP Business Suite 7
- S/4HANA
- 在 SAP NetWeaver 上執行的 SAP 應用程式
如要複製 SAP Business Warehouse 的資料,SAP 建議不要使用 SAP LT Replication Server。如需 SAP 提供的詳細資訊,請參閱 SAP 注意事項 2525755。
不支援 SAP Cloud 應用程式,例如 S/4HANA Cloud、SAP Ariba、SAP SuccessFactors 等。
支援的資料來源
您只能複製透明或叢集資料表。
BigQuery Connector for SAP 不支援複製 SAP Core Data Services (CDS) 檢視區塊。
在資訊設計工具中,SAP BusinessObjects Business Intelligence 4.3 以上版本支援 BigQuery 做為資料來源。您可以透過 SAP BusinessObjects 報表工具 (例如 SAP BusinessObjects Web Intelligence 和 SAP Crystal Reports for Enterprise 等),查詢 BigQuery 中儲存的資料。
如要進一步瞭解相容性檢查,請參閱 SAP 注意事項 2750723 - Support of Google BigQuery in SAP BI platform products。
安全性
從 SAP LT Replication Server 將資料複製到 BigQuery 時,您需要在 SAP LT Replication Server、SAP LT Replication Server 主機作業系統和Google Cloud中導入安全控管措施。
BigQuery Connector for SAP 與 BigQuery 之間的通訊,是透過端對端 HTTPS 通訊和 SSL 進行。
SAP 安全性
如要控管哪些使用者可以在 SAP LT Replication Server 中設定及使用 BigQuery Connector for SAP,請使用標準的 SAP 角色型授權。
BigQuery Connector for SAP 會在傳輸安裝程序中提供授權物件 ZGOOG_MTID
。
如要設定及執行使用 BigQuery Connector for SAP 的資料複製工作,您可以定義在 SAP LT Replication Server 中具有管理存取權的角色,詳情請參閱「為 BigQuery Connector for SAP 建立 SAP 角色和授權」。
舉例來說,您可以定義名為 ZGOOGLE_BIGQUERY_ADMIN
的角色,該角色具有所有 SAP 授權,以及使用 BigQuery Connector for SAP 設定及運作資料複製到 BigQuery 時所需的 ZGOOG_MTID
授權。
如要進一步瞭解 SAP 提供的角色和授權資訊,請參閱 SAP 說明入口網站中,適用於您 SAP LT Replication Server 版本的安全性指南。
Google Cloud 安全性
在 BigQuery Connector for SAP 上導入安全防護機制時,可能需要使用下列安全控管機制: Google Cloud
- 身分與存取權管理 (IAM) 權限、角色、服務帳戶和金鑰。
- 在資料集或資料表層級設定的 BigQuery 控制項。
- 適用於以 API 為基礎的服務 (例如 BigQuery) 的虛擬私有雲 (VPC) 服務控制項。
- Private Service Connect 端點,可讓您在虛擬私有雲網路中私下使用 BigQuery 等服務。
Google Cloud 身分與存取權管理
如要驗證及授權 BigQuery Connector for SAP,您需要在Google Cloud 包含 BigQuery 資料集的專案中建立 IAM 服務帳戶。
如要授權與 Google Cloud 資源互動,請將角色授予服務帳戶,該帳戶必須具備與 BigQuery 和 Pub/Sub 服務互動的權限。
如要複製串流資料 (僅限插入),BigQuery Connector for SAP 必須具備下列 IAM 角色,才能存取 BigQuery:
如果是異動資料擷取 (CDC) 複製作業,BigQuery Connector for SAP 存取 Pub/Sub 和 BigQuery 時所需的權限,會包含在下列 IAM 角色中:
如果 SAP LT Replication Server 在 Compute Engine VM 上執行,您也需要將「Service Account Token Creator」(服務帳戶憑證建立者) 角色授予主機 VM 的服務帳戶。
如果 SAP LT Replication Server 是在內部部署或另一個雲端平台執行,除了建立服務帳戶,您還需要為 BigQuery Connector for SAP 建立服務帳戶金鑰。SAP 管理員會在 SAP LT Replication Server 主機上安裝金鑰。 BigQuery Connector for SAP 連線至 Pub/Sub 或 BigQuery 時,SAP LT Replication Server 會使用服務帳戶金鑰向Google Cloud進行驗證。
如果 SAP LT Replication Server 在 Google Cloud上執行,則不需要服務帳戶金鑰。
如要進一步瞭解 IAM、服務帳戶、角色和權限,請參閱:
BigQuery 資料集和資料表存取權控管
除了 IAM 控制項,您也可以使用 BigQuery 控制存取權。如果是 SAP 專用的 BigQuery 連接器,您可以設定資料集和資料表的存取權控管。
如需詳細資訊,請參閱:
VPC Service Controls
在 Google Cloud上,VPC 防火牆規則不適用於與 BigQuery 的 API 型互動。請改用 Virtual Private Cloud (VPC) Service Controls 限制流量。
如果 SAP 工作負載在 Google Cloud上執行,您可以定義服務範圍來實作 VPC 服務控制項。詳情請參閱「服務周邊」一文。
如果 SAP 工作負載並非在 Google Cloud上執行,您可以實作 VPC 服務控制項,做為設定內部部署主機的私人 Google 存取權的一部分。
如要進一步瞭解 BigQuery 的網路安全性,請參閱「網路安全性」。
Private Service Connect 端點
如要在虛擬私有雲網路中設定端點,以私密方式使用 BigQuery 等 Google 代管服務,可以使用 Private Service Connect。
Private Service Connect 可讓您建立私人端點,使用 VPC CIDR 範圍內的內部 IP 位址存取 Google API 和服務。您也可以使用 Private Service Connect,為 BigQuery 串流 API 建立自訂的私有 DNS 名稱。詳情請參閱「Private Service Connect」一文。
如果 BigQuery Connector for SAP 是在Google Cloud以外的主機上執行,則不支援 Private Service Connect。
進一步瞭解 Google Cloud 安全性
如要進一步瞭解安全帳戶、角色和權限,請參閱:
網路
規劃將資料複製到 BigQuery 的網路路徑時,請考量下列幾點:
- 頻寬
- 延遲時間及其對 SAP LT Replication Server 主機資源耗用量的影響
- 資料量及其對現有網路負載的影響
- 如果 SAP 工作負載並非在 Google Cloud上執行,請使用下列連線類型:Cloud Interconnect 或 Cloud VPN
正在連線至「 Google Cloud」
如果您的 SAP 系統並非在 Google Cloud 上執行,且您尚未建立 SAP 系統與 Google Cloud的連線,則需要建立連線,並設定 Google Cloud API 的私人存取權。
您可以使用 Cloud Interconnect 或 Cloud VPN 建立與 Google Cloud 的連線。
相較於 Cloud VPN,Cloud Interconnect 通常提供更高的頻寬、更低的延遲和更低的網路爭用。對於大量且對效能要求嚴格的複寫作業, Google Cloud建議使用 Cloud Interconnect for BigQuery Connector for SAP。
使用 Cloud VPN 時,複製資料會透過公用網際網路傳輸,因此網路爭用較難預測,延遲時間通常較長。
無論選擇哪種連線方案,您都需要檢查連線預期支援的所有流量。判斷連線是否具備足夠的頻寬和網路速度,可支援複製作業和任何其他工作負載,且不會對兩者造成負面影響。
連線速度緩慢會延長資源工作完成所需的時間,導致 SAP 來源伺服器和 SAP LT Replication Server 主機的資源耗用量增加,進而使複製作業所需的資源長時間處於忙碌狀態。
如要進一步瞭解連線選項,請參閱下列文章:
如要使用 Proxy 伺服器將 HTTP 要求傳送至 Google Cloud,建議您使用交易 SM59
中定義的 RFC 目的地。
RFC 目的地
SAP 適用的 BigQuery 連接器傳輸檔案包含交易 SM59
中的下列範例 RFC 目的地。這些 RFC 目的地是連線至外部伺服器 (類型 G
) 的 HTTP 連線,並連線至相應服務的公開 API 端點。
RFC 目的地名稱範例 | 目標主機 (API 端點) | 附註 |
---|---|---|
GOOG_BIGQUERY |
https://bigquery.googleapis.com |
這個 RFC 目的地以 BigQuery API 為目標。 |
GOOG_PUBSUB |
https://pubsub.googleapis.com |
這個 RFC 目的地會以 Pub/Sub API 為目標。 |
GOOG_IAMCREDENTIALS |
https://iamcredentials.googleapis.com |
這個 RFC 目的地以 IAM API 為目標。 |
GOOG_OAUTH2_TOKEN |
https://googleapis.com/oauth2 |
這個 RFC 目的地適用於以 OAuth 2.0 為基礎的驗證 Google Cloud 端點。您可以使用這個方法,處理在 Google Cloud 外部執行的 SAP 工作負載,且僅在您想使用 JSON Web Token (JWT) 向 Google Cloud 驗證時使用。 |
使用 RFC 目的地連線至 Google Cloud 具有下列優點:
如果您在 SAP 環境中使用 Proxy 伺服器,並想使用該伺服器將 HTTP 要求傳送至 Google Cloud,則可以在 RFC 目的地中設定 Proxy 伺服器。
如要透過 Private Service Connect 端點啟用 API 和服務的存取權,可以在Google Cloud 專案中建立這些端點,然後在 RFC 目的地中指定端點。 Google Cloud
您可以採用HTTP 壓縮,建議用於跨區域複寫,也就是 SAP 來源系統和 BigQuery 資料集位於不同 Compute Engine 區域的情況。Google Cloud
如要使用 RFC 目的地連線至 Google Cloud API 或服務,您需要在 /GOOG/SERVIC_MAP
表格中建立項目,將 RFC 目的地對應至 /GOOG/CLIENT_KEY
表格。如需設定步驟,請參閱適用於您情境的 SAP 安裝和設定指南的 BigQuery 連接器。
HTTP 壓縮
使用 RFC 目的地設定 BigQuery Connector for SAP 與 Google Cloud API 之間的連線時,可以透過「壓縮」選項壓縮 HTTP 要求主體。只有在將 RFC 目的地設定為使用 HTTP 1.1
時,才能使用 HTTP 壓縮。
在正式環境中啟用 HTTP 壓縮功能前,請先在測試環境中分析會影響 HTTP 壓縮的設定檔參數。如需 SAP 提供的更多資訊,請參閱 SAP 注意事項 1037677 - HTTP 壓縮只會壓縮特定文件。
頻寬
請確認 SAP LT Replication Server 和Google Cloud 之間的網路連線具備足夠頻寬,可支援您所需的資料量和速度。
網路連線速度較慢會導致資料複製作業的延遲時間增加,進而增加來源 SAP 系統中複製作業使用的資源。
如要進行生產環境安裝作業, Google Cloud 建議使用 Cloud Interconnect 連線。您也可以使用 Cloud VPN。
延遲時間
如要減少網路連線的延遲時間,請盡可能在靠近 SAP LT Replication Server 系統和 SAP 來源系統的位置,建立目標 BigQuery 資料集。如果來源 SAP 系統在 Google Cloud上執行,請在與來源 SAP 系統相同的 Google Cloud 地區中建立 BigQuery 資料集。
將安裝項目遷移至正式環境前,請先測試延遲時間。
如要進一步瞭解網路效能,請參閱「網路連線效能」。
網路存取權控管
您可以在 SAP LT Replication Server 與 Google Cloud之間的連線兩端,實作網路存取控制。
Google Cloud 網路存取權控管
BigQuery Connector for SAP 會透過 API 端點與 BigQuery 通訊,這不受 Google CloudVPC 防火牆規則限制。
請改用 VPC Service Controls 限制流量。
如要進一步瞭解 BigQuery 的網路安全性,請參閱「網路安全性」。
SAP LT Replication Server 主機網路存取權控管
在 SAP LT Replication Server 主機上,您需要確保任何防火牆或 Proxy 允許伺服器將輸出流量傳送至 BigQuery 和 Pub/Sub API 端點。具體來說,請確認 SAP LT 複製伺服器可以存取下列 API: Google Cloud
https://bigquery.googleapis.com
https://pubsub.googleapis.com
https://iamcredentials.googleapis.com
如要使用 Private Service Connect 端點存取 BigQuery 和 Pub/Sub API,請務必在表格 /GOOG/SERVIC_MAP
中設定 Private Service Connect 端點。
成效規劃
SAP LT 複製伺服器和 BigQuery 之間的初始載入和複製作業效能,會受到複製路徑上不同點的多項因素影響。
不過,某些基本因素 (例如 SAP LT Replication Server 與 BigQuery 資料集之間的距離,或是連線至 Google Cloud的頻寬),對效能的影響大於其他大多數因素。
一般效能最佳做法
為獲得最佳成效,請在 SAP LT 複製伺服器設定中納入下列建議:
- 在 Google Cloud上執行 SAP 工作負載,包括 SAP 來源系統和 SAP LT Replication Server。
- 如果 SAP 工作負載位於 Google Cloud,請在與 SAP 工作負載相同的地區建立 BigQuery 資料集。
- 如果無法在下列位置執行 SAP 工作負載: Google Cloud
- 在最靠近 SAP 工作負載的 Google Cloud 區域中,建立 BigQuery 資料集。
- 使用 Cloud Interconnect 連線至 Google Cloud 。
- 為避免資源爭用,請為 SAP 來源系統和 SAP LT Replication Server 使用個別專屬主機。
- 請根據 SAP 說明入口網站中,適用於 SAP LT Replication Server 版本的大小調整指南,為工作負載調整 SAP LT Replication Server 系統的最佳大小。
- 使用下列 SAP LT Replication Server 複製設定:
- 並行工作。
- 盡可能讀取第 1 類型。詳情請參閱「Performance and the LTRS Advanced Replication Settings」。
- 使用下列項目設定 BigQuery Connector for SAP:
- 預設記錄壓縮。
- 預設區塊大小。
- 將欄位對應至 BigQuery 資料表時,請盡量避免使用自訂名稱。
如需詳細資訊,請參閱:
其他可能影響成效的特徵
設定和資料的許多特徵都會影響效能。你可能無法修改部分特徵。 這些特徵包括:
- 在來源伺服器上:
- CPU 數量。
- 記憶體大小。
- 使用的資料庫,例如 SAP HANA、SAP ASE、IBM Db2 等。
- 來源資料表中的欄數。
- 每筆記錄保存的資料量。
- 資料表的中繼資料,例如欄位名稱的長度。
- 對話工作程序數量。
- 在 SAP LT Replication Server 上:
- CPU 數量。
- 記憶體大小。
- 主機可能執行的其他工作負載。
- SAP 對話方塊和背景工作程序。
- SAP LT Replication Server 安裝架構類型。詳情請參閱「獨立 (建議) 或嵌入式安裝 SAP LT 複製伺服器」。
- 在 SAP LT Replication Server 系統上執行的背景工作數量。
- 在
LTRC
交易的「管理」分頁中,分配給大量轉移作業的背景工作數量。 LTRS
交易效能設定,包括「讀取類型」和「份量大小」。
- 在 BigQuery 複製設定 (交易
/GOOG/SLT_SETTINGS
) 中:- 是否為目標欄位指定自訂名稱。處理目標 BigQuery 欄位名稱可能會對效能造成輕微影響。
- 是否啟用記錄壓縮功能。
- 區塊大小,這會影響傳送的 HTTP 要求總數。
SAP LT Replication Server 效能注意事項
以下各節將討論與 SAP LT 複寫伺服器設定相關的效能選項。
效能和 SAP LT Replication Server 安裝架構
獨立架構 (SAP LT Replication Server 安裝在專屬伺服器上) 的效能通常比內嵌架構 (SAP LT Replication Server 安裝在與來源系統相同的伺服器上) 更佳。
在內嵌式架構中,SAP LT Replication Server 必須與 SAP 來源系統共用伺服器資源。
即使採用獨立架構,主機的 CPU 和記憶體,以及伺服器上可能執行的任何其他工作負載,都可能影響 SAP LT Replication Server 執行個體的效能。
效能和LTRS
進階複製設定
初始載入和複製作業的效能,會受到您在「Advanced Replication Settings」(進階複製設定) 下的 LTRS
交易中,為來源資料表指定的設定影響。
如需效能調整的相關指引,尤其是如何最佳化大量初始負載或複製作業,請參閱 SAP 說明入口網站中的 SAP LT 複製伺服器效能最佳化指南。
Google Cloud 建議在交易 LTRS
的「進階複製設定」>「一般效能」部分中,採用下列規格:
如要從大多數表格類型進行初始載入,請將「讀取類型」指定為「1 個範圍計算」。如果資料表過大,無法進行 1 個範圍的計算,請指定「讀取類型 5」。
如要複製設定,請在「有效設定」下方執行下列操作:
- 如要以最快速度複製,請指定「自動範圍」。
- 如要進行更可靠的複製作業,請指定「No Ranges」(無範圍)。
下表列出幾個常見情境的建議設定。
資料表類型 | 建議閱讀類型 |
---|---|
透明 (小到中) | 讀取類型 1 - 範圍計算 |
透明 (大) | 只有在「讀取類型 1」無法運作時,才使用「讀取類型 5 - 範圍」 計算 |
叢集資料表 | 讀取類型 4 - 傳送者佇列 |
網路連線效能
SAP LT 複製伺服器系統與 Google Cloud 之間的連線頻寬和延遲,可能會影響複製到 BigQuery 的整體效能。
這不僅會影響複製速度,也會影響 SAP LT Replication Server 和來源系統耗用的資源量,因為從 BigQuery 收到複製確認的時間越長,SAP LT Replication Server 和來源系統保留主機資源的時間就越長。
如果 SAP 工作負載是在地端或其他雲端服務供應商上執行,Google Cloud 建議使用 Cloud Interconnect 連線,因為這項服務提供高頻寬和低延遲,不必與公用網際網路上的流量競爭。
您可以使用 Cloud VPN 連線至 Google Cloud 和 BigQuery,但透過 VPN 連線時,複寫作業必須與一般網際網路流量競爭。
如果 SAP 工作負載在 Google CloudGoogle Cloud上執行,建議將 SAP LT Replication Server 和 BigQuery 資料集放在同一個地區。如果 SAP LT Replication Server 和 BigQuery 位於不同區域,延遲時間通常會較長,效能通常也會較差。如要進一步瞭解如何選擇區域,請參閱「選擇區域和可用區」。
資料傳輸
一般來說,您會盡可能在每個 HTTP 要求中傳送大量資料,以減少 HTTP 要求總數和相關處理負擔。
不過,有時您可能需要減少傳送的資料量,原因可能是特定資料表中的記錄大小,或是您已達到 Pub/Sub 或 BigQuery 的配額上限或其他限制。
您可以透過下列方式,控制每個要求中傳送的資料量:
- 調整 SAP LT Replication Server 傳送至 BigQuery Connector for SAP 的資料量 (部分大小)。
- 調整 BigQuery Connector for SAP 傳送至 BigQuery 的資料量 (區塊大小)。
- 調整 BigQuery 專案中串流插入的配額。
調整 SAP LT Replication Server 傳送的資料量
SAP LT Replication Server 會將來源系統中的記錄分批傳送至 BigQuery Connector for SAP。每個部分都會做為個別的載入或複製作業處理,並耗用伺服器資源,直到完成為止。
一般來說,如果增加 SAP LT Replication Server 的部分大小,SAP LT Replication Server 程序數量和相關的額外負荷就會減少。
部分大小和區塊大小
SAP LT Replication Server 部分的大小以位元組為單位,或是以位元組和記錄的乘積為單位。BigQuery Connector for SAP 區塊的大小取決於可包含的記錄數量。區塊的位元組大小取決於多項因素,包括記錄中的欄位數量,以及每筆記錄所含的資料量。
如果 SAP LT Replication Server 的部分大小大於 BigQuery Connector for SAP 的區塊大小,BigQuery Connector for SAP 就會為每個部分傳送多個區塊,直到傳送完該部分的所有記錄為止。
如果部分大小小於區塊大小,BigQuery Connector for SAP 每個部分只會傳送一個區塊。無論在 BigQuery Connector for SAP 中設定的區塊大小為何,每個區塊都只會包含每個部分傳送的記錄數。
理想情況下,請在 SAP LT Replication Server 中設定部分大小,讓 BigQuery Connector for SAP 盡可能建立最大區塊,且不會超過每個 HTTP 要求的位元組數量的 Pub/Sub 或 BigQuery 限制。
如需指定區塊大小的更多指引,請參閱「BigQuery Connector for SAP 中的區塊大小」。
SAP LT Replication Server 中的部分大小
如要變更 SAP LT Replication Server 使用的預設部分大小,請執行交易 LTRS
,並調整「Performance Options」(效能選項) 下「Advanced Replication Settings」(進階複製設定) 中的「Package Size」(封包大小) 欄位值。
詳情請參閱 SAP 說明入口網站中的 SAP LT Replication Server 效能最佳化指南。
BigQuery Connector for SAP 中的區塊大小
BigQuery Connector for SAP 會以記錄區塊的形式將資料傳送至 BigQuery。
如要透過 Pub/Sub 進行 CDC 複製,建議您搭配 BigQuery Connector for SAP 使用預設的區塊大小 (1,000 筆記錄)。這是 Pub/Sub 允許的記錄數上限。
如要複製串流資料,建議您搭配使用 BigQuery Connector for SAP 的預設區塊大小 (10,000 筆記錄)。不過,如果來源資料表中的記錄包含的欄位很少,或欄位包含的資料值很小,則可使用較大的區塊大小,最多可達 BigQuery 允許的最大區塊大小 (50,000 筆記錄)。
如果特定區塊中的記錄數量解析為的位元組大小,超過 HTTP 要求的位元組大小上限,您可能會收到 quotaExceeded
或 invalid
錯誤。
如果來源資料表中的記錄包含大量欄位,或欄位包含大量資料,就可能發生這種情況。
如果收到與區塊大小相關的錯誤訊息,請嘗試縮減該資料表大量轉移設定中指定的區塊大小。或者,您也可以為該資料表啟用動態區塊大小,自動調整區塊大小。詳情請參閱「動態區塊大小」。
如果尚未啟用動態區塊大小,對於 SAP 來源資料表 (例如 MSEG
、ACDOCA
和 MATDOC
) 而言,由於這些資料表可能含有大量記錄,且每筆記錄都有許多欄位,因此您可能需要指定較小的區塊大小。
您可以執行 /GOOG/SLT_SETTINGS
交易來指定區塊大小。區塊大小是在資料表屬性畫面上的「區塊大小」欄位中指定。
如需指定區塊大小的更多指引,請參閱:
- 如要透過 Pub/Sub 進行 CDC 複製,請參閱「指定資料表建立和其他一般屬性」。
- 如要瞭解如何複製串流資料,請參閱「指定資料表建立和其他一般屬性」。
如要進一步瞭解 BigQuery 錯誤訊息,請參閱「錯誤訊息」。
與傳送部分內容相關的處理負擔
傳送的每個部分都會觸發下列動作,每個動作都會產生一些處理負擔或資源消耗:
- 來源系統記錄資料表中的變更記錄集合會以單一部分的形式傳送至 SAP LT Replication Server。變更的記錄尚未從記錄表格中刪除。
- SAP LT Replication Server 會向 Google Cloud要求新的存取權杖。
- BigQuery Connector for SAP 會將 HTTP 要求傳送至 Google Cloud,檢查目標資料表的結構。
- BigQuery Connector for SAP 會將記錄傳送至 Google Cloud,並視需要將記錄分成多個區塊,以便傳送在單一部分中收到的所有記錄。每個區塊都會透過個別的 HTTP 要求傳送。
- Google Cloud 會處理收到的每個區塊。
- 每個區塊都會傳回 HTTP
OK
狀態碼給 SAP LT 複製伺服器。 - Google Cloud 收到所有記錄後,SAP LT Replication Server 會從記錄表格中刪除傳送的記錄,最終釋放來源系統的資源。
如要進一步瞭解部分內容,以及如何設定 SAP LT Replication Server 以提升效能,請參閱 SAP 說明入口網站中的 SAP LT Replication Server 效能最佳化指南。
BigQuery 配額
專案適用的 BigQuery 串流 API 配額會限制您在一段時間內,以及在任何單一 HTTP 要求中,可串流至 BigQuery 的資料量。
舉例來說,BigQuery 會針對下列指標設定限制:
- 每個專案每秒可傳送的位元組數。
- 單一 HTTP 要求中可傳送的記錄或資料列數量上限。
- 可傳送的 HTTP 要求大小上限。
如果是串流插入作業,BigQuery 會將 HTTP 要求的大小修正為 10 MB,且您在單一 HTTP 要求中傳送的記錄數上限為 50,000 筆。
在大多數情況下,您可以變更配額,但無法變更限制。
您可以在Google Cloud 控制台的「配額」頁面中,查看及編輯專案的有效配額。
如要進一步瞭解串流資料插入的 BigQuery 配額和限制,請參閱:
Pub/Sub 配額
專案適用的 Pub/Sub API 配額會限制您在一段時間內,以及在任何單一 HTTP 要求中,可串流至 BigQuery 的資料量。
舉例來說,Pub/Sub 會針對下列指標設定限制:
- 每個專案每秒可傳送的位元組數。
- 單一 HTTP 要求中可傳送的記錄或資料列數量上限。
- 可傳送的 HTTP 要求大小上限。
如果是 CDC 資料,Pub/Sub 會將 HTTP 要求的大小固定為 10 MB,且單一 HTTP 要求中可傳送的記錄數為 1,000 筆。
在大多數情況下,您可以變更配額,但無法變更限制。
您可以在Google Cloud 控制台的「配額」頁面中,查看及編輯專案的有效配額。
如要進一步瞭解 Pub/Sub 配額和資源限制,請參閱:
記錄壓縮
透過 Pub/Sub 進行 CDC 複製時,系統不支援記錄壓縮功能。
如果是串流資料複製作業,BigQuery Connector for SAP 預設會壓縮傳送至 BigQuery 的記錄,藉此提升複製效能。在 BigQuery Connector for SAP 2.8 以上版本中,記錄壓縮選項適用於資料表層級和欄位層級。
如果啟用資料表層級的記錄壓縮功能 (預設設定),BigQuery Connector for SAP 會從傳送至 BigQuery 的記錄中,省略來源記錄中所有空白的欄位。將記錄插入 BigQuery 時,系統會以 null
初始化目標 BigQuery 資料表中的欄位,這些欄位是從傳送的資料中省略。
不過,如果您需要在資料表層級使用記錄壓縮功能,同時將部分空白欄位及其初始值複製到 BigQuery,則可以變更這些特定欄位的記錄壓縮設定。也就是說,系統不會從傳送的資料中省略指定欄位的空白值,並保留來源表格中初始化的值。
您可以在資料表和欄位層級使用「傳送未壓縮的標記」設定,控制記錄壓縮行為。下表摘要說明記錄壓縮行為:
在表格層級傳送未壓縮的旗標 | 在欄位層級傳送未壓縮的旗標 | 記錄壓縮行為 |
---|---|---|
是 | 否 | 所有欄位都會以未壓縮的形式傳送。 |
是 | 是 | 所有欄位都會以未壓縮的形式傳送。 |
否 | 是 | 只有欄位層級選取的欄位會以未壓縮格式傳送。 |
否 | 否 | 所有欄位都會以壓縮格式傳送。 |
傳送未壓縮的資料進行複製時,除了日期欄位和時間戳記欄位,空白欄位會保留在來源資料表中初始化的值。日期和時間戳記欄位的初始值如下:
- 日期欄位初始化值:
DATE 1970-01-01
- 時間戳記欄位初始化值:
TIMESTAMP 1970-01-01 00:00:00 UTC
以下螢幕截圖顯示記錄壓縮行為的範例:
- 第 1 列:所有欄位都未壓縮。在資料表層級選取「傳送未壓縮的旗標」。
- 第 2 列:所有欄位都經過壓縮。資料表層級的「傳送未壓縮的標記」已清除。
- 第 3 列:下列欄位未壓縮:
int2_value
、curr_value_154
、currency
、float_value
和lang_value
。對於這些欄位,系統會在欄位層級選取「傳送未壓縮的標記」。
為提升效能,請勿在表格層級選取「傳送未壓縮的標記」,以免停用記錄壓縮功能。這可能會對複製效能造成負面影響。如果只需要為特定欄位傳送未壓縮的資料,請在欄位層級為這些特定欄位選取「傳送未壓縮的旗標」。如要進一步瞭解記錄壓縮如何影響從 SAP LT Replication Server 移轉至 BigQuery 的資料,請參閱「瞭解 BigQuery Connector for SAP 壓縮功能」。
BigQuery 複製設定
使用 BigQuery Connector for SAP 設定複製作業時,您會使用多種不同的 SAP 交易,包括 Google Cloud提供的自訂交易:
SM30
- 定義連線至 Google Cloud的屬性,這些屬性會儲存為自訂設定資料表/GOOG/CLIENT_KEY
中的記錄。選擇性步驟:使用 RFC 目的地連線至Google Cloud API 和服務時,部分連線屬性會儲存在自訂設定表/GOOG/SERVIC_MAP
中。LTRC
- 定義 BigQuery Connector for SAP 複製應用程式和大量移轉 ID,以及其他屬性。SM59
- 定義 RFC 目的地,可連線至 BigQuery 和 IAM 等 API 和服務。 Google Cloud/GOOG/SLT_SETTINGS
- 定義目標 BigQuery 資料集、資料表和欄位的屬性。在 SAP LT 複製伺服器中輸入/GOOG/SLT_SETTINGS
時,必須新增/n
,才能逸出交易名稱中的初始正斜線。
語言支援
BigQuery Connector for SAP 僅支援英文的複製設定。使用 SAP 交易和 Google Cloud提供的自訂交易設定複製作業時,請在 SAP 登入畫面使用英文做為登入語言。
不過,BigQuery Connector for SAP 支援執行在 SAP LT 複寫伺服器上執行的背景工作,且支援 SAP SLT 支援的所有語言。
使用 BigQuery Connector for SAP 時可能遇到的任何錯誤訊息,都會以英文產生,與背景工作執行語言無關。
目標資料表屬性
在 SAP LT Replication Server 中執行 /GOOG/SLT_SETTINGS
交易來設定複製作業時,您可以指定 BigQuery Connector for SAP 在 BigQuery 中建立目標資料表時套用的設定。
舉例來說,您可以為目標 BigQuery 表格指定下列屬性:
- 資料表名稱
- 欄位的預設命名選項
- 額外欄位,用於擷取記錄變更及啟用記錄計數查詢
- 資料表分區
欄位的預設命名選項
您可以設定 BigQuery Connector for SAP,從來源欄位的名稱或來源欄位的標籤和說明,為目標 BigQuery 資料表中的欄位建立名稱。標籤和說明通常會提供更多欄位內容的相關資訊。
根據預設,BigQuery Connector for SAP 會使用來源欄位的名稱。如要變更預設值,請在 /GOOG/SLT_SETTINGS
交易的大量轉移設定中指定資料表建立屬性時,指定「自訂名稱」旗標。這項規格會儲存在 /GOOG/BQ_MASTR
設定表中。
建立名稱時,BigQuery Connector for SAP 會修改名稱,以符合 BigQuery 命名慣例。
建立資料表前,您可以在 /GOOG/SLT_SETTINGS
交易的欄位對應畫面中編輯欄位名稱。
指定「自訂名稱」標記後,BigQuery Connector for SAP 連接器建立目標資料表時使用的名稱,會顯示在欄位對應畫面中的「外部欄位名稱」欄。
BigQuery Connector for SAP 會根據每個來源欄位的中等欄位標籤,在「外部欄位名稱」欄中建立名稱。如果來源欄位定義中未指定中等欄位標籤,系統會使用欄位的簡短說明。如果未指定簡短說明,系統會使用最短的指定標籤。如未指定任何項目,系統會使用來源欄位的名稱。
如要進一步瞭解如何自訂目標欄位名稱,請參閱「自訂目標欄位名稱」。
擷取記錄變更並啟用記錄計數
如要擷取觸發複製作業的來源資料表變更類型,並查詢 BigQuery 資料表中的記錄數,以便與 SAP LT Replication Server 或來源資料表中的記錄數進行比較,請在設定複製作業時,於 /GOOG/SLT_SETTINGS
交易中指定「Extra Fields Flag」(額外欄位標記) 選項。
指定「額外欄位標記」選項後,系統會在目標 BigQuery 資料表的結構定義中新增下列資料欄:
欄位名稱 | 資料類型 | 說明 |
---|---|---|
operation_flag
|
STRING
|
識別來源資料表中的變更類型,這些變更會觸發記錄載入或複製到 BigQuery。
如要計算以複製模式插入的記錄,請查詢
如要計算以初始載入模式插入的記錄,請查詢 |
is_deleted
|
BOOLEAN
|
如果為 true ,表示來源記錄已從來源資料表刪除。
如要只計算 BigQuery 資料表中未從來源資料表刪除的記錄,請使用 |
recordstamp
|
TIMESTAMP
|
SAP LT Replication Server 將記錄傳送至 BigQuery 的時間。 如要計算 BigQuery 資料表中的不重複記錄數量,請只查詢每筆記錄最近一次插入的執行個體。如需查詢範例,請參閱「查詢 BigQuery 資料表中的記錄總數」。 |
「額外欄位旗標」選項的目前設定會儲存在 /GOOG/BQ_MASTR
設定表格中。
如要進一步瞭解如何指定額外欄位標記,請參閱:
- 如要透過 Pub/Sub 進行 CDC 複製,請參閱「指定資料表建立和其他一般屬性」。
- 如要瞭解如何複製串流資料,請參閱「指定資料表建立和其他一般屬性」。
資料表分區
您可以建立 BigQuery 資料表,並依據來源資料表中的時間戳記欄位 (建立時間單位欄分區資料表),或依據記錄插入 BigQuery 的時間 (建立擷取時間分區資料表) 進行分區。
設定複寫屬性時,請在 /GOOG/BQ_TABLE
的「Partition Type」(分區類型) 欄位中指定分區類型,即可啟用分區功能。
您可以指定的分區類型會依小時、天、月或年調整分區的精細程度。
如要使用來源資料表的時間戳記進行時間單位資料欄分區,請在「分區欄位」欄位中指定來源欄位的名稱。
如要使用 BigQuery 插入時間進行擷取時間分區,請將「Partition Field」(分區欄位) 留白。BigQuery Connector for SAP 會在目標資料表中建立欄位,用於儲存插入時間。
目標欄位屬性
根據預設,SAP 適用的 BigQuery 連接器會使用 SAP 來源資料表中的欄位名稱和資料類型,做為目標 BigQuery 中的欄位名稱和資料類型。
您也可以在建立目標資料表前,自訂欄位名稱或變更 BigQuery 資料型別。
自訂目標欄位名稱
建立表格前,您可以自訂目標欄位名稱。
如有需要,BigQuery Connector for SAP 會修改您指定的自訂名稱,以符合 BigQuery 命名慣例。
設定複製作業時,您可以在 /GOOG/SLT_SETTINGS
交易的欄位對應畫面中查看欄位名稱。BigQuery Connector for SAP 會將設定儲存在 /GOOG/BQ_FIELD
設定資料表中。
建立資料表前,您可以編輯欄位對應畫面「暫時欄位名稱」欄位中產生的名稱,指定自訂欄位名稱。如果您刪除值並將「Temporary Field Name」(暫時欄位名稱) 欄位留空,則 BigQuery Connector for SAP 會使用來源欄位的名稱做為目標欄位的名稱。
編輯暫時欄位名稱後,按一下「儲存」,BigQuery Connector for SAP 就會驗證值、視需要套用 BigQuery 命名慣例,並儲存變更。按下 Enter 鍵即可驗證值,不必儲存。
如要瞭解如何設定目標欄位的預設命名方式,請參閱「欄位的預設命名選項」。
使用試算表或文字檔編輯 BigQuery 欄位對應
建立目標 BigQuery 資料表之前,您可以選擇將目標欄位的預設資料型別、名稱和說明儲存至試算表或文字檔,這樣 BigQuery 資料工程師或管理員就能編輯這些值,不必存取 SAP LT 複製伺服器。
編輯值後,您需要將檔案及其內容轉換為逗號分隔值 (CSV) 格式。然後使用自訂交易 /GOOG/SLT_SETTINGS
上傳 CSV 檔案,即可套用大量轉移設定的更新。
如要使用 CSV 檔案編輯 BigQuery 欄位對應,請按照下列步驟操作:
- 建立預設欄位對應的試算表或文字檔。
- 編輯值。
- 將試算表或文字檔轉換為 CSV 格式。
- 上傳 CSV 檔案。
如需各步驟的詳細操作說明,請參閱「在 CSV 檔案中編輯 BigQuery 欄位對應」。
BigQuery 欄位的命名慣例
BigQuery 命名慣例只使用小寫英文字母、數字和底線。
BigQuery Connector for SAP 會將 BigQuery 命名慣例套用至任何輸入值,做為目標欄位的名稱。
舉例來說,如果您輸入 FIELD-@#!*123
做為自訂欄位名稱,BigQuery Connector for SAP 會將名稱變更為 field_123
。
如要進一步瞭解 BigQuery 欄位的命名慣例,請參閱「資料欄名稱」。
資料類型對應
根據預設,BigQuery Connector for SAP 會根據來源 SAP 欄位的 SAP 類型或 SAP 資料類型,為目標 BigQuery 欄位指派資料類型。
如要透過 Pub/Sub 進行 CDC 複製作業,資料類型對應程序會包含中繼步驟:
BigQuery Connector for SAP 到 Pub/Sub:當 BigQuery Connector for SAP 將資料傳送至 Pub/Sub 主題時,SAP 資料類型會先轉換為 Pub/Sub Avro 資料類型。
Pub/Sub 至 BigQuery:接著,系統會使用 BigQuery 訂閱項目,將 Pub/Sub Avro 格式的資料串流至 BigQuery。此時,Pub/Sub 會指派最終的 BigQuery 資料類型。
為確保資料順暢流動並準確解讀,Pub/Sub Avro 資料類型和最終的 BigQuery 資料類型必須相容。如要瞭解 Pub/Sub 主題與 BigQuery 資料表之間的結構定義相容性,請參閱結構定義相容性。
設定複製作業時,您可以在 /GOOG/SLT_SETTINGS
交易的欄位對應畫面中查看資料類型。BigQuery Connector for SAP 會將設定儲存在 /GOOG/BQ_FIELD
設定資料表中。
建立資料表前,您可以將預設資料類型規格變更為其他 BigQuery 資料類型和 Pub/Sub Avro 資料類型。
需要特殊處理的資料類型
部分 SAP 資料類型需要特別處理,才能在目標 BigQuery 資料表中準確表示。
您必須自行處理部分資料類型。BigQuery Connector for SAP 會為您處理其他事項。
布林值
對於布林值,SAP 使用 CHAR
資料類型,而 BigQuery Connector for SAP 預設會將其對應至目標 BigQuery 資料表中的 STRING
資料類型。
因此,如果是布林值,當您使用 /GOOG/SLT_SETTINGS
交易設定複製作業時,必須在欄位對應畫面中,將布林值欄位的預設資料類型指派從 STRING
變更為 BOOLEAN
。
時間戳記
對於時間戳記,SAP 使用 P
(封裝十進位) 或 DEC
(十進位) 資料型別,而 BigQuery Connector for SAP 預設會將這些型別對應至目標 BigQuery 資料表中的 NUMERIC
。
因此,如要使用 /GOOG/SLT_SETTINGS
交易設定時間戳記的複製作業,您需要在欄位對應畫面中,將時間戳記欄位的預設資料類型指派從 NUMERIC
變更為 TIMESTAMP
或 TIMESTAMP (LONG)
。
X
SAP 類型
X
SAP 類型為十六進位,並以 RAW
、RAWSTRING
或 LRAW
SAP 資料型別表示。根據預設,BigQuery Connector for SAP 會將這些資料類型對應至來源 BigQuery 表格中的 STRING
。
如果需要將 X
SAP 類型來源欄位對應至 BYTES
,則必須在 /GOOG/SLT_SETTINGS
交易的欄位對應畫面中,變更欄位的預設資料類型指派。
SAP 有時也會使用 X
SAP 類型,表示整數。在本例中,BigQuery Connector for SAP 會檢查來源欄位的資料類型,是否為整數的 SAP 資料類型 (INT1
、INT2
、INT4
、INT8
),並在目標 BigQuery 表格中指派 INTEGER
資料類型。
y
SAP 類型
y
SAP 類型種類是位元組字串,並以 RAW
、RAWSTRING
或 LRAW
SAP 資料類型表示。根據預設,BigQuery Connector for SAP 會將這些資料類型對應至來源 BigQuery 表格中的 STRING
。
如果需要將 y
SAP 類型來源欄位對應至 BYTES
,則必須在 /GOOG/SLT_SETTINGS
交易的欄位對應畫面中,變更欄位的預設資料類型指派。
LRAW
SAP 資料類型
BigQuery Connector for SAP 會將 LRAW
資料類型儲存在 BigQuery 中,做為 Base64
編碼字串。
如果您透過 Pub/Sub 使用 CDC 複寫功能,連接器會先將 LRAW
欄位轉換為 UTF-8
編碼,再傳送至 Pub/Sub。儘管經過這項轉換,連接器仍會在 BigQuery 中將資料儲存為 Base64
。
連接器轉換 LRAW
欄位的值時,只會考量先前長度欄位所指出的初始位元組。UTF-8
這符合 SAP 標準,其中前方的長度欄位 (INT2
或 INT4
型別) 會定義 LRAW
內容的有效長度。
預設資料類型對應
下表顯示 BigQuery Connector for SAP 的預設資料類型轉換:
SAP 類型 | SAP 資料類型 | BigQuery 資料類型 | Pub/Sub Avro 資料類型 | 附註 |
---|---|---|---|---|
b (1 位元組整數)s (2 位元組整數)I (4 位元組整數)8 (8 位元組整數)
|
INT1 INT2 INT4 INT8
|
INTEGER |
INT |
|
F (浮點數)
|
FLTP
|
FLOAT |
FLOAT |
|
P (已封裝)
|
CURR DEC QUAN
|
NUMERIC |
DOUBLE |
根據預設,SAP 類型種類 P 會對應至 BigQuery 資料類型 NUMERIC ,並轉換為外部格式的數字。 |
a (十進位浮點數,16 位)
|
DECFLOAT16 |
NUMERIC |
DOUBLE |
|
e (十進位浮點數,16 位)
|
DECFLOAT34 |
NUMERIC |
DOUBLE |
|
N (數字) |
NUMC |
STRING |
STRING |
|
X (十六進位)y (位元組字串)
|
RAW RAWSTRING LRAW
|
STRING |
STRING |
如果 SAP 類型為 X ,但資料類型名稱涵蓋模式 'INT*' (INT1 、INT2 、INT4 ),來源資料元素會替換為具有 TYPEKIND '8' 的新資料元素 TYPINT8 ,並對應至 BigQuery 資料類型 INTEGER 。 |
C (字元)g (字元字串)? (csequence)& (clike)
|
CHARSTRING |
STRING |
STRING |
|
D (日期) |
DATS |
DATE |
STRING |
|
T (時間) |
TIMS |
TIME |
STRING |
授權
BigQuery Connector for SAP 是以「軟體」形式提供,適用於您使用 Google Cloud 平台時須遵守的協議,包括《服務專屬條款》(請參閱 https://cloud.google.com/terms/service-terms)。在不影響前述條款一般性的前提下,未經 Google 明確書面許可,您不得修改或散布 BigQuery Connector for SAP。
BigQuery Connector for SAP 軟體免費提供。為求清楚,您在 Google Cloud 平台使用其他「軟體」和「服務」時,可能需要支付費用,例如 BigQuery、Pub/Sub、Pub/Sub API、Storage Write API 和 BigQuery 串流 API。
BigQuery Connector for SAP 不含任何 SAP 軟體授權,包括但不限於 SAP LT Replication Server;您必須另外取得適當的 SAP 軟體授權。
支援生命週期
Google Cloud 在SAP 版本資訊頁面 Google Cloud發布舊版通知後,至少 12 個月內,支援並維護 BigQuery Connector for SAP 的最新主要版本。
後續步驟
如要瞭解如何安裝 BigQuery Connector for SAP,請參閱「安裝 BigQuery Connector for SAP」。