這份文件適用於 SAP 管理員、SAP 開發人員或其他使用者,說明如何排解 BigQuery Toolkit for SAP 的問題。
常見問題
本節列出常見的錯誤訊息,以及 BigQuery Toolkit for SAP 的專屬解決方法。
如要瞭解如何排解 ABAP SDK for Google Cloud 的一般問題,請參閱「排解 ABAP SDK for Google Cloud 內部部署或任何雲端版本的問題」。
/GOOG/BQTR: Mass Transfer Key is required. Use Tcode /GOOG/BQTR_SETTINGS to maintain
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: Mass Transfer Key is required. Use Tcode /GOOG/BQTR_SETTINGS to maintain
。
原因:呼叫資料載入類別 /GOOG/CL_BQTR_DATA_LOAD
時,IV_MASS_TR_KEY
參數中未提供大量移轉金鑰。
解決方法:如要解決這個問題,請傳遞儲存在交易 /GOOG/BQTR_SETTINGS
中的大量轉移金鑰。詳情請參閱「呼叫資料複製方法」。
/GOOG/BQTR: Data Source is required. Pass a dictionary object
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: Data Source is required. Pass a dictionary object
。
原因:呼叫資料載入類別 /GOOG/CL_BQTR_DATA_LOAD
時,IV_DATA_SOURCE
參數中未提供資料來源。
解決方法:如要解決這個問題,請傳遞字典物件的名稱,例如 CDS 檢視區塊或表格,做為資料來源。詳情請參閱「呼叫資料複製方法」。
/GOOG/BQTR: Mass Transfer Key MASS_TRANSFER_KEY not found. Use Tcode /GOOG/BQTR_SETTINGS to maintain
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: Mass Transfer Key MASS_TRANSFER_KEY not found. Use Tcode /GOOG/BQTR_SETTINGS to maintain
。
原因:傳遞至資料載入類別 /GOOG/CL_BQTR_DATA_LOAD
的大量移轉金鑰,未保留在 BigQuery 資料移轉模組中。
解決方法:如要解決這個問題,請使用交易代碼 /GOOG/BQTR_SETTINGS
維護大量轉移金鑰。詳情請參閱「設定 BigQuery 資料移轉模組」。
/GOOG/BQTR: DATA_SOURCE does not exist in data dictionary
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: DATA_SOURCE does not exist in data dictionary
。
原因:傳遞至資料載入類別 /GOOG/CL_BQTR_DATA_LOAD
的資料來源不是有效的資料字典物件。
解決方法:如要解決這個問題,請傳遞資料字典中現有的資料來源名稱。系統僅支援資料表、字典檢視區塊和 CDS 檢視區塊。
/GOOG/BQTR: Nested Tables are not supported
問題:您收到錯誤訊息 /GOOG/BQTR: Nested Tables are not supported
。
原因:傳遞至資料載入類別 /GOOG/CL_BQTR_DATA_LOAD
的字典物件並非扁平結構。
解決方法:如要解決這個問題,請使用具有扁平結構的字典物件。
/GOOG/BQTR: Error creating target table definition
問題:您收到錯誤訊息 /GOOG/BQTR: Error creating target table definition
。
原因:BigQuery Toolkit for SAP 無法為指定資料來源建立目標資料表定義。
解決方法:如要解決這個問題,請確認輸入來源是具有一或多個欄位的有效字典物件。
/GOOG/BQTR: 400 - Table creation failed in BQ. Could not pull the table metadata from BQ
問題:您收到錯誤訊息 /GOOG/BQTR: 400 - Table creation failed in BQ. Could not pull the table metadata from BQ
。
原因:如果 BigQuery 資料移轉模組無法從 BigQuery 取得資料表定義,就會引發這項錯誤。這可能是因為 BigQuery 伺服器暫時超載所致。
解決方法:如要解決這個問題,請重新啟動 BigQuery 資料載入作業。
/GOOG/BQTR: 400 - Scope must be provided
問題:您收到錯誤訊息 /GOOG/BQTR: 400 - Scope must be provided
。
原因:在用戶端金鑰設定中,「Google Cloud 範圍」為空白。
解決方法:如要解決這個問題,請在您使用的用戶端金鑰設定中,於「Google Cloud 範圍」欄位指定對應範圍,例如 https://www.googleapis.com/auth/cloud-platform
。
/GOOG/BQTR: 400 - Schema mismatch for table TABLE_NAME
問題:您收到錯誤訊息 /GOOG/BQTR: 400 - Schema mismatch
for table TABLE_NAME. Please delete the table from BigQuery and
try again.
原因:現有 BigQuery 資料表輸入了下列其中一項變更:
- 刪除欄位
- 重新命名欄位
- 欄位的資料類型變更
- 資料表的分區類型變更
上述變更無法套用至現有的 BigQuery 表格。
解決方法:如要變更現有表格中的任何欄位屬性,請刪除現有表格,然後將記錄重新載入新表格。
與無效資料相關的錯誤訊息
問題:您在應用程式記錄檔中收到錯誤訊息:
/GOOG/BQTR/: DESCRIPTION_OF_INVALID_DATA error
occurred in FIELD_NAME in record
RECORD_KEYS
。
原因:將任何無效資料插入目標資料表時,BigQuery 會發出這則錯誤訊息。資料無效的原因可能如下:
- 特定記錄欄位中的資料與 BigQuery 的資料類型不相容。舉例來說,BigQuery 會在下列情況產生錯誤訊息:
- 字串會保留在
DATE
、INTEGER
或BOOLEAN
類型的欄位中。 DATE
類型的欄位中保留了無效日期 (00/00/0000
)。
- 字串會保留在
- 交易
/GOOG/BQTR_SETTINGS
的欄位對應中,維持了不正確的目標資料類型。
如果記錄包含含有無效資料的欄位,BigQuery 會針對每筆記錄發出錯誤訊息。
解決方法:分析錯誤訊息,
DESCRIPTION_OF_INVALID_DATA
,瞭解資料無效的可能原因。
如要找出含有無效資料的記錄,請使用 RECORD_KEYS
,其中包含記錄前五個欄位的內容。如果資料表有五個或更少的欄位,則所有欄位的內容都會納入 RECORD_KEYS
。
- 如果欄位中的資料與 BigQuery 中的資料類型不相容,請修正來源資料表中的資料。
- 如果錯誤是因資料與資料類型不符而發生,請使用交易
/GOOG/BQTR_SETTINGS
指定適當的資料類型。
/GOOG/BQTR: 403 - Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission bigquery.tables.created denied on dataset
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: 403 -
Access Denied: Dataset PROJECT_ID:DATASET_NAME: Permission
bigquery.tables.created denied on dataset
。
原因:在 Google Cloud上執行的 SAP 工作負載中,指定服務帳戶沒有存取 BigQuery API 的必要權限。/GOOG/CLIENT_KEY
解決方法:如要解決這個問題,請完成下列步驟:
在 SAP GUI 中,輸入
/GOOG/BQTR_SETTINGS
交易,並在前面加上/n
:/n/GOOG/BQTR_SETTINGS
針對交易
LTRC
中失敗的大量轉移 ID,請記下「Google Cloud Key Name」欄位的值。輸入交易
SM30
,然後開啟資料表/GOOG/CLIENT_KEY
。針對您在先前步驟中記下的「Google Cloud 金鑰名稱」值,請記下「服務帳戶名稱」欄位指定的值。
前往 Google Cloud 控制台的「Identity and Access Management」(身分與存取權管理) 服務帳戶頁面。
選取您在先前步驟中記下的服務帳戶。
請確認服務帳戶具備 BigQuery Toolkit for SAP 存取 BigQuery 時所需的 IAM 角色,如「設定驗證」一文所述。
重新執行複製作業。
/GOOG/BQTR: 404 - Not Found
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: 404 - Not
Found
。
原因:在 ABAP SDK for Google Cloud 用於連線至 Google Cloud API 的 RFC 目的地中,路徑前置字元不正確。
解決方法:如要解決這個問題,請完成下列步驟:
在 SAP GUI 中,輸入
/GOOG/BQTR_SETTINGS
交易,並在前面加上/n
:/n/GOOG/BQTR_SETTINGS
針對交易
LTRC
中失敗的大量轉移 ID,請記下「Google Cloud Key Name」欄位的值。輸入交易
SM30
,然後開啟資料表/GOOG/SERVIC_MAP
。針對您在上一個步驟中記下的「Google Cloud 金鑰名稱」值,請記下 RFC 目的地名稱。
輸入交易
SM59
,然後完成下列步驟:- 針對連線至 BigQuery 的 RFC 目的地,請確認「路徑前置字元」欄位值為
/bigquery/v2/
。 - 針對連線至 IAM 的 RFC 目的地,請確認「路徑前置字元」欄位值為
/v1/
。
- 針對連線至 BigQuery 的 RFC 目的地,請確認「路徑前置字元」欄位值為
重新執行複製作業。
/GOOG/BQTR: 404 - Table PROJECT_ID:DATASET_NAME.TABLE_NAME not found
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: 404 -
Table PROJECT_ID:DATASET_NAME.TABLE_NAME not
found
。
原因:在 ABAP 版 Google Cloud SDK 用於連線至 Google Cloud API 的 RFC 目的地中,您為「目標主機」欄位指定的值與 Cloud DNS 中的任何 DNS 名稱都不相符。
解決方法:如要解決這個問題,請完成下列步驟:
在 SAP GUI 中,輸入交易代碼
/GOOG/BQTR_SETTINGS
。輸入收到這項錯誤訊息的大量轉移金鑰。
按一下「執行」圖示。記下「Google Cloud Key Name」(Google Cloud 金鑰名稱) 欄中的值。
輸入交易
SM30
,然後在顯示模式中開啟資料表/GOOG/CLIENT_KEY
。使用您在上一個步驟中記下的「Google Cloud 金鑰名稱」,搜尋
/GOOG/SERVIC_MAP
表格,然後記下指定的 RFC 目的地名稱。輸入交易代碼
SM59
。針對用於連線至 BigQuery 和 IAM API 的 RFC 目的地,請記下為「目標主機」欄位指定的值。
前往 Google Cloud 控制台的「Network services Cloud DNS」(網路服務 Cloud DNS) 頁面。
按一下包含 Private Service Connect 端點 DNS 記錄的私人區域,您已建立這些端點,允許 BigQuery Toolkit for SAP 私下連線至 BigQuery 和 IAM API。
請確認您在先前步驟中記下的每個目標主機值,都有相符的「DNS name」(DNS 名稱)。
重新執行複製作業。
/GOOG/BQTR: 404 - Not Found Requested entity was not found
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: 404 - Not Found Requested entity was not found
。
原因:在 Google Cloud上執行的工作負載中,用戶端金鑰表格 /GOOG/CLIENT_KEY
中使用的服務帳戶無效。
解決方法:如要解決這個問題,請完成下列步驟:
在 SAP GUI 中,輸入
/GOOG/BQTR_SETTINGS
交易,並在前面加上/n
:/n/GOOG/BQTR_SETTINGS
輸入收到這項錯誤訊息的大量轉移金鑰。
按一下「執行」圖示。記下「Google Cloud Key Name」(Google Cloud 金鑰名稱) 欄中的值。
輸入交易
SM30
,然後開啟資料表/GOOG/CLIENT_KEY
。在「服務帳戶名稱」欄位中,請確認指定的值是為 BigQuery Toolkit for SAP 建立的服務帳戶電子郵件地址。
重新執行複製作業。
/GOOG/BQTR: 413 - Request Entity Too Large
問題:資料轉移作業失敗,並顯示錯誤訊息 /GOOG/BQTR: 413 - Request
Entity Too Large
。
原因:如果 BigQuery Toolkit for SAP 傳送的區塊位元組大小,超過 BigQuery 接受的 HTTP 要求位元組大小上限,就可能發生這個問題。如果資料表記錄的大小或記錄所含資料量,導致區塊的位元組大小超出 BigQuery 限制,就會發生這種情況。
解決方法:縮減 BigQuery Toolkit for SAP 為資料表傳送的區塊大小。您可以執行交易 /GOOG/BQTR_SETTINGS
來調整區塊大小,也可以啟用動態區塊大小,自動調整區塊大小。如需詳細資訊,請參閱:
/GOOG/BQTR: 404 - Not found: Dataset DATASET_NAME
問題:嘗試驗證 Google Cloud 安全性或將資料載入 BigQuery 資料表時,您會收到 /GOOG/BQTR: 404 - Not found: Dataset DATASET_NAME
訊息。
原因:這個問題可能是由以下情況造成:
- 尚未建立 BigQuery 資料集。
- 大量轉移設定中未正確指定資料集名稱。
- 您必須啟用 BigQuery 資料移轉模組中的複製設定。
解決方法:請嘗試下列解決方法:
- 確認資料集已在 BigQuery 中建立。
- 確認大量移轉設定中的資料集名稱,與 BigQuery 中的資料集名稱相同。
/GOOG/BQTR : Unable to interpret VALUE as a BOOLEAN
問題:記錄載入或複製失敗,並顯示訊息「/GOOG/BQTR : Unable to interpret VALUE as a BOOLEAN
」。
原因:來源資料表中的欄位對應至 BigQuery 資料類型 BOOLEAN
,但來源欄位中的資料無法解析為布林值,因此發生這個問題。
解決方法:如要解決這個問題,請使用交易 /GOOG/BQTR_SETTINGS
變更來源欄位對應的資料類型,或是移除資料類型對應並接受預設資料類型。
/GOOG/BQTR: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS
問題:記錄載入或複製失敗,並顯示訊息「/GOOG/BQTR: Failed to convert field SAP_FIELD_NAME value
to field BIGQUERY_FIELD_NAME: ERROR_DETAILS
」。
原因:來源欄位含有無效值,或是來源欄位對應至 BigQuery 資料型別,但這並非來源欄位所含資料的有效對應。
解決方法:如要解決這個問題,請使用交易 /GOOG/BQTR_SETTINGS
變更來源欄位對應的資料類型,或移除資料類型對應,並接受資料類型的預設對應。
/GOOG/BQTR: DESCRIPTION_OF_ISSUE error occurred in chunk ranging START_INDEX_OF_FAILED_CHUNK - END_INDEX_OF_FAILED_CHUNK
問題:區塊的複製作業失敗,並顯示錯誤訊息「/GOOG/BQTR: DESCRIPTION_OF_ISSUE error occurred in chunk
ranging START_INDEX_OF_FAILED_CHUNK - END_INDEX_OF_FAILED_CHUNK
」。
原因:這可能有多個原因,包括 Invalid JSON Payload
、Quota Exceeded
、Request Entity Too Large
或 HTTP Communication Failure
。系統會顯示無法複製到 BigQuery 的區塊錯誤訊息,以及該區塊的開始和結束索引。
如果未在交易 BREAK
中設定 /GOOG/BQTR_SETTINGS
標記,系統就會顯示這則錯誤訊息。如果未設定 BREAK
標記,即使發生錯誤,BigQuery Toolkit for SAP 仍會繼續傳送下一個區塊,將記錄傳送至 BigQuery。
解決方法: 請嘗試下列解決方法:
- 如遇
Quota Exceeded
、Request Entity Too Large
或HTTP Communication Failure
問題,請按照 /GOOG/BQTR:413 - 要求實體過大的疑難排解步驟操作。 - 停止目前的載入作業、從 BigQuery 刪除目標資料表,然後重新啟動載入作業。
- 如要停止將資料傳送至 BigQuery,並在遇到含有錯誤的區塊時終止複製作業,請設定
BREAK
旗標 (建議用於正式環境)。
如要瞭解如何設定 BREAK
旗標,請參閱「指定資料表建立和其他一般屬性」。
向社群尋求支援
在 Cloud 論壇上向社群提問及討論 BigQuery Toolkit for SAP。
取得支援
Google Cloud 提供支援,協助解決與安裝、設定、操作及維護 BigQuery Toolkit for SAP 相關的問題。
如果問題源自 SAP 管理的元件,例如 Operational Data Provisioning (ODP)、Data Migration Server (DMIS)、Core Data Services (CDS)、Internet Communication Manager (ICM) 或第三方軟體, Google Cloud 客戶服務 Google Cloud 會盡力找出根本原因。如要解決這些問題,請與相關供應商或支援服務供應商聯絡。
如需協助解決 BigQuery Toolkit for SAP 的問題,請收集所有可用的診斷資訊,然後與 Cloud Customer Care 聯絡。
如要進一步瞭解如何與 Cloud Customer Care 聯絡,請參閱「取得 SAP 支援 Google Cloud」。