如要將 SAP 資料複製到 BigQuery,請在 SAP 應用程式 (例如自訂 ABAP 程式、使用者結束、Business Add-Ins (BAdI) 和增強功能) 中使用資料載入類別 /GOOG/CL_BQTR_DATA_LOAD
。您的 SAP 應用程式需要將要複製的資料做為輸入內容傳遞至類別。
呼叫資料複製方法
您需要傳遞大量移轉作業鍵,以及在 BigQuery 資料移轉設定中設定的字典物件名稱,藉此例項化 BigQuery 資料載入類別 /GOOG/CL_BQTR_DATA_LOAD
。
如要將資料傳送至 BigQuery,請呼叫 /GOOG/CL_BQTR_DATA_LOAD
類別的 REPLICATE_DATA
方法。
DATA(lo_bq_data_load) =
NEW /GOOG/CL_BQTR_DATA_LOAD( IV_MASS_TR_KEY = 'MASS_TRANSFER_KEY'
IV_DATA_SOURCE = 'DATA_SOURCE'
IV_CDC_FRAMEWORK = 'CDC_FRAMEWORK'
IV_FLDNM_MANDT = 'MANDT_FIELDNAME'
IV_MANDT_VALUE = 'MANDT_VALUE'
).
"Write Logic to populate ITAB_DATA, WA_HEADER
"Replicate Data to BigQuery
lo_bq_data_load->replicate_data(
EXPORTING
it_content = ITAB_DATA
IS_HEADER_INFO = WA_HEADER
IMPORTING
ev_error_code = data(lv_error_code)
et_return = data(lt_return) ).
更改下列內容:
MASS_TRANSFER_KEY
:在 BigQuery 資料移轉設定中設定的大量移轉金鑰。DATA_SOURCE
:SAP 字典物件的名稱,例如資料表、字典檢視區塊或 CDS 檢視區塊。CDC_FRAMEWORK
:選用。呼叫程式使用的變更資料擷取 (CDC) 架構。支援的值為ODQ
和SLT
。BigQuery Toolkit for SAP 內建邏輯,可根據 CDC 架構判斷作業標記 (插入、更新和刪除)。詳情請參閱「記錄變更和計數查詢的額外欄位」。
當
CDC_FRAMEWORK
做為ODQ
傳遞時,BigQuery Toolkit for SAP 會在輸入中傳遞的酬載中取得資料欄ODQ_CHANGEMODE
的值:- 如果值 =
C
,則operation_flag
會設為I
。 - 如果值 =
U
,則operation_flag
會設為U
。 - 如果值 =
D
,則operation_flag
會設為D
。 - 其他值則會設為
L
。operation_flag
當
CDC_FRAMEWORK
做為SLT
傳遞時,BigQuery Toolkit for SAP 會從WA_HEADER
取得「OPERATION」資料欄的值:- 如果值 =
I
,則operation_flag
會設為I
。 - 如果值 =
U
,則operation_flag
會設為U
。 - 如果值 =
D
,則operation_flag
會設為D
。 - 其他值則會設為
L
。operation_flag
如果未傳遞
CDC_FRAMEWORK
或傳遞任何其他值,則operation_flag
會設為L
。- 如果值 =
MANDT_FIELDNAME
:選用。需要附加至 BigQuery 資料表定義的 SAP 用戶端欄位名稱。這項功能可用於 CDS 實體等 SAP 字典物件,這些物件的定義中沒有用戶端欄位,但您希望將該欄位新增至 BigQuery。MANDT_VALUE
:選用。需要在 BigQuery 中填入的 SAP 用戶端欄位值。只有在填入IV_FLDNM_MANDT
時,才能使用這個欄位。ITAB_DATA
:DATA_SOURCE
類型的內部資料表。您會將需要複製到 BigQuery 資料表的資料填入ITAB_DATA
。WA_HEADER
:平面結構,內含有關複製作業的標頭資訊。這項資訊用於判斷operation_flag
,但CDC_FRAMEWORK
是SLT
。
呼叫這個方法時,BigQuery 資料移轉模組會執行下列動作:
- 根據 BigQuery 資料移轉設定中維護的資料表和欄位設定,將 BigQuery 資料表定義與 SAP 字典物件定義同步。
- 根據 BigQuery 資料移轉設定中維護的欄位層級設定,將
ITAB_DATA
中填入的資料從 SAP 格式對應至 BigQuery 格式。如果未維護欄位層級設定,系統就會使用預設的資料對應規則。 - 呼叫 BigQuery API
InsertAllTabledata
方法,將資料載入目標 BigQuery 資料表。
如果所有步驟都順利完成,匯出參數 ev_error_code
會傳回 0
值。如果任何步驟發生錯誤,ev_error_code
會傳回非零值,且 et_return
中會填入相應的錯誤訊息。
應用程式開發人員可以處理錯誤,包括儲存錯誤以供日後分析,以及重試載入無法複製的記錄。
取得支援
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 的問題,請參閱「排解 BigQuery Toolkit for SAP 的問題」。
如需協助解決 ABAP SDK for Google Cloud 的問題,請按照下列步驟操作:
在 Cloud 論壇上向社群提問,並討論 ABAP SDK for Google Cloud。
收集所有可用的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。如要瞭解如何與 Customer Care 聯絡,請參閱「取得 SAP on Google Cloud支援服務」。