版本 2.0:SAP 專用 BigQuery 連接器疑難排解指南

您可以使用 SAP 專用 BigQuery 連接器的 2.0 版和 2.1 版排解問題,方法是同時使用 SAP LT Replication Server 應用程式記錄和 Google Cloud 記錄,查看錯誤和記錄訊息。

SAP 專用 BigQuery 連接器會將所有錯誤傳送至標準 SAP LT Replication Server 應用程式記錄。

您也可以使用 SAP LT Replication Server 偵錯功能找出問題。

疑難排解總覽

排解 SAP 專用 BigQuery 連接器的問題時,您可能需要專注於幾個不同的領域,具體取決於您要調查的問題領域或範圍:

  • 基礎架構,例如網路、硬體或作業系統。
  • SAP 軟體,包括來源伺服器和 SAP LT Replication Server。
  • SAP 專用的 BigQuery 連接器。
  • BigQuery,包括 BigQuery API 和目標資料表。

邀請適當的團隊

排解問題時,您首先需要判斷問題發生在上述哪個區域,以及問題的範圍。

如要解決問題,您可能需要與多個團隊合作,例如 Basis 管理員、SAP LT Replication Server 管理員、資料庫管理員或 Google Cloud 安全性管理員。

盡早找出合適的團隊和技能,有助於更快解決問題。

判斷根本原因

您必須判斷問題的根本原因,並確認您認為可能是原因的因素,其實只是其他根本原因的症狀。

SAP 系統整合得非常緊密,但可以將記錄和追蹤記錄寫入多個不同位置的檔案。排解問題時,您必須判斷要查看哪些正確的記錄和追蹤檔案。

檢查軟體需求和先決條件

請確認所有系統軟體都執行必要的最低版本,且已符合所有 BigQuery Connector for SAP 必要條件。

如要瞭解 BigQuery Connector for SAP 的安裝必要條件,請參閱:

  • 如果 SAP LT 複寫伺服器是在 Compute Engine VM 上執行,請參閱前置條件

  • 如果 SAP LT Replication Server 是執行在Google Cloud外部的主機上,請參閱前置條件

如要瞭解 BigQuery Connector for SAP 的軟體需求,請參閱「軟體需求」。

如果您使用的是舊版 ECC 軟體,請確認 SAP LT Replication Server 版本與 ECC 版本相容。詳情請參閱 SAP 注意事項 2577774 - 來源和目標系統的版本相容性 - SLT

閱讀 SAP 支援文件

如果您有 SAP 使用者帳戶,只要閱讀 SAP ONE 支援 Launchpad 提供的 SAP 附註和 SAP 知識庫文章,就能找到許多 SAP 軟體問題的解決方法。

記錄

SAP 專用 BigQuery 連接器會將記錄訊息傳送至 SAP LT Replication Server,您可以在 SAP LT Replication Server 應用程式記錄中查看這些訊息。

這些訊息包括 BigQuery 適用於 SAP 的連接器從 BigQuery API 收到的訊息。

您可以在Google Cloud 主控台中查看一般 BigQuery 記錄訊息。

SAP LT Replication Server 應用程式記錄

所有錯誤訊息都會儲存至標準 SAP LT Replication Server 應用程式記錄。檢查應用程式記錄,分析並排解問題的根本原因。

您可以執行交易 LTRC、開啟設定,然後選取「Application Logs」,即可顯示特定於 SAP LT Replication Server 設定的應用程式記錄檔。

當系統顯示記錄時,請選取表格資料列,然後點選按鈕即可顯示任何錯誤訊息。如果您按一下複本的「Application Logs」分頁,即可篩選複本的相關執行階段記錄訊息。

由 SAP 專用 BigQuery 連接器產生的訊息

在記錄傳送至 BigQuery 之前,如果在 BigQuery Connector for SAP 中發生任何錯誤,前面都會加上 /GOOG/SLT

從 BigQuery API 傳回的任何錯誤都會加上前置字串 /GOOG/MSG。這包括任何 HTTP 錯誤。

如果錯誤前方沒有任何這些值,表示錯誤是由 SAP LT 複製伺服器發出。

BigQuery 記錄檔

BigQuery 會將各種記錄項目寫入 Google Cloud 控制台的 Cloud Logging。

