適用於 SAP 的 BigQuery 連接器操作指南

本指南適用於 SAP LT Replication Server 管理員、SAP 資料工程師或其他人員,說明如何對 BigQuery Connector for SAP 的最新版本 2.9 執行作業工作,例如調整效能和更新版本。

調整複製效能

複製效能可能會受到多種因素影響。適用的具體因素可能因安裝位置而異,且會隨時間改變。

以下各節將提供指引,說明如何調整一些較常見的因素,這些因素可能會影響效能。

如要進一步瞭解 BigQuery Connector for SAP 的複製效能,請參閱「效能規劃」。

設定資料表的效能選項

在 SAP LT Replication Server 中,您可以為每個資料表指定會影響效能的複製選項。

特別是大型資料表的複製作業,由於需要更多時間和資源,因此指定範圍並增加可用於資料表的平行複製作業數量上限,有助於提升複製效能。

常見的龐大資料表包括 MSEGACDOCAMATDOC 等。

為大型資料表指定平行複製工作時,您需要平衡允許任何指定資料表的平行工作數量,以及大量轉移設定中允許的平行工作總數。貴機構也可能限制您為特定伺服器指定的並行複製工作數量。

如要設定資料表的效能選項,請按照下列步驟操作:

  1. 在 SAP GUI 中,輸入 SAP 交易 LTRS

  2. 在「進階複製設定」畫面中,指定資料表的大量轉移設定 ID。

  3. 在「Advanced Replication Settings」(進階複製設定) 資料夾階層中,按一下「Performance Options」(效能選項) 資料夾,即可顯示已定義效能選項的表格。

  4. 如果沒有看到所需表格,請在「Performance Options」資料夾上按一下滑鼠右鍵,然後選取「Add Table」

  5. 指定資料表的名稱。

  6. 視需要指定下列選項:

    • 在「General Performance Options」(一般效能選項) 下方:
      • 平行工作數,設定可供表格使用的平行複製工作數上限。
      • 序號,可優先複製這個資料表,而非其他資料表。
    • 在「Initial Load Options」(初始載入選項) 下方:
      • 如果表格不大,請在「讀取類型」中選取「讀取類型 1 範圍計算」。詳情請參閱「Performance and the LTRS Advanced Replication Settings」。
      • 在「封包大小」中,指定傳送至 SAP LT Replication Server 的記錄部分大小 (以位元組為單位)。
      • 如果選取的讀取類型使用範圍,請定義適當的範圍。
    • 在「複製選項」下方:
      • 針對「Ranges for Logging Table」(記錄資料表範圍),請指定「No Ranges」(無範圍),這是最可靠的選項。
      • 如果選取「Specify Ranges for Manually」,請定義適當的範圍。
  7. 按一下 [儲存]

基準效能基準

為協助您評估複寫效能,本節提供在 Google Cloud 測試系統中觀察到的基準效能數字,包括透過 Pub/Sub 進行 CDC 複寫串流資料複寫

由於影響成效的因素眾多,您的成效數據可能會有所不同。

舉例來說,如果 SAP 系統並非在 Google Cloud上執行,由於網路延遲和存取權杖相關的額外負擔等因素,您的負載和複製率可能會低於基準率。如果來源資料表中的資料欄較少,或您在獨立架構的專屬伺服器上安裝 SAP LT Replication Server,速度可能會更快,因為 SAP LT Replication Server 不必與來源系統爭奪資源。

透過 Pub/Sub 進行 CDC 複製:觀察到的基準效能數據

如果是透過 Pub/Sub 進行 CDC 複製,下列效能數字代表 Google Cloud 在測試期間觀察到的各來源系統類型基準效能。在每個測試系統中,SAP LT 複寫伺服器都安裝在 Compute Engine VM 的內嵌架構中,位於 SAP 來源系統上。SAP 來源系統與目標 BigQuery 資料集位於 Google Cloud 相同 Google Cloud 區域。

如要瞭解測試系統的設定,請參閱「基準效能測試系統設定」。

如要查看成效數字,請按一下來源系統類型:

S/4HANA

  • 資料表:ACDOCA
    • 3.43 億筆記錄
    • 477 欄
  • 初始載入
    • 載入速率:平均每小時 2.8 億筆記錄
    • 負荷時間:平均 73.5 分鐘
  • 複製
    • 來源資料表變更率:平均每小時 4 千萬筆記錄
    • 複製速率上限:平均每小時 4 千萬筆記錄

ECC

  • 資料表:MSEG
    • 3 億筆記錄
    • 188 欄
  • 初始載入
    • 載入速率:平均每小時 3.08 億筆記錄
    • 載入時間:平均 58 分鐘
  • 複製
    • 來源資料表變更率:平均每小時 4 千萬筆記錄
    • 最高複製率:平均每小時 5,520 萬筆記錄

上述效能數據是測試人員觀察到的基準。Google Cloud

在具有下列屬性的測試系統中,觀察到的效能較佳:

  • SAP LT Replication Server 安裝在獨立架構的專屬 VM 上。
    • 對於 S/4HANA 系統,我們發現獨立架構的初始載入速度比內嵌架構快約 42%,這是因為 SAP LT 複製伺服器程序可獨立擴充。
    • 對於 ECC 系統,我們發現獨立式架構的初始載入速度比內嵌式架構快約 10%,這是因為 SAP LT 複製伺服器程序可獨立擴充。
  • 來源資料表的欄數較少。
  • 記錄的整體位元組大小較小。

如要瞭解可修改哪些系統屬性來提升效能,請參閱:

串流資料複製:觀察到的基準效能數字

如果是串流資料複製,下列成效數字代表測試期間, Google Cloud 針對各來源系統類型觀察到的基準成效。在每個測試系統中,SAP LT 複寫伺服器都安裝在 Compute Engine VM 的內嵌架構中,位於 SAP 來源系統上。SAP 來源系統與目標 BigQuery 資料集位於 Google Cloud 相同 Google Cloud 區域。

如要瞭解測試系統的設定,請參閱「基準效能測試系統設定」。

如要查看成效數字,請按一下來源系統類型:

S/4HANA

  • 資料表:ACDOCA
    • 3.43 億筆記錄
    • 477 欄
  • 初始載入
    • 載入速率:平均每小時 3.5 億筆記錄
    • 載入時間:平均 59 分鐘
  • 複製
    • 來源資料表變更率:平均每小時 5 千萬筆記錄
    • 複製速率上限:平均每小時 5,000 萬筆記錄

ECC

  • 資料表:MSEG
    • 2.03 億筆記錄
    • 188 欄
  • 初始載入
    • 載入速率:平均每小時 3.85 億筆記錄
    • 負荷時間:平均 32 分鐘
  • 複製
    • 來源資料表變更率:平均每小時 5 千萬筆記錄
    • 最高複製率:平均每小時 6,900 萬筆記錄

上述效能數據是測試人員觀察到的基準。Google Cloud

在具有下列屬性的測試系統中,觀察到的效能較佳:

  • SAP LT Replication Server 安裝在獨立架構的專屬 VM 上。
    • 對於 S/4HANA 系統,我們發現獨立架構的初始載入速度比內嵌架構快約 42%,這是因為 SAP LT 複製伺服器程序可獨立擴充。
    • 對於 ECC 系統,我們發現獨立式架構的初始載入速度比內嵌式架構快約 10%,這是因為 SAP LT 複製伺服器程序可獨立擴充。
  • 來源資料表的欄數較少。
  • 記錄的整體位元組大小較小。

如要瞭解可修改哪些系統屬性來提升效能,請參閱:

基準效能測試系統設定

本節所述的測試系統產生了基準效能數字,列於前幾節的「基準效能基準測試」。

測試系統 (包括 SAP 來源系統、SAP LT Replication Server 和 BigQuery 資料集) 全都執行於相同 Google Cloud 區域的 Compute Engine VM。

在每個系統中,伺服器和工作負載的設計都是為了模擬較重的工作負載和較高的複製量,這在許多實際安裝作業中很常見。

如要查看測試系統屬性,請按一下來源系統類型:

S/4HANA

  • SAP LT Replication Server 安裝架構
    • 嵌入式架構
  • 來源系統伺服器:
    • 兩部應用程式伺服器,各使用以 N2 為基礎的 Compute Engine 自訂機器類型,規格如下:
      • vCPU 數量:60
      • 記憶體:324 GB
      • CPU 平台:Intel Cascade Lake
    • 一個 m1-ultramem-80 Compute Engine VM 上的 SAP HANA 伺服器,規格如下:
      • vCPU:80
      • 記憶體:1,900 GB
      • CPU 平台:Intel Broadwell
  • 軟體版本:
    • S/4HANA 1909
    • SAP LT Replication Server:S/4CORE 104 SP00
  • 表格大小:
    • 表格名稱:ACDOCA,總帳日記帳分錄項目資料
    • 記錄數:3.43 億
    • 欄數:477
  • 每個應用程式伺服器上的工作程序:
    • 60 個對話程序
    • 220 個背景程序
  • 在 SAP LT Replication Server 中載入設定:
    • 工作:99
    • 讀取類型:1 個範圍
    • 計算方式:自動範圍
  • 複製作業設定:
    • 工作:99
    • 使用「鍵」欄位計算記錄資料表的範圍
    • 128 個範圍

