透過 Pub/Sub 遷移至 CDC 複寫

本文說明使用 BigQuery Connector for SAP 時,如何從串流資料複製遷移至透過 Pub/Sub 進行 CDC 複製

如果您是 BigQuery Connector for SAP 的現有使用者,且希望 BigQuery 資料表直接反映來源 SAP 資料表的變更,則可以透過 Pub/Sub 使用 CDC 複製功能。當 SAP 中的資料變更時,BigQuery Connector for SAP 會擷取變更,並透過 Pub/Sub 直接傳送至 BigQuery 資料表,套用變更時不會重複。

事前準備

開始之前,請先瞭解 Pub/Sub 服務及其術語

請確認您或管理員已完成下列必要條件:

更新 BigQuery Connector for SAP

如要透過 Pub/Sub 使用 CDC 複製功能,請將 BigQuery Connector for SAP 更新至 2.9 以上版本。如要瞭解如何更新連接器,請參閱「更新 BigQuery Connector for SAP」。

啟用 Google Cloud API

如要透過 Pub/Sub 進行 CDC 複製,請務必啟用下列 API:

  • Pub/Sub API
  • BigQuery API
  • IAM Service Account Credentials API

如要瞭解如何啟用 API,請參閱「啟用 API」。 Google Cloud

設定驗證方法

如要透過 Pub/Sub 使用 CDC 複寫功能,除了現有的 BigQuery 角色外,您還需要授予用於授權的服務帳戶 Pub/Sub 編輯者角色。請確認服務帳戶具備下列角色:

  • Pub/Sub 編輯者
  • BigQuery 資料編輯者
  • BigQuery 工作使用者

如要瞭解如何授予角色,請參閱「授予單一角色」。

如要瞭解支援的驗證方法和如何設定驗證,請參閱「設定驗證」。

建立無效信件主題

如要處理 BigQuery 訂閱項目無法寫入目標 BigQuery 資料表的訊息,建議您建立無法傳送的訊息主題。這個無法傳送的郵件主題會做為獨立佇列,在所有重試次數用盡後,Pub/Sub 會自動發布無法傳送的郵件。

遷移步驟

請按照下列高階遷移步驟操作:

  1. 停止 SAP LT Replication Server 複製設定
  2. 準備已去重複的 CDC 資料表
  3. 透過 BigQuery Connector for SAP 啟動遷移作業
  4. 設定複製設定
  5. 啟用 SAP LT Replication Server 複製設定
  6. 在 BigQuery 中檢查複製作業

停止 SAP LT Replication Server 複製設定

  1. 在 SAP GUI 中,輸入交易代碼 LTRC

  2. 停止要遷移的 SAP LT Replication Server 複製設定。

準備去重複的 CDC 資料表

在 BigQuery 中,您需要從現有的 BigQuery 暫存資料表建立重複資料刪除的 CDC 資料表。透過 Pub/Sub 使用 CDC 複寫時,這個 CDC 資料表會成為 BigQuery 中 SAP 資料的外部資料表。

如要準備已去重複的 CDC 資料表,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 按一下 [Compose new query] (撰寫新查詢)

  3. 從現有的 BigQuery 中繼資料表建立 CDC 資料表:

    1. 在「Query editor」(查詢編輯器) 文字區塊中,輸入下列查詢,即可複製現有的 BigQuery 中繼資料表結構:

      CREATE TABLE CDC_TABLE LIKE STAGING_TABLE

      更改下列內容:

      • CDC_TABLE:BigQuery CDC 資料表的名稱。
      • STAGING_TABLE:BigQuery 暫存資料表的名稱。
    2. 按一下「執行」

    這個步驟會建立沒有主鍵的 CDC 資料表結構。

  4. 修改 CDC 資料表定義,加入主鍵:

    1. 在「Query editor」(查詢編輯器) 文字區塊中,輸入下列查詢來新增主鍵:

      ALTER TABLE CDC_TABLE ADD PRIMARY KEY(PRIMARY_KEYS) NOT INFORCED

      更改下列內容:

      • CDC_TABLE:CDC 資料表的名稱。
      • PRIMARY_KEYS:以半形逗號分隔的主鍵清單。 您可以從來源 SAP 資料表擷取主鍵清單。
    2. 按一下「執行」

  5. 將 CDC 資料表中的重複資料刪除:

    1. 在「Query editor」(查詢編輯器) 文字區塊中,輸入下列查詢來重複資料刪除 CDC 資料表:

      INSERT INTO CDC_TABLE (COLUMN_NAMES )
      SELECT COLUMN_NAMES FROM STAGING_TABLE WHERE is_deleted = false QUALIFY ROW_NUMBER() OVER( PARTITION BY PRIMARY_KEYS ORDER BY recordstamp DESC ) = 1

      更改下列內容:

      • CDC_TABLE:CDC 資料表的名稱。
      • COLUMN_NAMES:以逗號分隔的資料欄名稱清單。您可以從 SAP 來源系統擷取資料欄名稱清單。 或者,您也可以使用星號 (*) 選取所有資料欄。
      • PRIMARY_KEYS:CDC 資料表的主鍵。
      • STAGING_TABLE:暫存資料表的名稱。
    2. 按一下「執行」

