本指南將概略介紹 BigQuery Connector for SAP,詳細說明其功能,以及如何簡化 SAP 系統與 BigQuery 之間的資料整合。BigQuery Connector for SAP 會以近乎即時的方式,將 SAP 資料複製到 BigQuery。將資料匯入 BigQuery 後,您就能對即時 SAP 應用程式資料執行人工智慧或機器學習分析。您也可以在 BigQuery 中整合 SAP 資料和其他來源的資料。
BigQuery Connector for SAP 會安裝到 SAP Landscape Transformation Replication Server (SAP LT Replication Server),並使用 SAP Landscape Transformation Replication Server 的標準介面和功能。SAP 適用的 BigQuery 連接器支援 SAP LT 複製伺服器支援的所有資料來源。
Google Cloud 已開發 BigQuery Connector for SAP,做為 SAP Business Add In (BAdI) 的實作項目,適用於 SAP LT Replication Server,並遵循 SAP LT Replication Server SDK 程序。這個外掛程式會使用 SAP LT Replication Server 的變更資料擷取 (CDC) 功能。
資料處理
BigQuery Connector for SAP 僅允許進行最少的資料轉換,符合擷取、載入、轉換模型 (ELT),而非擷取、轉換和載入 (ETL) 模型。如要進一步瞭解這些模型,請參閱資料管道的程序和模式。
連接器會根據來源資料,自動建議目標表格的欄位、欄位名稱和資料類型。建立目標 BigQuery 資料表前,您可以視需要修改建議值。系統會根據來源資料表中欄位的說明,建議目標欄位的名稱。詳情請參閱欄位的預設命名選項。
雖然 BigQuery Connector for SAP 會自動為大多數欄位建議 BigQuery 資料類型,但系統無法自動解讀布林值、時間戳記和十六進位值,因此您需要手動對應這些值。詳情請參閱「資料類型對應」。
BigQuery Connector for SAP 提供多個強化點,您可以在 BigQuery Connector for SAP 程式碼中插入自己的自訂強化功能。詳情請參閱「強化退出」。
如果 BigQuery 中沒有目標資料表,SAP 專用的 BigQuery 連接器就會建立一個。如要透過 Pub/Sub 進行 CDC 複製,BigQuery Connector for SAP 也會自動建立必要的 Pub/Sub 主題、結構定義和訂閱項目。
支援的複寫路徑
BigQuery Connector for SAP 支援下列複製路徑:
透過 Pub/Sub 進行變更資料擷取 (CDC) 複製作業
透過 Pub/Sub 進行變更資料擷取 (CDC) 複製作業後,BigQuery 資料表會直接反映來源 SAP 資料表的變更,更新現有資料並新增記錄,確保資料同步。這種做法會使用 Storage Write API 的 CDC 功能,因此不需要手動重複資料刪除。CDC 的重點在於擷取並套用來源 SAP 資料表中的變更 (更新、刪除和新插入的資料)。
當 SAP 資料表中的記錄更新或刪除時,BigQuery Connector for SAP 會將這項變更發布至 Pub/Sub 主題。接著,BigQuery 訂閱項目會將資料直接串流至對應的 BigQuery 資料表,並套用變更,不會重複。
串流資料複製
透過串流資料複製功能,BigQuery 資料表會持續附加新記錄,以插入專用模式反映每項變更,做為個別項目。如果 BigQuery 收到對 BigQuery 資料表中現有記錄的更新,BigQuery 會將記錄的新例項插入該資料表,而不會修改現有例項。最近插入的記錄例項會反映來源資料表中記錄的目前狀態。
如要以串流方式複製資料,SAP 適用的 BigQuery 連接器會使用 BigQuery 串流 API。
下圖說明使用 BigQuery Connector for SAP,將資料從 SAP 複製到 BigQuery 的兩種路徑:
各路徑的資料流程和元件細目如下:
資料擷取和初始處理 (兩種路徑皆適用)
- SAP 資料來源:SAP 環境中的資料來源。
- SAP LT Replication Server:透過 RFC 連線連線至 SAP 資料來源。主要功能是從 SAP 來源擷取 CDC 資料。
- BigQuery Connector for SAP:接收擷取的 CDC 資料,並根據設定判斷資料要採用的複製路徑。
CDC 複製路徑
這個路徑的重點是透過 Pub/Sub 將變更內容複製到 BigQuery CDC 資料表:
- Pub/Sub REST API:BigQuery Connector for SAP 會使用 Pub/Sub REST API,將 CDC 資料發布至 Pub/Sub。
- Pub/Sub 主題:做為中央訊息代理程式,接收發布的 CDC 資料。
- Pub/Sub 結構定義:與 Pub/Sub 主題相關聯,可強制執行資料結構,維持資料一致性。
- Pub/Sub BigQuery 訂閱項目:訂閱 Pub/Sub 主題,並將 CDC 資料串流至 BigQuery CDC 資料表。
- BigQuery CDC 資料表:BigQuery 中 CDC 資料的最終目的地。並套用變更 (更新/刪除) 及插入新記錄,以維持 SAP 資料的最新狀態,並確保資料不重複。
- 無法傳送的訊息主題:如果訊息無法透過 BigQuery 訂閱項目處理,系統會將訊息傳送至這個 Pub/Sub 主題,供您進一步手動調查,確保資料不會遺失。
串流資料複製 (僅限插入) 路徑
這個路徑的設計目的是持續將新記錄插入 BigQuery 暫存資料表,並將每項變更保留為新項目:
- BigQuery Streaming REST API:BigQuery Connector for SAP 會使用 BigQuery 串流 REST API,將資料直接串流至 BigQuery。
- BigQuery 中繼資料表:串流資料的目的地。在這個僅供插入的模式中,每項變更 (包括更新和刪除現有 SAP 記錄) 都會導致新資料列附加至這個資料表。
選擇複製路徑
本節將比較複製路徑,協助您決定最符合特定資料需求和作業需求的選項。
因素 | 透過 Pub/Sub 複製 CDC | 串流資料複製 (僅限插入模式) |
---|---|---|
運作方式 | 只擷取並套用 BigQuery 資料表的變更。 | 將每項變更插入 BigQuery 資料表做為新記錄。 |
BigQuery 結果 | 透過原生更新或刪除現有資料列,維護單一最新記錄。 | 每次變更都會建立新項目,導致同一筆記錄有多個版本。 |
主要優點 | 提供最新資料,確保資料高度一致。 | 適用於基本擷取作業,並提供稽核記錄。 |
部署作業架構
您會在 SAP LT Replication Server 執行個體中,以 Business Add-In (BAdI) 形式安裝 BigQuery Connector for SAP。
SAP LT Replication Server 執行個體可以位於 Google Cloud、地端部署或另一個雲端供應商。建議您盡可能將 SAP LT Replication Server 執行個體放在 SAP 資料來源附近。與網路團隊合作,確保來源 SAP 系統、SAP LT Replication Server 和 BigQuery 資料集之間的延遲時間短,且總處理量高。
以下各節說明 BigQuery Connector for SAP 的常見建議架構。
透過 Pub/Sub 進行 CDC 複製的部署架構
Google Cloud上的 SAP 資料來源架構
下圖顯示 Google Cloud上的兩個 SAP LT Replication Server 安裝範例,SAP 資料來源位於 Google Cloud。
為顯示各架構的範例,其中一個安裝作業使用 SAP LT Replication Server 獨立架構,SAP LT Replication Server 安裝在個別伺服器上;另一個則使用 SAP LT Replication Server 內嵌架構,SAP LT Replication Server 安裝在 SAP 來源系統伺服器中。
由於 SAP LT Replication Server 執行個體安裝在Google Cloud,BigQuery Connector for SAP 會直接連線至 Pub/Sub API 端點,不需要 Cloud Interconnect 或 Cloud VPN 連線。
地端部署或在其他雲端供應商環境中,搭配 SAP 資料來源使用的架構
下圖顯示兩個 SAP LT 複製伺服器安裝範例,這些伺服器可在地端或在其他雲端服務供應商上執行。
為顯示各架構的範例,其中一個安裝作業使用 SAP LT Replication Server 獨立架構,另一個則使用 SAP LT Replication Server 內嵌架構。
在這兩個範例中,SAP LT Replication Server 都安裝在與 SAP 資料來源相同的環境中。
SAP LT 複寫伺服器中的 BigQuery Connector for SAP 與 Pub/Sub 的連線,是由 Cloud Interconnect 連線或 Cloud VPN 連線提供。
資料流程的詳細架構檢視畫面
下圖顯示 BigQuery Connector for SAP 在 SAP LT Replication Server 資料流程中的位置:
以下編號說明對應圖表中的數字:
- 初始化 SAP LT Replication Server 後,當來源資料表中的記錄插入、更新或刪除時,資料庫觸發程序會記錄記錄資料表中的變更。
- SAP LT Replication Server 會使用 RFC 呼叫,持續檢查記錄資料表是否有新項目。
- 如果 SAP LT Replication Server 找到新項目,讀取引擎就會讀取記錄,並呼叫對應和轉換引擎。
- 對應和轉換引擎會呼叫寫入引擎,後者會叫用 BigQuery Connector for SAP。
- Write 引擎會將處理過的資料傳遞至 BigQuery Connector for SAP。在這裡,連接器的自訂 BAdI 實作會將 SAP 變更記錄轉換為符合 Avro 規範的 JSON 格式。並填入特定中繼資料欄位,如下所示:
_CHANGE_TYPE
:根據 SAP SLT 作業填入。 例如,插入或更新時使用UPSERT
,刪除時使用DELETE
。_CHANGE_SEQUENCE_NUMBER
:BigQuery 中用於依時間順序排序和解決衝突的精細時間戳記。
- BigQuery Connector for SAP 接著會透過 Pub/Sub REST API,使用 HTTPS 透過安全連線,將轉換後的訊息發布至 Pub/Sub。
- 收到資料後,Pub/Sub 會採取下列動作:
- 根據結構定義執行驗證檢查。
- 將 HTTP 200 (
OK
) 狀態碼傳送回 BigQuery Connector for SAP,表示訊息有效。 - 透過 BigQuery 訂閱項目,將記錄插入 BigQuery 目標資料表。
- 擷取無法擷取至 BigQuery 的訊息,並存放在無法傳送的訊息主題中,避免資料遺失並簡化疑難排解程序。
- BigQuery Storage Write API 會使用訊息中的
_CHANGE_TYPE
和_CHANGE_SEQUENCE_NUMBER
欄位套用變更。API 會執行插入、更新或刪除作業,藉此維護 BigQuery 資料表中的同步資料,以供資料分析使用。 - BigQuery Connector for SAP 會將 HTTP
OK
狀態碼傳回 SAP LT Replication Server,後者會從記錄資料表中刪除複製的項目,並釋放 SAP 來源系統的資源。
串流資料複製的部署架構
下圖顯示 Google Cloud上的兩個 SAP LT Replication Server 安裝範例,SAP 資料來源位於 Google Cloud。
為展示各架構的範例,其中一個部署作業使用 SAP LT Replication Server 獨立架構,SAP LT Replication Server 安裝在個別伺服器上;另一個部署作業則使用 SAP LT Replication Server 內嵌架構,SAP LT Replication Server 安裝在 SAP 來源系統伺服器中。
由於 SAP LT Replication Server 執行個體安裝在Google Cloud上,BigQuery Connector for SAP 會直接連線至 BigQuery API 端點,不需要 Cloud Interconnect 或 Cloud VPN 連線。
在圖表中,SAP 系統和 BigQuery 位於不同的 Google Cloud 專案,但如有需要,您也可以使用同一個專案。
地端部署或其他雲端供應商的 SAP 資料來源架構
下圖顯示兩個 SAP LT 複製伺服器安裝範例,這些伺服器可在地端或在其他雲端服務供應商上執行。
為顯示各架構的範例,其中一個安裝作業使用 SAP LT Replication Server 獨立架構,另一個則使用 SAP LT Replication Server 內嵌架構。
在這兩個範例中,SAP LT Replication Server 都安裝在與 SAP 資料來源相同的環境中。
SAP LT Replication Server 中的 BigQuery Connector for SAP 與 BigQuery 之間的連線,是由 Cloud Interconnect 連線或 Cloud VPN 連線提供。
資料流程的詳細架構檢視畫面
下圖顯示 BigQuery Connector for SAP 在 SAP LT Replication Server 資料流程中的位置:
以下編號說明對應圖表中的數字:
- 初始化 SAP LT Replication Server 後,當來源資料表中的記錄插入、更新或刪除時,資料庫觸發程序會記錄記錄資料表中的變更。
- SAP LT Replication Server 會使用 RFC 呼叫,持續檢查記錄資料表是否有新項目。
- 如果 SAP LT Replication Server 找到新項目,讀取引擎就會讀取記錄,並呼叫對應和轉換引擎。
- 對應和轉換引擎會呼叫寫入引擎,後者會叫用 BigQuery Connector for SAP。
- BigQuery Connector for SAP 會執行下列動作:
- 將 SAP 資料對應至目標資料表名稱、欄位名稱和 BigQuery 資料類型。
- 視需要建立 BigQuery 資料表。
- 透過 BigQuery 串流 API,將記錄分批傳送至 BigQuery。
- BigQuery 收到資料後,會採取下列動作:
- 執行驗證檢查。
- 將記錄插入目標資料表。
- 將 HTTP 200 (
OK
) 狀態碼傳送回 BigQuery Connector for SAP。
- BigQuery Connector for SAP 會將 HTTP
OK
狀態碼傳回 SAP LT Replication Server,後者會從記錄資料表中刪除複製的項目,並釋放 SAP 來源系統的資源。
後續步驟
如要瞭解如何規劃 BigQuery Connector for SAP 的安裝和設定,請參閱 BigQuery Connector for SAP 規劃指南。