ECC

  • SAP LT Replication Server 安裝架構
    • 嵌入式架構
  • 來源系統伺服器:
    • 兩部應用程式伺服器,各自分別位於 n2-highmem-48 Compute Engine VM 上,規格如下:
      • vCPU 數量:60
      • 記憶體:348 GB
      • CPU 平台:Intel Cascade Lake
  • 軟體版本:
    • SAP NetWeaver:7.0 EHP2
    • SAP LT Replication Server:DMIS 2011_1_700 SP17
  • 表格大小:
    • 表格:MSEG、材料庫存管理文件
    • 記錄數:2.03 億
    • 欄數:188
  • 每個應用程式伺服器上的工作程序:
    • 60 個對話程序
    • 100 個背景程序
  • 在 SAP LT Replication Server 中載入設定:
    • 工作:99
    • 讀取類型:5 寄件者
    • 佇列:手動範圍
  • 複製作業設定:
    • 工作:99
    • 記錄表格的範圍:使用索引鍵欄位計算範圍
    • 範圍數量:128

動態區塊大小

如果因為區塊的位元組大小超過 BigQuery 接受的 HTTP 要求位元組大小上限而發生錯誤,請縮減區塊大小,手動減少位元組大小。如果區塊的位元組大小超過 BigQuery 接受的 HTTP 要求位元組大小上限,動態區塊大小功能會自動縮減區塊大小,然後重試將資料複製到 BigQuery。動態區塊大小可協助您避免因超出要求位元組大小而導致的大部分複製失敗。只有在區塊大小達到 1,但位元組大小仍超過每個 HTTP 要求中位元組數量的 BigQuery 限制時,您才可能會收到錯誤。

您可以使用交易 /GOOG/SLT_SETTINGS,在資料表的大量轉移設定中啟用動態區塊大小。 動態分塊大小為選用設定。如要瞭解如何啟用動態區塊大小,請參閱:

啟用動態區塊大小後,BigQuery Connector for SAP 的區塊大小上限會與基礎服務配額限制一致:

  • 透過 Pub/Sub 進行 CDC 複製:Pub/Sub 配額限制,也就是 1,000 筆記錄。
  • 串流資料複製:BigQuery 配額限制,即 50,000 筆記錄。

如要進一步瞭解區塊大小,請參閱「部分大小和區塊大小」。

動態區塊大小的運作方式

如果使用動態區塊大小,且初始區塊大小的 HTTP 要求超過 BigQuery 的位元組大小限制,SAP 適用的 BigQuery 連接器就會縮減區塊大小,然後重試傳送資料。SAP 專用 BigQuery 連接器會持續縮減區塊大小,並重試將資料傳送至 BigQuery,直到特定區塊的資料傳輸成功,或區塊大小達到 1 為止。

然後,系統會將資料傳輸成功的最終縮減區塊大小,做為該部分所有剩餘區塊的區塊大小。您可以在 SAP LT 複製伺服器應用程式記錄中,找到每個部分成功縮減的最終區塊大小,並以資訊訊息的形式呈現:

Dynamic chunking triggered. Chunk size reduced from INITIAL_CHUNK_SIZE_VALUE to FINAL_REDUCED_CHUNK_SIZE_VALUE

對於後續部分和任何後續複製作業,BigQuery Connector for SAP 會開始以交易 /GOOG/SLT_SETTINGS 中設定的區塊大小,將資料傳送至 BigQuery,並在觸發動態區塊時持續縮減區塊大小。

根據預設,每次重試後,區塊大小會減少 50%。如要以較低或較高的百分比縮減區塊大小,請修改進階設定參數。

讓我們透過範例瞭解,為資料表啟用動態區塊大小時,複製程序如何決定區塊大小。在本範例中,我們使用透過 Pub/Sub 進行的 CDC 複製作業。如果 SAP LT Replication Server 的部分大小大於 BigQuery Connector for SAP 的區塊大小,且交易 /GOOG/SLT_SETTINGS 中定義的區塊大小為 1,000 筆記錄,BigQuery Connector for SAP 會將部分資料複製到 BigQuery,如下所示:

  1. 如果含有 2,000 筆記錄的部分開始複製,第一個區塊的區塊大小為 1,000 筆記錄,但如果 HTTP 要求的位元組大小超過 10 MB,BigQuery Connector for SAP 會將區塊大小減少 50%,新的區塊大小會變成 500 筆記錄。

  2. BigQuery Connector for SAP 會重試傳送 500 筆記錄的區塊大小,但如果 HTTP 要求的位元組大小仍大於 10 MB,BigQuery Connector for SAP 會進一步將區塊大小減少 50%,新的區塊大小會變成 250 筆記錄。

  3. BigQuery Connector for SAP 會重試傳送 250 筆記錄的區塊大小,現在如果這個區塊的 HTTP 要求位元組大小小於 10 MB,複製作業就會成功,資料也會插入 BigQuery。

  4. 只要每個 HTTP 要求的位元組大小小於 10 MB,後續所有區塊的大小都會變成 250 筆記錄。如果後續任何區塊的 HTTP 要求位元組大小超過 10 MB,BigQuery Connector for SAP 會再次縮減區塊大小,並重試將資料傳送至 BigQuery,直到特定區塊的資料傳輸成功為止。縮減的區塊大小僅適用於目前複製作業的當前部分。

使用動態區塊大小的效能

動態區塊大小可能會影響複製到 BigQuery 的效能。BigQuery Connector for SAP 會針對每個區塊計算區塊中的記錄數,並檢查 HTTP 要求的位元組大小。如果位元組大小超過 10 MB,SAP 專用的 BigQuery 連接器會縮減區塊大小,並重試將資料傳送至 BigQuery,這會增加整體複製時間。

只有在特定情況下才使用動態區塊大小,即使為某些資料記錄設定理想的區塊大小後,要求大小仍可能超出 BigQuery 的 HTTP 要求限制,且您不想收到區塊大小錯誤。例如:

  • 來源資料表中的欄位資料稀疏程度差異很大,也就是說,有些記錄維護的欄位較少,有些記錄維護的欄位較多。
  • 包含長文字欄位的來源資料表,例如 EDID4-SDATAVARI-CLUSTIDREPOSRC-DATA

您也可以在測試階段使用動態區塊大小,找出適合表格的區塊大小,並在正式版 SAP 系統中定義。

如要進一步瞭解如何設定區塊大小,請參閱:

快取驗證

快取驗證功能僅適用於透過 Pub/Sub 進行的 CDC 複製。

快取驗證功能主要用於初始資料載入期間,可在首次成功檢查後快取管道驗證結果,大幅提升從 SAP 到 Google Cloud 的資料移轉呼叫效能。這樣一來,後續資料傳輸作業就不必重複驗證,可節省時間和資源。

建議您採用這項設定,尤其是在初始資料載入階段。如要啟用這項功能,請在 /GOOG/SLT_SETTINGS 交易中選取「Cache Val (Cache Validations)」核取方塊。如要瞭解如何啟用這項功能,請參閱「指定資料表建立和其他一般屬性」。

啟用這項設定後,BigQuery Connector for SAP 會先執行初始檢查,確認 Google Cloud 管道 設定正確,且與 SAP 中定義的資料表結構定義一致。 這個管道包含 Pub/Sub 主題、主題的結構定義、BigQuery 訂閱項目和目標 BigQuery 資料表。完成這項初始驗證並建立管道後,結果會儲存在 SAP 共用記憶體中。之後的所有資料傳輸呼叫都會略過這個驗證步驟,減少多餘的檢查作業,進而提升效能。

清除快取驗證

啟用「快取驗證」功能並更新 SAP 資料表定義後,系統只會在現有快取驗證過期後,更新結構性變更。在這種情況下,您可以手動清除快取的驗證結果。如要清除快取驗證結果,請執行交易 SE38,然後執行程式 /GOOG/R_GCP_CLEAR_CACHE 或交易 /GOOG/BQPS_CLR_CACHE

清除 Google Cloud 構件

在開發環境中,如要移除與大量轉移 ID 連結的 Google Cloud 資源,可以使用 /GOOG/R_CLEANUP_CPS_ARTIFACTS。這個程式會刪除相關聯的 Pub/Sub 主題、Pub/Sub 結構定義和 BigQuery 訂閱項目。

將大量轉移設定傳輸至正式版

如要將大量轉移設定傳輸至正式環境,請先從開發系統匯出設定,然後匯入正式環境系統。

您可以選擇將大量轉移設定的三個不同部分匯入正式環境:

  • 進階複製設定,可透過 LTRS 交易存取。
  • /GOOG/CLIENT_KEY 表格中的用戶端金鑰設定,可使用 SM30 交易存取。
  • BigQuery Connector for SAP 包含大量移轉設定,可使用 /GOOG/SLT_SETTINGS 交易存取。