如要查看 BigQuery 記錄項目,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,開啟「Logging」(記錄):

    前往「Logs Explorer」

  2. 在「查詢」編輯器中指定 BigQuery 資源。例如:

    resource.type="bigquery_dataset"

如要進一步瞭解 BigQuery 記錄,請參閱「記錄」。

HTTP 追蹤記錄

在排解錯誤時,您可以在交易 SMICMST05 中啟用 HTTP 追蹤功能。

為避免對效能造成影響,請在完成後立即停用 HTTP 追蹤。

偵錯

如果您具備必要授權,就可以對 BigQuery Connector for SAP 的 Business Add-In (BAdI) 程式碼進行偵錯。

如要對 BAdI 程式碼進行偵錯,請按照下列步驟操作:

  1. 如果您尚未取得 SAP 授權,無法用於 BAdI 程式碼偵錯,請向 SAP 管理員索取授權。

  2. 在 SAP GUI 的交易輸入欄位中輸入 /h,然後按下 Enter,即可啟用偵錯功能。

  3. 在「Settings」選單中,選取「Change Debugger Profile/ Settings」

  4. 在「Debug Modes」下方,確認已選取「System Debugging」

  5. 視需要在程式碼中設定外部中斷點。

監控

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

  • 基礎架構:網路、硬體和作業系統
  • SAP 資料庫層
  • SAP 應用程式層
  • SAP 專用的 BigQuery 連接器
  • BigQuery

如要進一步瞭解在這些時間點監控的相關資訊,請參閱 SAP 作業指南的 BigQuery 連接器

資料對照

您可以透過以下三種方式查看記錄計數:

  • 來源資料表
  • 在交易中,SAP LT Replication Server 負載或複製統計資料 LTRC
  • BigQuery 目標資料表

您可以使用複本驗證工具來檢查及比較記錄計數,也可以自行執行 SQL 查詢來擷取記錄。

如要進一步瞭解資料比對,請參閱 適用於 SAP 作業指南的 BigQuery 連接器

常見的設定問題

本節說明在初始設定 BigQuery Connector for SAP 時可能發生的常見問題,並提供解決方法。

SAP LT Replication Server 支援的資料庫資料類型

視 SAP 軟體版本而定,SAP LT Replication Server 可能不支援來源資料庫中的部分資料類型。詳情請參閱 SAP 注意事項 1605140 - SAP Landscape Transformation Replication Server (SLT) 中的「Important Considerations」重要考量事項一節。

問題:存取權杖的 OS 指令無法在 SAP LT Replication Server 中運作

問題:建立作業系統 (OS) 指令來列印存取權存證明代碼,但在 SAP LT Replication Server 中無法運作。

原因:這項問題可能有多種原因,但最可能的原因是未正確設定 OS 指令所需的環境變數。

解決方法:確認 OS 指令已正確設定。如需設定步驟,請參閱「建立 OS 指令以列印存取權權杖」。

請嘗試從 OS 以 sidadm 和 SAP 交易 SM69 執行 printenv 指令,然後比較輸出內容。

如果交易 SM69 中傳回的變數不完整,請嘗試重新啟動 SAP LT Replication Server 來註冊變數。

問題:/GOOG/MSG: 413 - Request Entity Too Large

問題:資料轉移失敗,並顯示錯誤訊息 /GOOG/MSG: 413 - Request Entity Too Large

原因:如果 SAP 適用的 BigQuery 連接器傳送的區塊位元組大小超過 BigQuery 接受的 HTTP 要求上限位元組大小,就可能發生這個問題。當表格記錄的大小或記錄所含資料量,導致區塊的位元組大小超出 BigQuery 限制時,就可能發生這種情況。

解決方法:請減少 BigQuery Connector for SAP 為資料表傳送的區塊大小。您可以執行交易 /GOOG/SLT_SETTINGS 來調整區塊大小。

如要瞭解如何設定區塊大小,請參閱「BigQuery Connector for SAP 中的區塊大小」。

問題:/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending

問題:資料移轉失敗,並顯示錯誤訊息 /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending

原因:這可能是因為連線或網路問題所導致。

解決方法:驗證連線,並確認網路設定正確無誤、運作正常且沒有壅塞。

問題:/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving

