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

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

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

一括転送キーと、BigQuery Data Transfer 構成で構成されたディクショナリ オブジェクトの名前を渡して、BigQuery データ読み込みクラス /GOOG/CL_BQTR_DATA_LOAD をインスタンス化します。

データを BigQuery に送信するには、クラス /GOOG/CL_BQTR_DATA_LOADREPLICATE_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: テーブル、ディクショナリ ビュー、CDS ビューなどの SAP ディクショナリ オブジェクトの名前。
  • 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 のインストール、構成、運用、メンテナンスに関連する問題や質問に対応します。ただし、サポートはツールキット自体に限定されます。

Google Cloud は、ネットワーク インフラストラクチャ、データベース、オペレーティング システム、サードパーティ ソフトウェアなどの他の環境コンポーネントはサポートしていません。BigQuery Toolkit for SAP 以外の環境コンポーネントに関する問題については、適切なベンダーまたはサポート プロバイダにお問い合わせください。

SAP が提供する機能(Operational Data Provisioning(ODP)や SAP Landscape Transformation(SLT)など)については、SAP サポートにお問い合わせください。

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

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