從開發系統匯出大量轉移設定

在 SAP LT Replication Server 開發系統中,匯出大量轉移設定的每個部分:

  1. 匯出進階複製設定:

    1. 執行 LTRS 交易。
    2. 選取要移轉至正式環境的大量移轉記錄。
    3. 在「檔案」下拉式選單中,選取「匯出所有設定」
    4. 在「匯出設定」對話方塊中,選取目的地並按一下「儲存」。 設定會以 CSV 格式儲存到本機工作站的壓縮檔中。
  2. 匯出 BigQuery Connector for SAP 大量移轉設定:

    1. 執行 /GOOG/SLT_SETTINGS 交易:

      /n/GOOG/SLT_SETTINGS
    2. 在「設定資料表」欄位中,選取「大量轉移」

    3. 選取要移轉至正式環境的大量移轉記錄。

    4. 按一下「Transport Mass Transfer」(大量傳輸)。

    5. 在「Prompt for Workbench request」(提示 Workbench 要求) 中,輸入傳輸要求編號,然後按一下「繼續」圖示。針對每個選取的批次轉移記錄,系統會將下列自訂設定表中的設定納入傳輸作業:

      • /GOOG/BQ_MASTR
      • /GOOG/BQ_TABLE
      • /GOOG/BQ_FIELD

    大量轉移設定會儲存至傳輸要求。

  3. 手動將 /GOOG/CLIENT_KEY 表格的內容納入傳輸要求,即可匯出用戶端金鑰設定。

  4. 將檔案儲存至本機工作站。

將大量轉移設定匯入正式系統

在 SAP LT Replication Server 生產系統中,匯入大量轉移設定的每個部分:

  1. 為大量轉移設定建立 SAP LT Replication Server 複寫設定。

  2. 匯入進階複製設定:

    1. 執行 LTRS 交易。
    2. 選取您在第一個步驟中建立的大量轉移作業。
    3. 在「檔案」下拉式選單中,選取「匯入所有設定」
    4. 在「選擇檔案」對話方塊中,選取本機工作站的壓縮檔,然後按一下「開啟」。 系統會將這些設定匯入為大量轉移作業的設定。
  3. 匯入包含大量轉移設定的傳輸要求。

  4. 執行 SM30 交易。

  5. 視需要更新實際工作環境的用戶端金鑰設定。

  6. 執行 /GOOG/SLT_SETTINGS 交易:

    /n/GOOG/SLT_SETTINGS
  7. 確認「大量轉移」畫面中顯示正確的大量轉移作業。

  8. 在「大量轉移 ID」欄中,將開發系統中的大量轉移 ID,換成您在第一個步驟中建立的複製設定大量轉移 ID。

  9. 在後續的「表格」和「欄位」設定畫面中,視需要更新表格和欄位對應的其他值,以符合正式環境需求。

  10. 啟動初始載入或複製作業,測試設定。

更新 BigQuery Connector for SAP

Google Cloud 以 SAP 傳輸的形式,提供 BigQuery Connector for SAP 的新版本。

SAP 管理員可以按照下列步驟更新 BigQuery Connector for SAP:

  1. 在 SAP LT Replication Server 中停用設定。
  2. 匯入新的 SAP 傳輸要求。
  3. 確認匯入成功並啟用物件後,請在 SAP LT Replication Server 中啟用設定。

更新 gcloud CLI

您必須在 SAP LT Replication Server 主機上,將 Google Cloud CLI 維持在最新版本。

如要進一步瞭解如何管理 gcloud CLI,請參閱管理 gcloud CLI 元件

監控

您可以監控從 SAP 資料來源到目標 BigQuery 資料表之間資料路徑的幾個不同點,包括:

  • 基礎架構 - 網路、硬體和作業系統
  • SAP 資料庫層
  • SAP 應用程式層
  • BigQuery Connector for SAP
  • BigQuery
  • Pub/Sub

以下各小節將說明在每個時間點可用的監控選項。

監控基礎架構

在 Google Cloud上,您可以在主機 VM 中安裝作業套件代理程式,進行進階監控和記錄。作業套件代理程式會將資料傳送至 Google Cloud 控制台中的 Cloud Monitoring。

如需詳細資訊,請參閱:

如果系統並非在 Google Cloud上執行,您也可以執行 SAP 交易 (例如交易 ST06) 來取得伺服器資訊。

監控資料庫層

使用標準 SAP 交易代碼監控資料庫健康狀態。

交易代碼 DBACOCKPIT 是最常見的資料庫監控交易。這項交易也會提供詳細記錄,可用於排解錯誤。

如果是 SAP HANA,您可以使用 SAP HANA Studio 執行 SAP HANA 作業。您可以在任何前端機器上安裝 SAP HANA Studio。

排解效能或其他問題時,請檢查來源資料庫中的下列事項:

  • 耗用大量資源的 SQL 陳述式
  • 門鎖
  • 載入記錄
  • 索引
  • 程序

監控應用程式層

由於 BigQuery Connector for SAP 在應用程式層執行,因此您可以使用 SAP 應用程式監控和疑難排解工具,監控及排解 BigQuery Connector for SAP 的問題。

SAP 應用程式監控和疑難排解可進一步分類為下列項目:

  • 標準 SAP 監控和疑難排解
  • 監控及排解 BigQuery Connector for SAP 問題

如果是較大的環境,可以使用 SAP Solution Manager 做為中央監控工具。

您可以使用下列清單中的 SAP 交易代碼,監控及診斷個別 SAP 應用程式系統的問題:

  • SLT 設定狀態:LTRC
  • SLT 錯誤和記錄檔:LTROSLG1
  • 網際網路通訊管理員 (HTTP 和 HTTPS 呼叫):SMICM
  • 安全性與憑證:STRUST
  • SAP 傳輸:STMS
  • RFC 連線:SM59
  • OS 指令:SM69
  • 包裹檢查:SE80
  • 授權檢查:SU53
  • 背景工作:SM37
  • 系統記錄:SM21

監控 Pub/Sub

使用 Cloud Monitoring 查看 Pub/Sub 指標,並建立圖表和快訊。每個指標都會與 pubsub_topicpubsub_subscription 資源類型建立關聯,並包含一組標籤,提供篩選和分析用的額外維度。

您仍可使用監控查詢語言 (MQL) 進行現有設定,但建議使用 Prometheus 查詢語言 (PromQL) 建立新查詢。PromQL 提供強大且彈性的方式來分析 Pub/Sub 資料,符合可觀測性的產業標準。

如要進一步瞭解 Monitoring,請參閱 Cloud Monitoring 說明文件

監控無效信件主題,瞭解失敗的訊息

Pub/Sub 中的無效信件主題是專用主題,如果訂閱項目在設定的傳送嘗試次數後仍無法成功處理訊息,就會將訊息傳送至這個主題。如要找出並調查失敗的訊息、避免資料遺失,以及瞭解訊息處理的健康狀態,您需要監控無效信件主題。

如要有效監控無效信件主題,通常會為大量轉移設定中定義的無效信件主題設定訂閱項目。然後使用相同的 pubsub_subscription 資源類型及其相關聯的指標,監控這個特定訂閱項目。

無效信件主題的主要指標

如要瞭解如何查詢死信主題訂閱項的指標,請參閱下列 PromQL 範例:

  • 轉送至無效信件主題的訊息數:這是瞭解訊息是否傳送失敗的最重要指標。
    
    sum(rate(pubsub_googleapis_com:subscription_dead_letter_message_count{subscription_id="DEAD_LETTER_TOPIC_SUBSCRIPTION_ID"}[5m]))
    
  • 死信主題中的未確認訊息數量:這表示訊息位於 DLQ 中,等待處理或審查。如果這個數字持續偏高或不斷增加,表示有問題需要處理。
    
    pubsub_googleapis_com:subscription_num_unacked_messages{subscription_id="DEAD_LETTER_TOPIC_SUBSCRIPTION_ID"}
    
  • dead-letter 主題中最舊的未確認訊息存在時間:如果這個值不斷上升,表示待處理的失敗訊息越來越多,但未獲得處理。
    
    pubsub_googleapis_com:subscription_oldest_unacked_message_age{subscription_id="DEAD_LETTER_TOPIC_SUBSCRIPTION_ID"}
    
  • 無效信件主題中的待處理項目大小 (位元組):可深入瞭解無效信件主題中的資料量。
    
    pubsub_googleapis_com:subscription_backlog_bytes{subscription_id="DEAD_LETTER_TOPIC_SUBSCRIPTION_ID"}
    

監控無效信件主題的最佳做法