問題:資料移轉失敗,並顯示錯誤訊息 /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving

導致這個問題的原因可能包括:

安全資料傳輸層 (SSL) 握手失敗

原因:當 SAP LT 複製伺服器主機和 BigQuery API 端點之間的 SSL 握手失敗時。當 TLS 伺服器提供的憑證,對 SAP LT 複本伺服器提供的目標主機名稱無效時,就會發生這個問題,可能是因為 NetWeaver 核心未實作用戶端傳送選用 TLS 擴充功能 SNI 的功能。

解決方法:在交易 SMICM 中,找出傳回碼 SSLERR_SERVER_CERT_MISMATCH。如果您發現傳回碼 SSLERR_SERVER_CERT_MISMATCH,就需要啟用 TLS 擴充功能 SNI 的傳送功能。此外,請確認您的 NetWeaver 核心實作了用戶端傳送選用 TLS 擴充功能 SNI 的功能。

如要啟用 TLS 擴充功能 SNI 傳送功能,請視 NetWeaver 核心版本而定,將設定檔參數 icm/HTTPS/client_sni_enabledssl/client_sni_enabled 設為 TRUE。如需 SAP 提供的詳細資訊,請參閱:

區塊的位元組大小超過 BigQuery 接受的 HTTP 要求位元組大小上限

原因:當 SAP 專用 BigQuery 連接器傳送的區塊位元組大小超過 BigQuery 接受的 HTTP 要求最大位元組大小時,當表格記錄的大小或記錄所含資料量,導致區塊的位元組大小超出 BigQuery 限制時,就可能發生這種情況。

解決方法:請縮減 BigQuery Connector for SAP 為此資料表傳送的區塊大小。您可以執行交易 /GOOG/SLT_SETTINGS 來調整區塊大小。詳情請參閱「BigQuery Connector for SAP 中的區塊大小」。

問題:/GOOG/MSG: 404 - Not found: Dataset DATASET_NAME

問題:嘗試驗證 Google Cloud 安全性或將資料載入 BigQuery 資料表時,您會收到 /GOOG/MSG: 404 - Not found: Dataset DATASET_NAME 訊息。

原因:以下情況可能會導致這個問題:

  • 尚未建立 BigQuery 資料集。
  • 在大量轉移設定中未正確指定資料集名稱。
  • 您必須啟用 SAP LT Replication Server 中的複寫設定。

解決方法:請嘗試下列解決方法:

  • 確認已在 BigQuery 中建立資料集。
  • 確認大量移轉設定中的資料集名稱與 BigQuery 中的資料集名稱相同。
  • 執行 LTRC 交易,並停用及重新啟用複寫設定。

問題:Mass Transfer Key can not be found for Mass Transfer ID XXX

問題:您收到 /GOOG/SLT: Mass Transfer Key can not be found for Mass Transfer ID XXX 錯誤訊息。

原因:以下情況可能會導致這個問題:

  • 指定的大量轉移 ID 沒有大量轉移設定。
  • 對應的複製設定未啟用。

解決方法:如要解決這個問題,請採取下列任一做法:

  • 執行 /GOOG/SLT_SETTINGS 交易,並確認是否正確指定大量轉移 ID。
  • 執行 LTRC 交易,並停用及重新啟用複寫設定。

問題:/GOOG/SLT : Unable to interpret VALUE as a BOOLEAN

問題:載入或複製記錄時發生錯誤,並傳回訊息 /GOOG/SLT : Unable to interpret VALUE as a BOOLEAN

原因:這個問題是因為來源資料表中的欄位對應至 BigQuery 資料類型 BOOLEAN,但來源欄位中的資料無法解析為布林值。

解決方法:如要解決這個問題,請使用交易 /GOOG/SLT_SETTINGS,變更來源欄位對應的資料類型,或是移除資料類型對應,並接受預設資料類型。

問題:/GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS

問題:載入或複製記錄時發生錯誤,並傳回訊息 /GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS

原因:來源欄位含有無效值,或是來源欄位對應至 BigQuery 資料類型,但該類型並非來源欄位所含資料的有效對應。

解決方法:如要解決這個問題,請使用交易 /GOOG/SLT_SETTINGS 變更來源欄位對應的資料類型,或移除資料類型對應項目,並接受資料類型的預設對應項目。

