BigQuery Toolkit for SAP を使用した SAP データの BigQuery へのレプリケーション

SAP データを BigQuery にレプリケートするには、カスタム ABAP プログラム、ユーザー exit、ビジネス アドイン(BAdI)、拡張機能など、SAP アプリケーション内のデータ読み込みクラス /GOOG/CL_BQTR_DATA_LOAD を使用します。SAP アプリケーションは、複製するデータをクラスへの入力として渡す必要があります。

データ レプリケーション メソッドを呼び出す

一括転送キーと、BigQuery Data Transfer 構成で構成されたディクショナリ オブジェクトの名前を渡して、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 Transfer 構成で構成された一括転送キー。
  • DATA_SOURCE: SAP ディクショナリ オブジェクトの名前(テーブル、ディクショナリ ビュー、CDS ビューなど)。
  • CDC_FRAMEWORK: 省略可。呼び出し元のプログラムで使用される変更データ キャプチャ(CDC)フレームワーク。サポートされている値は、ODQSLT です。

    BigQuery Toolkit for SAP には、CDC フレームワークに基づいてオペレーション フラグ(挿入、更新、削除)を決定するロジックが組み込まれています。詳しくは、レコード変更とカウントクエリ用の追加フィールドをご覧ください。

    CDC_FRAMEWORKODQ として渡されると、BigQuery Toolkit for SAP は入力で渡されたペイロードの列 ODQ_CHANGEMODE の値を取得します。

    • 値が C の場合、operation_flagI に設定されます。
    • 値が U の場合、operation_flagU に設定されます。
    • 値が D の場合、operation_flagD に設定されます。
    • 他のすべての値の場合、operation_flagL に設定されます。

    CDC_FRAMEWORKSLT として渡されると、BigQuery Toolkit for SAP は WA_HEADER から列の値「OPERATION」を取得します。

    • 値が I の場合、operation_flagI に設定されます。
    • 値が U の場合、operation_flagU に設定されます。
    • 値が D の場合、operation_flagD に設定されます。
    • 他のすべての値の場合、operation_flagL に設定されます。

    CDC_FRAMEWORK が渡されない場合、または他の値として渡された場合、operation_flagL に設定されます。

  • MANDT_FIELDNAME: 省略可。BigQuery テーブル定義に追加する必要がある SAP クライアント フィールドの名前。これは、定義にクライアント フィールドがないが、BigQuery にフィールドを追加する必要がある CDS エンティティなどの SAP ディクショナリ オブジェクトに使用できます。

  • MANDT_VALUE: 省略可。BigQuery に入力する必要がある SAP クライアント フィールドの値。これは、IV_FLDNM_MANDT にも値が入力されている場合にのみ使用できます。

  • ITAB_DATA: DATA_SOURCE タイプの内部テーブル。ITAB_DATA には、BigQuery テーブルに複製する必要があるデータを入力します。

  • WA_HEADER: レプリケーションに関するヘッダー情報が含まれるフラットな構造。これは、CDC_FRAMEWORKSLT の場合に operation_flag を決定するために使用されます。

このメソッドを呼び出すと、BigQuery Data Transfer モジュールは次のアクションを実行します。

  • BigQuery Data Transfer 構成で維持されているテーブルとフィールドの設定に基づいて、BigQuery テーブル定義を SAP ディクショナリ オブジェクト定義と同期します。
  • BigQuery Data Transfer 構成で維持されているフィールド レベルの設定に基づいて、ITAB_DATA に入力されたデータを SAP 形式から BigQuery 形式にマッピングします。フィールド レベルの設定が維持されていない場合、デフォルトのデータ マッピング ルールが使用されます。
  • BigQuery API InsertAllTabledata メソッドを呼び出して、ターゲット BigQuery テーブルにデータを読み込みます。

すべてのステップが成功すると、エクスポート パラメータ ev_error_code は値 0 を返します。いずれかのステップでエラーが発生した場合、ev_error_code はゼロ以外の値を返します。対応するエラー メッセージが et_return に入力されます。

アプリケーション デベロッパーは、後で分析するためにエラーを保存したり、レプリケーションに失敗したレコードの読み込みを再試行したりするなど、エラーを処理できます。

サポートを受ける

Google Cloud では、BigQuery Toolkit for SAP のインストール、構成、運用、メンテナンスに関連する問題や質問に対応しています。

Operational Data Provisioning(ODP)、Data Migration Server(DMIS)、Core Data Services(CDS)、Internet Communication Manager(ICM)、サードパーティ ソフトウェアといった SAP 管理のコンポーネントに起因する問題については、 Google Cloud カスタマーケアが根本原因の特定に最善を尽くします。これらの問題を解決するには、それぞれのベンダーまたはサポート プロバイダにお問い合わせください。

BigQuery Toolkit for SAP に関する問題のトラブルシューティングについては、BigQuery Toolkit for SAP のトラブルシューティングをご覧ください。

ABAP SDK for Google Cloud の問題を解決するには、次の操作を行います。