如要監控無法傳送的訊息主題,請套用下列最佳做法:

  • 建立專屬快訊:針對無效信件主題訂閱項目中pubsub_googleapis_com:subscription_num_unacked_messagespubsub_googleapis_com:subscription_oldest_unacked_message_age的增加情形設定快訊。

  • 死信主題資訊主頁:在 Monitoring 中建立專屬資訊主頁,以便在專案中以視覺化方式呈現死信主題的健康狀態。

  • 人工介入:死信主題中的訊息通常需要人工檢查和介入,才能瞭解失敗的根本原因,例如資料格式錯誤、應用程式錯誤和外部服務中斷。

  • 自動重新處理 (請謹慎使用):針對某些可預測的失敗情形,您可以實作自動化程序 (例如 Cloud Run 函式、Dataflow 工作),從無法傳送訊息的主題取用訊息、嘗試修正訊息,然後重新發布至原始主題。請極度謹慎地處理這項作業,以免發生無限迴圈。

監控 BigQuery

使用 Monitoring 查看 BigQuery 指標,並建立圖表和快訊。每個指標都有資源類型 (bigquery_datasetbigquery_projectglobal),以及一組標籤。

使用資源類型和標籤,在 Monitoring Query Language (MQL) 中建構查詢。

您可以使用標籤將各項指標分組或篩選。

如要進一步瞭解 Monitoring,請參閱 Cloud Monitoring 說明文件

查看連接器設定

如要查看 BigQuery Connector for SAP 的大量轉移設定,請在 SAP GUI 中執行交易 /GOOG/SLT_SETT_DISP

查看連接器版本

如要查看系統上安裝的 BigQuery Connector for SAP 版本,請在 SAP GUI 中執行交易 /GOOG/BQC_VERSION

連接器公用程式

BigQuery Connector for SAP 提供下列公用程式,可透過資料準備、驗證、轉換和載入模擬等功能,簡化資料作業並提升效能:

公用程式 串流資料複製 透過 Pub/Sub 複製 CDC
「建立表格」工具 支援 不支援
大量欄位轉換工具 支援 不支援
負載模擬工具 支援 不支援
複製驗證工具 支援 不支援
Stream Records 工具 不支援 支援

「建立表格」工具

透過 Pub/Sub 進行 CDC 複製時,不支援使用這項工具。

如果 SAP 中的來源資料表為空白,SAP SLT 會禁止在 BigQuery 中建立目標資料表。如要為空白來源資料表在 BigQuery 資料集中建立目標資料表,可以使用「建立資料表」工具。

如要執行「建立資料表」工具,請按照下列步驟操作:

  1. 在 SAP GUI 中,執行交易 /GOOG/CREATE_BQ_TAB,後面加上 /n

    /n/GOOG/CREATE_BQ_TAB
  2. 在「Create target tables from BQ settings」(根據 BigQuery 設定建立目標資料表) 畫面上,為下列欄位提供值:

    • 大量移轉金鑰:包含 SAP 資料表的大量移轉金鑰。
    • SAP 資料表名稱:您需要建立的 SAP 資料表名稱。
  3. 按一下「執行」圖示。目標資料表會在 BigQuery 資料集中建立。

  4. (選用) 在 BigQuery 資料集中確認資料表是否已使用正確的結構定義建立。

大量欄位轉換工具

透過 Pub/Sub 進行 CDC 複製時,不支援使用這項工具。

雖然 BigQuery Connector for SAP 會自動為大多數欄位建議 BigQuery 資料類型,但您可能需要手動對應欄位。您不必為每個欄位手動指派資料類型,而是可以使用大量欄位轉換工具,在/GOOG/SLT_SETTINGS交易的欄位對應畫面中,為所有欄位對應資料類型指派作業。大量欄位轉換工具會將資料表的所有欄位對應轉換為 BigQuery 的 STRING 類型。

如果資料表已在 LTRC 交易中複製或新增以進行初始載入,請勿對這類資料表使用大量欄位轉換工具,否則可能會導致結構定義不符的問題。您只能對尚未開始初始載入或複製的 SAP 資料表使用這項工具。

如要執行大量欄位轉換工具,請按照下列步驟操作:

  1. 在 SAP GUI 中,執行交易 /GOOG/MASS_CNVT_FMAP,並加上前置字元 /n

    /n/GOOG/MASS_CNVT_FMAP
  2. 在「Mass field conversion」(大量欄位轉換) 畫面中,為下列欄位提供值:

    • 大量移轉金鑰:包含 SAP 資料表的大量移轉金鑰。
    • SAP 資料表名稱:您需要將所有欄位對應轉換為 STRING 類型的 SAP 資料表名稱。
  3. 按一下「執行」圖示。所選資料表的所有欄位對應都會轉換為 STRING 類型。

負載模擬工具

透過 Pub/Sub 進行 CDC 複製時,不支援使用這項工具。

本節將概略介紹負載模擬工具,以及這項工具的用途。

負載模擬工具是 BigQuery Connector for SAP 的支援工具,可讓您模擬將 SAP 資料複製到 BigQuery 的作業。這項工具是傳輸的一部分,Google Cloud 可為 BigQuery Connector for SAP 提供服務。您可以使用「負載模擬」工具,直接叫用 BigQuery Connector for SAP 的企業附加元件 (BAdI),將來源 SAP 資料複製到 BigQuery。由於負載模擬工具不會使用基礎 SLT 架構,因此 SLT 觸發程序不會受到影響。請勿在正式環境中使用「負載模擬」工具複製資料。

載入模擬工具會提供報表供您分析,以評估複製效能、找出潛在問題、瞭解問題的根本原因,並在實際使用 BigQuery Connector for SAP 將 SAP 資料複製到 BigQuery 之前解決問題。

以下是一些常見用途,您可以使用負載模擬工具:

  • 重現並排解任何網路連線、授權或驗證問題。
  • 產生 BigQuery API 呼叫的強化記錄,以排解問題。
  • 如需 Cloud Customer Care 的疑難排解協助,請執行負載模擬工具,並將記錄提供給 Customer Care 團隊。
  • 提供複製程序中每個步驟所花費的時間,即可評估成效指標。
  • 如果是內嵌式架構中的 SAP LT Replication Server,請判斷 SAP 表格的最佳區塊大小。

使用範例大量轉移設定,搭配您透過自訂交易 /GOOG/SLT_SETTINGS 建立的負載模擬工具。請勿使用正式版資料集和 BigQuery 資料表執行「載入模擬」工具。

如果 SAP LT Replication Server 採用內嵌式架構,請使用標準 SAP 資料表 (例如 MARAT001) 執行負載模擬工具。

如果 SAP LT Replication Server 採用獨立架構,請使用 BigQuery Connector for SAP 提供的範例資料表,執行「Load Simulation」/GOOG/TEST_REPL Google Cloud 工具。負載模擬工具不支援從遠端系統讀取來源資料表。

如要進一步瞭解Google Cloud上的 SAP 資料來源架構,請參閱「安裝架構」。

必要條件

執行負載模擬工具前,請確認符合下列必要條件:

如何執行負載模擬工具

如要執行「負載模擬」工具,請按照下列步驟操作:

  1. 在 SAP GUI 中,輸入 /GOOG/LOAD_SIMULATE 交易,並在前面加上 /n

    /n/GOOG/LOAD_SIMULATE
  2. 按一下「執行」圖示。系統會顯示「SLT Load Simulation」(SLT 負載模擬) 畫面。

  3. 在「處理選項」中,確認已選取「執行模擬」選項。

  4. 在「選取選項」部分中,輸入下列規格:

    • 在「Google Cloud Partner」欄位的下拉式選單中,選取「BigQuery」
    • 在「Mass Transfer Key」(大量轉移金鑰) 欄位中,輸入大量轉移設定的大量轉移金鑰。

      使用負載模擬工具的範例大量轉移設定。 請勿使用正式版資料集和 BigQuery 資料表。

    • 在「Table Name」(資料表名稱) 欄位中,輸入您在範例大量轉移設定中提供的來源 SAP 資料表名稱。

    • (選用) 在「Where Condition」(Where 條件) 欄位中,輸入從來源資料表選取資料的條件。

      最多可輸入 255 個半形字元。 舉例來說,如果您為 SAP 表格 MARA 執行負載模擬工具,且需要從特定範圍選取物料號碼,請在「Where Condition」(Where 條件) 中指定類似 MATNR GE '000000000400000001' AND MATNR LE '000000000600000001' 的值。

    • 在「週期數」欄位中,輸入負載模擬工具執行的處理週期數。

      如果您需要比較模擬報表在多個週期中的結果,這項功能就非常實用。這個值必須大於 1。

    • 在「每個週期的記錄數」欄位中,輸入要在每個處理週期傳送至 BigQuery 的記錄數。這個值必須大於 1。

    • 在「Portion size」(部分大小) 欄位中,輸入 SAP LT Replication Server 在每個部分中,傳送至 BigQuery Connector for SAP 的 BAdI 的記錄數,該記錄數不得超過「Records Count per cycle」(每個週期的記錄數)

    • 視情況選取一或多個標記:

      • 確切記錄數:表示在每個處理週期中,系統會將「每個週期的記錄數」欄位中提供的記錄數,完全相同的記錄數傳送至 BigQuery。如果資料表記錄不足,負載模擬工具會複製現有記錄,達到所需數量。系統只會複製記錄,以便將資料插入 BigQuery,不會插入來源資料表。

      • 使用 SLT 目標結構:使用 SLT 記錄資料表的結構取得來源資料表欄位。如未設定這個標記,系統會直接從來源資料表讀取欄位,以產生目標結構。如要進一步瞭解 SAP LT Replication Server 資料流程,請參閱資料流程的詳細架構檢視畫面

      • 詳細記錄:表示系統會為 BigQuery Connector for SAP 中定義的所有方法建立記錄檔記錄。如未設定此旗標,系統只會記錄重要方法。

      • 清除先前的結果:清除先前為相同大量轉移和 SAP 資料表建立的記錄。如未設定旗標,系統會將記錄附加至先前的結果。

  5. 如要執行「負載模擬」工具,請按一下「執行」圖示。

  6. 載入模擬作業完成後,在「Processing Options」部分,選取「Display Report」單選按鈕。

  7. 在「選取選項」部分中,輸入下列規格:

    • 在「Google Cloud Partner」欄位的下拉式選單中,選取「BigQuery」
    • 在「Mass Transfer Key」(大量轉移金鑰) 欄位中,輸入範例大量轉移設定的大量轉移金鑰。
    • 在「Table Name」(資料表名稱) 欄位中,輸入來源 SAP 資料表的名稱。
    • 如要依負載模擬執行日期查看報表,請在「報表日期」欄位中指定日期範圍。
    • 如要查看上次執行的報表和目前的報表,請選取「僅上次執行」旗標。
  8. 如要顯示報表,請按一下「執行」圖示。