問題:/GOOG/MSG : Client key is not found in /GOOG/CLIENT_KEY table

問題:載入或複製作業未以訊息 /GOOG/MSG: Client key is not found in /GOOG/CLIENT_KEY table 開頭。

原因:用戶端金鑰不存在,或是在交易 /GOOG/SLT_SETTINGS 的大量轉移設定中指定錯誤。

解決方法:如要解決這個問題,請使用交易 SM30 建立用戶端金鑰,或是使用交易 /GOOG/SLT_SETTINGS 修正大量移轉設定中的用戶端金鑰值規格。

常見的營運問題

本節將說明初始設定 BigQuery Connector for SAP 後可能發生的常見問題,並提供解決方法。

問題:BigQuery 中的寫入次數不正確

問題:寫入 BigQuery 的記錄數量高於 SAP LT 複製伺服器記錄中顯示的記錄數量。

原因:這可能有多種原因,包括暫時性連線問題導致 SAP LT 複製伺服器傳送記錄不只一次,或是 BigQuery 資料表只接受插入作業,且來源中每個記錄的變更都會以個別項目的形式插入至目標資料表。

解決方法:如果記錄計數的差異不大,且 BigQuery 中的記錄數並未少於來源資料表,則這是預期的行為,並非問題。

如要準確比對 BigQuery 中的記錄數量與來源資料表中的記錄數量,請按照「SQL 記錄計數查詢」一文所述,查詢 BigQuery 資料表。

如要進一步瞭解這個問題的可能原因,請參閱「HANA 上 ABAP 來源/目標的特殊考量事項」。

問題:/GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME

問題:您收到錯誤訊息 /GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME. Please delete the table from BigQuery and try again.

原因:您對現有 BigQuery 資料表輸入下列任一變更:

  • 刪除欄位
  • 重新命名欄位
  • 變更欄位的資料類型
  • 變更資料表的分區類型

上述變更無法套用至現有的 BigQuery 資料表。

解決方法:如果您需要變更現有資料表中的任何欄位屬性,請刪除現有資料表,然後將記錄重新載入至新資料表。

如果變更內容有誤,請在 SAP LT Replication Server 中撤銷變更。

如要進一步瞭解如何在目標 BigQuery 資料表中設定欄位和分區,請參閱「BigQuery 複製設定」。

問題:與無效資料相關的錯誤訊息

問題:您在應用程式記錄檔中收到以下錯誤訊息:/GOOG/MSG/: DESCRIPTION_OF_INVALID_DATA error occurred in FIELD_NAME in record RECORD_KEYS

原因:當 BigQuery 將含有任何無效資料的記錄插入目標資料表時,就會發出這則錯誤訊息。資料可能會因下列任一原因而無效:

  • 特定記錄欄位中的資料與 BigQuery 中的資料類型不相容。舉例來說,BigQuery 會在下列情況下產生錯誤訊息:
    • 字串會保留在 DATEINTEGERBOOLEAN 類型的欄位中。
    • DATE 類型的欄位中保留無效的日期 (00/00/0000)。
  • 在交易 /GOOG/SLT_SETTINGS 的欄位對應項目中,維持了錯誤的目標資料類型。

BigQuery 會針對每個包含無效資料欄位的記錄發出錯誤訊息。

解決方法:請分析錯誤訊息 DESCRIPTION_OF_INVALID_DATA,瞭解無效資料的可能原因。如要找出含有無效資料欄位的記錄,請使用 RECORD_KEYS,其中包含記錄的前五個欄位內容。如果資料表有五個欄位或以下,則 RECORD_KEYS 會包含所有欄位的內容。

  • 如果欄位中的資料與 BigQuery 中的資料類型不相容,請修正來源資料表中的資料。
  • 如果資料和資料類型不符,就會發生錯誤,請使用交易 /GOOG/SLT_SETTINGS 指定適當的資料類型。如要進一步瞭解資料類型對應,請參閱「資料類型對應」。

取得支援

如需協助解決複製作業和 BigQuery Connector for SAP 的問題,請收集所有可用的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。

如要進一步瞭解如何與 Cloud Customer Care 聯絡,請參閱「取得 SAP 支援 Google Cloud」一文。