或者,您也可以在 BigQuery Studio 中使用「複製」選項,複製來源暫存資料表結構並建立 CDC 資料表。

透過 BigQuery Connector for SAP 啟動遷移作業

  1. 在 SAP GUI 中,輸入 /GOOG/SLT_SETTINGS 交易,並在前面加上 /n
    /n/GOOG/SLT_SETTINGS
  2. 在「Google Cloud Partner」欄位的下拉式選單中,選取「BigQuery」
  3. /GOOG/SLT_SETTINGS交易的啟動畫面中,從「設定表格」下拉式選單選取「大量轉移」
  4. 在「大量移轉金鑰」欄位中,指定要移轉的 SAP LT 複寫伺服器複寫設定的大量移轉 ID。
  5. 按一下「執行」圖示。
  6. 在「BigQuery 設定維護 - 大量轉移」畫面中,按一下「遷移」
  7. 在遷移確認對話方塊中,按一下「是」

設定複製設定

  1. 在 SAP GUI 中,輸入 /GOOG/SLT_SETTINGS 交易,並在前面加上 /n
    /n/GOOG/SLT_SETTINGS
  2. 在「Google Cloud Partner」(Google Cloud 合作夥伴) 欄位的下拉式選單中,選取「BigQuery CDC via Pub/Sub」(透過 Pub/Sub 進行 BigQuery CDC)
  3. /GOOG/SLT_SETTINGS交易的啟動畫面中,從「設定表格」下拉式選單選取「大量轉移」
  4. 在「Mass Transfer Key」欄位中,指定您在「透過 BigQuery Connector for SAP 啟動遷移作業」一節中遷移的 SAP LT Replication Server 複製設定大量移轉 ID。
  5. 按一下「執行」圖示。系統會顯示「BigQuery 設定維護 - 大量移轉」畫面。
  6. 確認畫面顯示已遷移的 SAP LT Replication Server 複製設定。
  7. 如要設定 SAP LT Replication Server 複製作業,請指定下列表格屬性:

    1. 在「External Table Name」(外部資料表名稱) 欄位中,輸入您在先前步驟「準備已去重複的 CDC 資料表」中建立的 CDC 資料表名稱。

    2. 如要透過 Pub/Sub 啟用 CDC 複製到 BigQuery,請選取「Repl CPS」核取方塊。

    3. 在「Pub/Sub Schema」(Pub/Sub 結構定義) 欄位中,輸入 Pub/Sub 結構定義的名稱。BigQuery Connector for SAP 會自動建立或更新現有的 Avro 結構定義,以符合 SAP 資料表定義。

    4. 在「Pub/Sub Topic」(Pub/Sub 主題) 欄位中,輸入要發布訊息的 Pub/Sub 主題名稱。BigQuery Connector for SAP 會自動建立主題。

    5. 在「Pub/Sub Subscription」(Pub/Sub 訂閱項目) 欄位中,輸入 BigQuery 訂閱項目的名稱,該訂閱項目會取用 Pub/Sub 主題中的訊息,並寫入 BigQuery。BigQuery Connector for SAP 會自動建立訂閱項目,並連結至上一個步驟中指定的主題。

    6. 在「Dead Letter Queue」(無法傳送的訊息佇列) 欄位中,輸入 Pub/Sub 無法傳送的訊息主題名稱。這個無效信件主題會接收 Pub/Sub 無法透過 BigQuery 訂閱項目寫入 BigQuery 的訊息。

    7. 如要為資料表啟用變更資料擷取 (CDC) 功能,請選取「Act. CDC」(啟用 CDC) 核取方塊。

    8. 如要最佳化初始載入的效能,請勾選「Cache Val」(快取驗證) 核取方塊。

      選取這個欄位後,連接器就能以最高效能傳輸大量資料。系統會間隔執行管道驗證,並快取結果。 Google Cloud 這個連接器可快速轉換資料,並直接將資料傳送至 Pub/Sub。詳情請參閱「快取驗證」。

啟用 SAP LT Replication Server 複製設定

  1. 在 SAP GUI 中,輸入交易代碼 LTRC

  2. 啟用設定。

    啟用設定會建立所有必要的 Pub/Sub 相關資源,並啟動複製作業。設定的 CDC 資料表會反映所有新的未處理變更。

在 BigQuery 中檢查複製作業

在 BigQuery 中,確認 CDC 資料表中的值與來源 SAP 資料表中的值相同。如要進一步瞭解如何執行這項操作,請參閱「驗證複製到 BigQuery 的資料」。

疑難排解

如要瞭解如何診斷及解決遷移複寫作業時可能遇到的問題,請參閱 BigQuery Connector for SAP 疑難排解指南

取得支援

如需協助解決遷移步驟的問題,請收集所有可用的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。如要瞭解如何與 Customer Care 聯絡,請參閱「取得 SAP on Google Cloud支援服務」。