下表說明模擬報表顯示的資料欄:

名稱 說明
轉移金鑰 大量移轉設定的大量移轉金鑰。
SAP 資料表 要複製到 BigQuery 的 SAP 資料表名稱。
執行作業開始時間戳記 BigQuery Connector for SAP 方法的執行開始時間。
完成時間戳記 BigQuery Connector for SAP 方法的執行完成時間。
工作編號 每次執行「負載模擬」工具時,系統都會自動產生專屬的工作編號,用於識別每次執行的作業。
週期編號 報表產生時的處理週期序號。模擬輸入中提供的「每個週期的記錄數」會移轉至 BigQuery,每個週期都會移轉。
份量編號 部分序號。系統會根據指定的部分大小,將模擬輸入中提供的「每個週期的記錄數」分成多個部分。系統會針對每個部分呼叫 BigQuery Connector for SAP 的 BAdI。
類別名稱 BigQuery Connector for SAP 方法的類別名稱。
方法名稱 BigQuery Connector for SAP 方法的名稱。BigQuery Connector for SAP 呼叫的方法會依序記錄。如果在模擬輸入中選取「詳細記錄」旗標,系統會記錄所有方法,否則只會記錄重要方法。
依方法叫用 最後一個叫用目前 BigQuery Connector for SAP 方法的方法。
時間長度 執行 BigQuery Connector for SAP 方法所花費的總時間。
建議數量 傳遞至 BigQuery Connector for SAP 方法的記錄數。只有記錄傳遞至的方法才會顯示這項資訊。
URI 方法 HTTP 方法的名稱 (如果 ABAP 方法會發出 BigQuery API 呼叫)。
URI 字串 如果 ABAP 方法發出 BigQuery API 呼叫,則為 HTTP 網址。
權杖來源 Load Simulation 工具使用的驗證權杖來源。只有在 /GOOG/CLIENT_KEY 表格中啟用權杖快取時,這項設定才適用。可能的值如下:
  • A:特定程序的靜態屬性值。
  • M:從多個程序共用的記憶體中取得共用記憶體值。
  • L:具有記憶體鎖定的新值。如有記憶體鎖定,且無法讀取快取權杖,系統就會產生新權杖。
  • N:沒有記憶體鎖定的新值。如果權杖過期或記憶體中找不到權杖,系統就會產生新權杖。
到期時間 驗證權杖的到期時間,
只有在 /GOOG/CLIENT_KEY 資料表中啟用權杖快取時,這項設定才適用。
權杖值 Load Simulation 工具用來存取 BigQuery 的驗證權杖值。
傳回碼 方法執行的回傳碼。可能的值如下:
錯誤訊息文字 錯誤標題 (如有)。
錯誤說明 錯誤的詳細資訊。
酬載大小 傳送至 BigQuery Insert API 的 HTTP 酬載大小。 如果方法執行時發生錯誤,且酬載大小超過 10 MB,您可以調整區塊大小來縮減酬載大小。
資訊文字 BigQuery Connector for SAP 的 BAdI 提出的任何相關資訊訊息。舉例來說,觸發動態分塊時,系統會顯示下列資訊訊息: Dynamic chunking triggered. Chunk size reduced from INITIAL_CHUNK_SIZE_VALUE to FINAL_REDUCED_CHUNK_SIZE_VALUE
狀態 方法執行狀態。如果方法執行失敗,請參閱 BigQuery Connector for SAP 疑難排解指南,解決問題。

排定負載模擬工具

您可以使用程式名稱 /GOOG/R_LOAD_SIMULATION,排定 Load Simulation 工具在 SAP LT Replication Server 上以背景作業的形式自動執行。如需 SAP 提供的排定背景工作相關資訊,請參閱「Scheduling Background Jobs」(排定背景工作)。

複製驗證

使用交易 /GOOG/SLT_SETTINGS 建立目標 BigQuery 表格時,如果選取「額外欄位標記」,系統會在表格結構定義中新增資料欄,用於儲存觸發複製作業的每筆記錄變更類型,以及反映 SAP LT 複製伺服器收到含有記錄部分的資料時間戳記。

您可以使用變更類型和時間戳記,查詢下列類型的記錄數:

  • 初始載入期間載入 BigQuery 資料表的記錄數。
  • 在指定日期複製到 BigQuery 資料表的記錄數。
  • BigQuery 資料表中的不重複記錄總數。

如要取得這些計數,您可以直接在 Google Cloud 控制台中提交 SQL 查詢,查詢 BigQuery 資料表,也可以執行「複寫驗證」工具,產生報表來比較 BigQuery 記錄計數與 SAP LT 複寫伺服器統計資料,或來源資料表的記錄計數。

如要瞭解「額外欄位標記」的總覽資訊,請參閱記錄變更和計數查詢的額外欄位

如要瞭解如何指定額外欄位標記,請參閱「指定資料表建立和其他一般屬性」。

用於記錄計數的 SQL 查詢

在Google Cloud 控制台的 BigQuery「SQL 編輯器」頁面中,您可以執行 SQL 查詢,檢查 BigQuery 資料表中的記錄數。

接著,您可以比較 BigQuery 記錄計數與來源資料表或 SAP LT Replication Server 統計資料中的計數。

查詢以初始載入模式插入的記錄數

如果 BigQuery 資料表結構定義包含選用的 operation_flag 資料欄,以初始載入模式插入資料表中的記錄會包含 L 作業標記。

如要取得 BigQuery 在初始載入期間收到的記錄數,請執行下列查詢:

SELECT COUNT(*)
  FROM
      `PROJECT.DATASET.TABLE`
  WHERE operation_flag = 'L'
查詢以複製模式插入的記錄數

如果 BigQuery 資料表結構定義包含選用的 operation_flag 資料欄,以複製模式插入資料表的記錄會包含下列其中一個作業旗標:

  • I:記錄已插入來源資料表。
  • D:記錄已從來源資料表刪除。
  • U:來源資料表中的記錄已更新。

如要取得 BigQuery 在複製模式下收到的記錄數,請執行下列查詢:

SELECT COUNT(*)
  FROM
      `PROJECT.DATASET.TABLE`
  WHERE operation_flag = 'I' | 'D' | 'U'
查詢 BigQuery 資料表中的記錄總數

如果 BigQuery 資料表結構定義包含選填的 recordstamp 資料欄,插入資料表的每筆記錄的對應 recordstamp 欄位會包含時間戳記,指出 SAP LT 複製伺服器將記錄傳送至 BigQuery 的時間。

如果未啟用 CDC,如要取得 BigQuery 資料表中的記錄總數,並與來源資料表中的記錄總數進行比較,可以使用 recordstampis_deleted 欄位,計算 BigQuery 資料表中未從來源資料表刪除的唯一記錄。

如果您在查詢記錄時,來源資料表正在更新或複製作業正在進行,來源和目標資料表中的記錄數可能不完全相符。

如要取得 BigQuery 目標資料表中不重複記錄的目前計數,請執行下列查詢:

SELECT COUNT(*)
  FROM (
    SELECT
      *,
      ROW_NUMBER() OVER (PARTITION BY KEY_FIELD_1, ..., KEY_FIELD_N ORDER BY recordstamp DESC) row_num
    FROM
      `PROJECT.DATASET.TABLE` )
  WHERE row_num = 1 AND is_deleted = false

啟用 CDC 後,如要取得 BigQuery 目標資料表中不重複記錄的目前計數,請執行下列查詢:

SELECT COUNT(*) FROM `PROJECT.DATASET.TABLE`;

複製驗證工具

透過 Pub/Sub 進行 CDC 複製時,不支援使用這項工具。

本節將概略介紹「複寫驗證」工具,以及這項工具的用途。

複製驗證工具會產生報表,比較 BigQuery 資料表中的記錄計數與 SAP LT 複製伺服器統計資料,以及來源資料表中的記錄計數。如果數量不完全一致,工具會以紅色圓圈標示報表。

如要計算 BigQuery 中的記錄,這項工具會使用前一節「用於計算記錄數的 SQL 查詢」中顯示的 SQL 查詢。

定期執行「複製驗證」工具,確認 SAP LT Replication Server 和 BigQuery Connector for SAP 能如預期將記錄複製到 BigQuery。

如要執行複製驗證工具,請在 SAP GUI 中輸入自訂交易 /GOOG/REPLIC_VALID,並在前面加上 /n。如需逐步操作說明,請參閱「執行複寫驗證工具」。

複製驗證報告

您可以使用「Replication Validation」工具產生下列驗證報表:

  • 初始載入計數:比較 SAP LT Replication Server 在載入模式下傳送的記錄數,以及載入 BigQuery 的記錄數。
  • 複製次數:比較 SAP LT Replication Server 在複製模式下傳送的記錄數,以及在指定日期插入 BigQuery 的記錄數。
  • 目前計數:比較來源資料表中的記錄數,以及 BigQuery 中的不重複記錄數。來源資料表中的目前計數不得顯示大於 32 位元整數上限 (-2,147,483,648 至 2,147,483,647) 的數字。

您可以個別產生每份報告,也可以在執行工具時選取「所有檢查」,一次產生全部三份報告。您可以使用「資料表名稱」欄位,為大量移轉設定中的特定資料表產生複製驗證報表。

顯示複寫驗證報表

產生報表後,請在「Replication Validation」(複寫驗證) 工具介面的「Processing Options」(處理選項) 部分,選取「Display Report」(顯示報表) 單選按鈕,即可顯示報表。

視報表類型而定,複製驗證工具在各份報表中顯示的資訊會略有不同。

所有報表都包含下列類型的資訊:

  • SAP LT Replication Server 統計資料和來源資料表中的來源記錄計數。
  • 目標 BigQuery 資料表中的目標記錄數。
  • 這兩個計數之間的任何差異。計算差異時,請從來源記錄計數中減去 BigQuery 計數。正值表示可能發生問題,因為這代表並非所有來源記錄都會進入 BigQuery。
  • 顯示的計數差異為來源記錄計數的百分比。
  • 顯示來源和目標計數是否相同或不同的視覺指標。
記錄數不相等

複製驗證工具顯示的每份報表都包含狀態欄位。

狀態欄中的綠色方塊表示來源記錄數等於 BigQuery 中的目標記錄數。

狀態欄位中的紅色圓圈表示記錄數量不相等。

記錄數量不相等不一定表示有問題。下列指標顯示可能發生問題:

  • 如果是「目前計數」報表,值不相等一律表示有問題。
  • 如果是「初始載入次數」或「複製次數」報表,正值表示可能發生問題。

    負值較低並不會造成問題。由於暫時性連線中斷等事件會導致 SAP LT 複製伺服器重新傳送資料,因此目標 BigQuery 資料表中的計數有時會略高於來源記錄計數。

如果數量不相等,請重新執行報表,確認是否為暫時性問題所致。如果工具產生報表時正在處理複製作業,記錄數可能會不一致。

如果來源資料表非常龐大,或是在 SAP LT Replication Server 中為初始載入或複製作業設定篩選器,複製驗證工具可能無法計算所有記錄,因此無法確保記錄數量相等。

排定驗證檢查時間

您可以使用 SAP 背景工作功能,排定複製驗證工具自動執行的時間間隔。

串流記錄工具

這項工具不支援串流資料複製。

「串流記錄」工具可讓您根據特定條件,將記錄從 SAP 串流至 Pub/Sub。根據預設,這項工具會建立含有篩選器的訂閱項目,透過 Pub/Sub 使用 Storage Write API,將來源 SAP 資料表中的已刪除記錄串流至 BigQuery。不過,您可以視需要自訂篩選器選項。

如要執行「串流記錄」工具,請按照下列步驟操作:

  1. 在 SAP GUI 中,執行交易 /GOOG/BQPS_FLT_SUBS,並在前面加上 /n

    /n/GOOG/BQPS_FLT_SUBS
  2. 在「Stream records」(串流記錄) 畫面中,提供下列欄位的值:

    • 大量移轉金鑰:包含 SAP 資料表的大量移轉金鑰。
    • SAP 資料表名稱:您需要將所有欄位對應轉換為 STRING 類型的 SAP 資料表名稱。
    • 篩選訂閱 ID:現有主題的訂閱名稱,您需要建立該主題。
    • 篩選條件:建立訂閱方案時使用的條件。預設篩選器只會串流已刪除的記錄。如要瞭解建立篩選器的語法,請參閱「篩選郵件」。
  3. 按一下「執行」圖示。系統會為所選資料表建立訂閱項目,並套用指定的篩選條件。

在 CSV 檔案中編輯 BigQuery 欄位對應

以下各節說明如何匯出預設欄位對應,讓資料工程師或 BigQuery 管理員編輯目標欄位值,不必存取 SAP LT 複製伺服器。

編輯目標欄位值時,請遵守下列規則:

  • 請勿修改「SAP 資料表名稱」和「SAP 欄位名稱」欄中的值。
  • 在「Send Uncompressed Flag」(傳送未壓縮的標記) 欄中,如要啟用記錄壓縮功能,請在欄位中只標記 X。否則請將欄位留空。

建立預設欄位對應的試算表或文字檔

如要建立 CSV 檔案,以便在 SAP LT Replication Server 外部編輯,請按照下列步驟操作:

  1. 執行 /GOOG/SLT_SETTINGS 交易。

  2. 在「SLT Settings Maintenance」畫面中,指定下列值:

    • 在「Google Cloud Partner」(Google Cloud 合作夥伴) 欄位中,選取複製選項。
    • 在「Settings Table」(設定資料表) 欄位中,指定「Fields」(欄位)
    • 在「Mass Transfer Key」(大量轉移金鑰) 欄位中,指定要更新的大量轉移 ID。
    • 在「資料表名稱」欄位中,將欄位留空即可處理所有資料表的所有欄位,或指定資料表名稱來處理特定資料表。
    • 將所有其他欄位留空。
  3. 按一下「執行」圖示。系統會顯示「BigQuery 設定維護 - 欄位」畫面。

  4. 在「BigQuery Settings Maintenance - Fields」(BigQuery 設定維護 - 欄位) 畫面上,按一下欄標題並從下拉式選單中選取「隱藏」,即可隱藏下列清單以外的所有資料欄:

    • SAP 資料表名稱
    • SAP 欄位名稱
    • Avro 類型,適用於透過 Pub/Sub 進行的 CDC 複製作業
    • 外部資料元素
    • 外部欄位名稱
    • 欄位說明
    • 傳送未壓縮的旗標
  5. 顯示其餘資料欄後,按一下「匯出」圖示。

  6. 從「匯出」選單中選取下列任一選項:

    • 試算表
    • 本機檔案:為方便將檔案內容轉換為 CSV 格式,建議將檔案儲存為「Text with tabs」(以 Tab 分隔的文字) 格式。
  7. 按一下「勾號」圖示,儲存預設欄位對應。

將試算表或文字檔轉換為 CSV 格式

如要使用自訂交易上傳編輯過的欄位對應 /GOOG/SLT_SETTINGS,欄位對應必須採用 CSV 格式。

如果您使用試算表,請先將試算表儲存為 CSV 檔案,再上傳檔案。

如果您使用以 Tab 分隔格式或其他格式的本機檔案,請修改檔案以符合 CSV 格式。

例如:

SAP Table,SAP Field Name,AVRO Type,External Data Element,External Field Name,Field Description, Send Uncompressed Flag
SAP_TABLE_NAME,SAP_FIELD_NAME1,AVRO_TYPE,EXTERNAL_DATA_ELEMENT,EXTERNAL_FIELD_NAME,FIELD_DESCRIPTION, SEND_UNCOMPRESSED_FLAG
SAP_TABLE_NAME,SAP_FIELD_NAME2,AVRO_TYPE,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME2,BIGQUERY_FIELD_DESCRIPTION2, SEND_UNCOMPRESSED_FLAG2
SAP_TABLE_NAME,SAP_FIELD_NAME3,AVRO_TYPE,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME3,BIGQUERY_FIELD_DESCRIPTION3, SEND_UNCOMPRESSED_FLAG3

上傳 CSV 檔案

如要上傳編輯好的 CSV 檔案,請按照下列步驟操作:

  1. 執行 /GOOG/SLT_SETTINGS 交易。

  2. 在「SLT Settings Maintenance」畫面中,指定下列值:

    • 在「Settings Table」(設定資料表) 欄位中,指定「Fields」(欄位)
    • 在「Mass Transfer Key」(大量轉移金鑰) 欄位中,指定要更新的大量轉移 ID。
    • 勾選「從檔案上傳」核取方塊。
  3. 按一下「執行」圖示。系統會開啟「Select File to Upload」(選取要上傳的檔案) 對話方塊。

  4. 在「選取要上傳的檔案」對話方塊中,選取包含編輯後欄位值的 CSV 檔案。

  5. 按一下「開啟」

  6. 如果收到安全性警告,請按一下「允許」。檔案載入後,檔案中修改過的值會顯示在「BigQuery 設定維護 - 欄位」畫面中適用的資料列。

  7. 按一下「儲存」圖示。

  8. 如要確認值是否已套用,請比較 CSV 檔案中的值與 SAP LT 複製伺服器顯示的值。

處理來源資料中的錯誤

從 BigQuery Connector for SAP 收到一組記錄後,BigQuery 串流 API 會先檢查資料錯誤,再將任何記錄插入 BigQuery 資料表。

您可以在大量移轉設定中指定下列旗標,控管 BigQuery API 和 BigQuery Connector for SAP 發現資料錯誤時的回應方式:

  • Skip Invalid Records (SKIP) 旗標
  • Break at First Error Flag (BREAK) 旗標

SKIP 旗標

如果您指定 SKIP 旗標,當 BigQuery API 收到一組記錄並發現有資料錯誤的記錄時,BigQuery API 會捨棄或略過該筆記錄,並繼續將該組中的所有其他記錄插入 BigQuery 表格。

如果未指定 SKIP 標記,當 BigQuery 發現含有資料錯誤的記錄時,會捨棄整個區塊,不會將任何記錄插入 BigQuery 資料表。這是預設行為。

指定 SKIP 標記最適合開發和 QA 環境,不建議用於正式環境。

設定複寫時,您可以在 /GOOG/SLT_SETTINGS 交易中指定 SKIP 旗標。規格會儲存在 /GOOG/BQ_MASTR 設定資料表中。

如要瞭解 SKIP 規格如何與 BREAK 規格互動,請參閱SKIPBREAK 互動的矩陣表

BREAK 旗標

如果您指定 BREAK 旗標,當 BigQuery API 通知 BigQuery Connector for SAP 在記錄中發現資料錯誤時,BigQuery Connector for SAP 會停止將記錄傳送至 BigQuery,並終止複寫工作。這是預設行為。

如果未指定 BREAK 標記,當 BigQuery 通知 BigQuery Connector for SAP 在記錄中發現資料錯誤時,BigQuery Connector for SAP 會繼續傳送記錄至 BigQuery,方法是傳送下一個區塊,而複製作業也會繼續。

建議您在正式環境中指定 BREAK 標記。

設定複寫時,您可以在 /GOOG/SLT_SETTINGS 交易中指定 BREAK 旗標。建立新的大量轉移金鑰時,系統會根據預設啟用 BREAK 標記。

規格會儲存在 /GOOG/BQ_MASTR 設定資料表中。

如要瞭解 BREAK 規格如何與 SKIP 規格互動,請參閱SKIPBREAK 互動的矩陣表

SKIPBREAK 互動的矩陣表格

您可以設定 BigQuery Connector for SAP,透過下列方式處理資料錯誤:

SKIP 旗標 BREAK 旗標 行為
FALSE TRUE

BigQuery 會捨棄目前的記錄區塊,不會將任何記錄從目前的區塊插入 BigQuery 資料表。

BigQuery Connector for SAP 不會再傳送目前部分的記錄區塊,並告知 SAP LT Replication Server 終止複製工作。

這是預設建議設定

FALSE FALSE

BigQuery 會捨棄目前的記錄區塊,不會將任何記錄從目前的區塊插入 BigQuery 資料表。

BigQuery Connector for SAP 會傳送目前部分中剩餘的記錄區塊,並擷取下一個部分。BigQuery Connector for SAP 不會告知 SAP LT Replication Server 終止複製作業。

TRUE TRUE

BigQuery 只會捨棄含有錯誤的記錄,並將目前區塊中的其餘記錄插入 BigQuery 資料表。

BigQuery Connector for SAP 不會再傳送目前部分的記錄區塊,並告知 SAP LT Replication Server 終止複製作業。

TRUE FALSE

BigQuery 只會捨棄含有錯誤的記錄,並將目前區塊中的其餘記錄插入 BigQuery 資料表。

BigQuery Connector for SAP 會傳送目前部分中剩餘的記錄區塊,並擷取下一個部分。BigQuery Connector for SAP 不會要求 SAP LT Replication Server 終止複製作業。

資料表結構變更

本節說明如何修改 SAP 來源資料表結構,現有的 LTRC 複製作業正在進行中。

透過 Pub/Sub 進行 CDC 複製時,系統會根據資料表結構變更修訂中繼 Pub/Sub 結構定義。更新 Pub/Sub 結構定義後,變更可能需要幾分鐘才會生效。不過資料不會遺失。

在來源資料表中新增資料欄

如要為來源資料表新增資料欄,請按照下列步驟操作:

  1. 在來源資料表中新增資料欄。 完成這個步驟後,複製狀態會變更為 Load/Replication blocked

  2. 在 SLT 系統中,使用交易 LTRC 重設複製狀態。如要進一步瞭解 SAP 提供的資訊,瞭解如何重設複製狀態,請參閱 SAP 附註 2204955 - SLT tables are in status 'Load /Replication blocked'

  3. 在來源資料表中新增、更新或刪除項目。

  4. 在 BigQuery 中驗證複製結果。

從來源資料表刪除資料欄

如要從來源資料表刪除現有資料欄,請按照下列步驟操作:

  1. 在 SLT 系統中,使用交易 LTRC 暫停複製。

  2. 從來源資料表刪除資料欄。 完成這個步驟後,現有的 SLT 觸發條件會遭到刪除或變更為不一致的狀態。

  3. 如要透過 Pub/Sub 進行 CDC 複製,請建立新的修訂版本,手動從目標 Pub/Sub 結構定義中刪除資料欄。如要進一步瞭解如何從現有結構定義中刪除資料欄,請參閱 Pub/Sub 說明文件中的「修訂結構定義」。

  4. 在 BigQuery 中,從目標 BigQuery 資料表刪除資料欄。如要進一步瞭解如何從現有資料表刪除資料欄,請參閱 BigQuery 說明文件

  5. 在 SLT 系統中,使用交易 LTRC 繼續複製。

  6. 在 SLT 系統中,重新建立 SLT 觸發條件。如要進一步瞭解如何重新建立 SLT 觸發程序,請參閱 SAP 附註 2254376 - SLT 觸發程序處於不一致的狀態

  7. 如果複製狀態為 Load /Replication blocked,請使用交易 LTRC 重設複製狀態。如要進一步瞭解如何重設複製狀態,請參閱 SAP 附註 2204955 - SLT tables are in status 'Load /Replication blocked'

  8. 清除記錄 (如有)。

  9. 在來源資料表中新增、更新或刪除項目。

  10. 在 BigQuery 中驗證複製結果。

變更現有資料欄的資料類型

變更 SAP 來源資料表中現有資料欄的資料類型時,您需要視變更後的資料類型是否與目標 BigQuery 資料表相容,採取特定步驟。

如果現有資料欄的現有資料類型和新資料類型最終會對應至目標 BigQuery 資料表中的相同資料類型,以及 Pub/Sub Avro 結構定義,則資料類型與目標 BigQuery 資料表中的資料類型相容。

舉例來說,如果來源資料表中的資料欄資料類型從 INT1 變更為 INT2,這兩種 SAP 資料類型都會視為相容,因為這兩種資料類型會對應至 BigQuery 中的 INTEGER 資料類型,並對應至 Pub/Sub Avro 結構定義中的 int 類型。

BigQuery Connector for SAP 會在內部處理這項對應作業。相容性是指基本 BigQuery 和 Pub/Sub 類型不需要變更。詳情請參閱「結構定義相容性」。

如要進一步瞭解 BigQuery Connector for SAP 中的資料類型對應,請參閱「資料類型對應」。

將資料類型變更為相容的資料類型

如要將現有資料欄的資料類型變更為相容的資料類型,請按照下列步驟操作:

  1. 在來源系統中,將資料類型變更為相容的資料類型。 完成這個步驟後,現有的 SLT 觸發條件會遭到刪除或變更為不一致的狀態。

  2. 在 SLT 系統中,重新建立 SLT 觸發條件。如要進一步瞭解如何重新建立 SLT 觸發程序,請參閱 SAP 附註 2254376 - SLT 觸發程序處於不一致的狀態

  3. 如果複製狀態為 Load /Replication blocked,請使用交易 LTRC 重設複製狀態。如要進一步瞭解如何重設複製狀態,請參閱 SAP 附註 2204955 - SLT tables are in status 'Load /Replication blocked'

  4. 清除記錄 (如有)。

  5. 在來源資料表中新增、更新或刪除項目。

  6. 在 BigQuery 中驗證複製結果。

將資料類型變更為不相容的資料類型

如要將現有資料欄的資料類型變更為不相容的資料類型,請按照下列步驟操作:

  1. 在 SLT 系統中,使用交易 LTRC 停止複製。
  2. 如要透過 Pub/Sub 進行 CDC 複製,請在 Pub/Sub 中刪除目標結構定義、BigQuery 訂閱項目和 Pub/Sub 主題。
  3. 在 BigQuery 中刪除目標資料表。
  4. 在來源系統中變更資料類型。
  5. 在 SLT 系統中,使用交易 LTRC 啟動複製作業。

如要進一步瞭解資料表結構變更,請參閱「BigQuery Connector for SAP:像專業人士一樣處理資料表結構變更」。

管理 Pub/Sub 結構定義,以因應資料表結構變更

透過 Pub/Sub 進行 CDC 複製時,如果資料表結構變更,系統也會更新中繼 Pub/Sub 結構定義,以反映資料表結構變更。系統會建立新的結構定義修訂版本。

Pub/Sub 會維護這些修訂版本的記錄,然後用於正確解讀訊息。Pub/Sub 每個主題最多可有 20 個結構定義修訂版本。如果超出這項限制,可能會導致錯誤,並阻礙後續的結構定義更新。

達到 20 個結構定義修訂版本的上限時,SAP SLT 系統會收到錯誤訊息,指出無法建立新的結構定義修訂版本。在這種情況下,您會收到下列錯誤訊息:

  • SAP 記錄:SLT 記錄中的錯誤,與 Pub/Sub 作業相關,例如:

    • /GOOG/MSG : 429 - You have exceeded your revisions per schema quota (schema = SCHEMA_NAME)
    • Cannot create more schema revisions
  • 複製狀態:受影響資料表的複製狀態可能會變更為「載入/複製已封鎖」。

  • Pub/Sub 錯誤:Pub/Sub 端的錯誤,表示無法更新結構定義。

如果發現這些錯誤,請採取下列行動:

  • 分析及刪除舊版結構定義修訂版本:如果不再需要舊版結構定義修訂版本,請使用 Google Cloud 控制台或 gcloud CLI 刪除。詳情請參閱「刪除結構定義修訂版本」。
  • 建立新的結構定義:如果無法刪除舊的結構定義修訂版本,可以建立新的 Pub/Sub 結構定義。如要建立新的 Pub/Sub 結構定義,請按照下列步驟操作:

    1. 在 SLT 系統中,使用交易 LTRC 停止複製。
    2. 在「資料表屬性」的「Pub/Sub 結構定義」欄位中,更新新的結構定義名稱。
    3. 在 SLT 系統中,使用交易 LTRC 啟動複製作業。
    4. 連接器會根據來源資料表定義,自動建立新的結構定義。
    5. 確認複製作業後,即可刪除舊的結構。

強化功能結束

BigQuery Connector for SAP 在程式碼中提供多個強化點,ABAP 開發人員可以在這些點插入程式碼,加入自訂功能。

下表列出強化點支援的函式、方法,以及包含強化點的類別。

函式 類別 方法 Spot 選項
更新欄位的對應關係,例如外部欄位名稱和資料類型。 /GOOG/CL_IUUC_REPL_RUNTIME CREATE_FLD_MAPPINGS /GOOG/ES_IUUC_REPL_RUNTIME /GOOG/UPDATE_FIELD_MAPPING
新增或移除欄位,更新欄位資料表的對應關係。 /GOOG/CL_IUUC_REPL_RUNTIME CREATE_FLD_MAPPINGS /GOOG/ES_IUUC_REPL_RUNTIME /GOOG/UPDATE_FIELD_MAPPINGS
在來源欄位轉換為目標欄位之前,變更來源欄位的值。 /GOOG/CL_IUUC_REPL_RUNTIME_BQ FILL_TARGET_RECORDS /GOOG/ES_IUUC_REPL_RUNTIME_BQ /GOOG/CHANGE_SOURCE_FIELD
將來源欄位轉換為目標資料表中的目標欄位後,請變更目標欄位的值。 /GOOG/CL_IUUC_REPL_RUNTIME_BQ FILL_TARGET_RECORDS /GOOG/ES_IUUC_REPL_RUNTIME_BQ /GOOG/FILL_TARGET_FIELD
在來源到目標資料表的轉換期間,將來源資料表中沒有的欄位新增至目標資料表。 /GOOG/CL_IUUC_REPL_RUNTIME_BQ FILL_TARGET_RECORDS /GOOG/ES_IUUC_REPL_RUNTIME_BQ /GOOG/FILL_EXTRA_FIELD
建立 BigQuery 資料表前,請先準備 BigQuery 結構定義欄位。 /GOOG/CL_GCP_CLIENT_BQ PREP_BQ_TABLE_SCHEMA /GOOG/ES_GCP_CLIENT_BQ /GOOG/PREPARE_SCHEMA_FIELD
如果 HTTP 錯誤源自 Pub/Sub 伺服器端,您可以收集對 Pub/Sub API 進行 HTTP 呼叫後的記錄資料,以排解問題。 /GOOG/CL_GCP_CLIENT_PUBSUB_SLT PUBLISH_DATA_CHUNKS /GOOG/ES_GCP_CLIENT_BQCPS_SLT /GOOG/LOG_INSERT_ERROR
如果 HTTP 錯誤源自 BigQuery 伺服器端,您可以對 BigQuery API 進行 HTTP 呼叫後收集記錄資料,以排解問題。 /GOOG/CL_GCP_CLIENT_BQ_SLT INSERT_TABLEDATA /GOOG/ES_GCP_CLIENT_BQ_SLT /GOOG/LOG_INSERT_ERROR
如果 HTTP 錯誤源自 SAP 用戶端,您可以收集記錄資料來排解問題。 /GOOG/CL_GCP_HTTP_CLIENT RECEIVE_HTTP_RESPONSE /GOOG/ES_GCP_HTTP_CLIENT /GOOG/RECEIVE_HTTP_RESPONSE
如果 HTTP 錯誤源自 BigQuery 伺服器端,您可以收集對 BigQuery API 進行 HTTP 呼叫後的記錄資料,以排解問題。 /GOOG/CL_GCP_CLIENT_BQ_SLT INSERT_TABLEDATA /GOOG/ES_GCP_CLIENT_BQ_SLT /GOOG/LOG_RETURN_STATUS

進階設定

您可以選擇修改 SAP 適用的 BigQuery 連接器進階設定。 Google Cloud 建議您先全面分析新值對效能的影響,再修改進階設定參數。您有責任確保 BigQuery Connector for SAP 的新進階設定不會導致失敗和效能問題。

BigQuery Connector for SAP 的進階設定會在系統層級套用,且適用於所有大量移轉金鑰。如果未修改進階設定參數,BigQuery Connector for SAP 會使用預設設定。

如要修改進階設定參數,請完成下列步驟:

  1. 在 SAP GUI 中,輸入 /GOOG/SLT_SETTINGS 交易,並在前面加上 /n

    /n/GOOG/SLT_SETTINGS
  2. /GOOG/SLT_SETTINGS交易的啟動畫面中,從「設定表格」下拉式選單選取「參數」

  3. 按一下「執行」圖示。系統會顯示「BigQuery Settings Maintenance - Parameters」(BigQuery 設定維護 - 參數) 畫面。

  4. 按一下「插入列」圖示。

  5. 在顯示的列中,指定下列設定:

    1. 在「參數名稱」欄位中,輸入參數名稱。 系統會自動填入參數說明。
    2. 在「參數值」欄位中輸入值。

      如要瞭解進階設定參數,請參閱「進階設定參數」。

  6. 按一下 [儲存]

    進階設定會儲存為設定表中的記錄,且「變更者」、「變更時間」和「變更時的日期」欄位會自動填入。/GOOG/BQ_PARAM

進階設定參數

下表列出 BigQuery Connector for SAP 的進階設定參數。

參數名稱 說明 預設值 有效值
CHUNK_SIZE_DEF 這是 BigQuery Connector for SAP 支援的預設區塊大小。
如果設定中未保留區塊大小,系統會使用預設區塊大小。
這個參數只能用於將資料串流複製到 BigQuery。
10,000 值必須在 BigQuery 配額限制內。
PERC_REDUC_DEF 區塊大小縮減百分比。
如果啟用動態區塊大小,區塊大小會減少這個百分比,直到達到理想的區塊大小,並成功將區塊中的資料傳輸至 BigQuery 為止。
50 值必須介於 1 至 99 之間。
CMD_EXEC_TRIES 如果 SAP 系統並非在 Google Cloud上執行,且您在交易 SM69 中建立的作業系統指令無法從 Google Cloud擷取存取權杖,則 BigQuery Connector for SAP 會重試擷取權杖的次數就是這個值。 5 您可以指派給這個參數的最小值為 1。為方便至少重試一次,請將值設為 2。分析權杖擷取重試對複製效能的影響後,請設定這個參數的最大值。
CMD_SECS_DEFLT 如果已啟用權杖快取,這是快取權杖的有效時間長度 (以秒為單位)。 3500 值必須介於 1 至 3599 之間。