BigQuery Toolkit for SAP のトラブルシューティング

このドキュメントでは、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 Data Transfer モジュールで維持されません。

解決策: この問題を解決するには、トランザクション コード /GOOG/BQTR_SETTINGS を使用して一括転送キーを維持します。詳細については、BigQuery Data Transfer モジュールを構成するをご覧ください。

/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 は、特定のデータソースのターゲット テーブル定義を作成できません。

解決策: この問題を解決するには、入力ソースが 1 つ以上のフィールドを持つ有効な辞書オブジェクトであることを確認します。

/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 Data Transfer モジュールが 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 は次の場合にエラー メッセージを生成します。
    • 文字列が指定されているフィールドの型が DATEINTEGERBOOLEAN のいずれかである。
    • DATE 型のフィールドに無効な日付(00/00/0000)が指定されている。
  • トランザクション /GOOG/BQTR_SETTINGS のフィールド マッピングに指定されているターゲットのデータ型が正しくない。

BigQuery は、無効なデータが指定されているフィールドを含むレコードごとにエラー メッセージを発行します。

解決策: エラー メッセージ DESCRIPTION_OF_INVALID_DATA を分析して、無効なデータの原因を特定します。無効なデータが指定されているフィールドを含むレコードを特定するには、RECORD_KEYS を使用します。これには、レコードの最初の 5 つのフィールドの内容が含まれます。テーブルのフィールドが 5 つ以下の場合、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 ワークロードについて、テーブル /GOOG/CLIENT_KEY で、指定されたサービス アカウントに BigQuery API へのアクセスに必要な権限がありません。

解決策: この問題を解決するには、次の手順を完了します。

  1. SAP GUI で、/n で始まる /GOOG/BQTR_SETTINGS トランザクションを入力します。

    /n/GOOG/BQTR_SETTINGS
  2. トランザクション LTRC で失敗した一括転送 ID について、Google Cloud Key Name フィールドの値をメモします。

  3. トランザクション SM30 を入力してから、テーブル /GOOG/CLIENT_KEY を開きます。

  4. 前の手順でメモした Google Cloud Key Name の値について、[Service Account Name] フィールドに指定された値をメモします。

  5. Google Cloud コンソールで、Identity and Access Management の [サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  6. 前の手順でメモしたサービス アカウントを選択します。

  7. 認証を設定するの説明のとおりに、BigQuery Toolkit for SAP が BigQuery にアクセスするために必要な IAM ロールがサービス アカウントにあることを確認します。

  8. レプリケーションを再実行します。

/GOOG/BQTR: 404 - Not Found

問題: エラー メッセージ /GOOG/BQTR: 404 - Not Found が表示されてデータ転送が失敗する。

原因: ABAP SDK for Google Cloud が API への接続に使用する RFC 宛先で、パス プレフィックスが無効です。 Google Cloud

解決策: この問題を解決するには、次の手順を完了します。

  1. SAP GUI で、/n で始まる /GOOG/BQTR_SETTINGS トランザクションを入力します。

    /n/GOOG/BQTR_SETTINGS
  2. トランザクション LTRC で失敗した一括転送 ID について、Google Cloud Key Name フィールドの値をメモします。

  3. トランザクション SM30 を入力してから、テーブル /GOOG/SERVIC_MAP を開きます。

  4. 前の手順でメモした Google Cloud Key Name の値について、RFC 宛先名をメモします。

  5. トランザクション SM59 を入力し、次の手順を完了します。

    • BigQuery に接続する RFC 宛先について、[Path Prefix] フィールドの値が /bigquery/v2/ であることを確認します。
    • IAM に接続する RFC 宛先について、[Path Prefix] フィールドの値が /v1/ であることを確認します。
  6. レプリケーションを再実行します。

/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 SDK for Google Cloud が API への接続に使用する RFC 宛先で、[Target Host] フィールドに指定した値が、Cloud DNS のいずれの DNS 名とも一致しません。 Google Cloud

解決策: この問題を解決するには、次の手順を完了します。

  1. SAP GUI で、トランザクション コード /GOOG/BQTR_SETTINGS を入力します。

  2. このエラーが発生した一括転送キーを入力します。

  3. [Execute] アイコンをクリックします。[Google Cloud Key Name] 列の値をメモします。

  4. トランザクション SM30 を入力してから、表示モードでテーブル /GOOG/CLIENT_KEY を開きます。

  5. 前の手順でメモした Google Cloud Key Name を使用してテーブル /GOOG/SERVIC_MAP を検索し、指定された RFC 宛先名をメモします。

  6. トランザクション コード SM59 を入力します。

  7. BigQuery と IAM API への接続に使用する RFC 宛先について、[Target Host] フィールドの値をメモします。

  8. Google Cloud コンソールで、ネットワーク サービスの [Cloud DNS] ページに移動します。

    [Cloud DNS] に移動

  9. BigQuery Toolkit for SAP が BigQuery と IAM API にプライベート接続できるように作成した Private Service Connect エンドポイントの DNS レコードを含む限定公開ゾーンをクリックします。

  10. 前の手順でメモしたターゲット ホストの値ごとに、一致する DNS 名がある DNS レコードがあることを確認します。

  11. レプリケーションを再実行します。

/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 で使用されているサービス アカウントが無効です。

解決策: この問題を解決するには、次の手順を完了します。

  1. SAP GUI で、/n で始まる /GOOG/BQTR_SETTINGS トランザクションを入力します。

    /n/GOOG/BQTR_SETTINGS
  2. このエラーが発生した一括転送キーを入力します。

  3. [Execute] アイコンをクリックします。[Google Cloud Key Name] 列の値をメモします。

  4. トランザクション SM30 を入力してから、テーブル /GOOG/CLIENT_KEY を開きます。

  5. [Service Account Name] フィールドに、BigQuery Toolkit for SAP 用に作成されたサービス アカウントのメールアドレスが指定されていることを確認します。

  6. レプリケーションを再実行します。

/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

問題: セキュリティの検証または BigQuery テーブルへのデータの読み込みを試行すると、/GOOG/BQTR: 404 - Not found: Dataset DATASET_NAME というメッセージが表示される。 Google Cloud

原因: この問題は、次のような状況で発生する可能性があります。

  • BigQuery データセットがまだ作成されていない。
  • データセット名が、一括転送の構成で正しく指定されていない。
  • BigQuery Data Transfer モジュールのレプリケーション構成を有効にする必要があります。

解決策: 次の解決策を試します。

  • 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 PayloadQuota ExceededRequest Entity Too LargeHTTP Communication Failure など、複数の原因が考えられます。BigQuery へのレプリケーションに失敗したチャンクのエラー メッセージが、チャンクの開始インデックスと終了インデックスとともに表示されます。

このエラー メッセージは、トランザクション /GOOG/BQTR_SETTINGSBREAK フラグを設定していない場合に表示されます。BREAK フラグが設定されていない場合、BigQuery Toolkit for SAP は、エラーが発生した場合でも次のチャンクを送信して、BigQuery にレコードを送信します。

解決策: 次の解決策を試します。

  • Quota ExceededRequest Entity Too LargeHTTP Communication Failure の問題の場合は、/GOOG/BQTR: 413 - Request Entity Too Large のトラブルシューティングの手順に沿って対応します。
  • 現在の読み込みを停止し、BigQuery からターゲット テーブルを削除してから、新しい読み込みを再開します。
  • チャンクにエラーが発生したときに、BigQuery へのデータの送信を停止してレプリケーション ジョブを停止するには、本番環境で推奨されている BREAK フラグを設定します。

BREAK フラグの構成については、テーブル作成とその他の一般的な属性を指定するをご覧ください。

コミュニティのサポートを利用する

Cloud フォーラムのコミュニティで BigQuery Toolkit for SAP について質問し、ディスカッションに参加する。

サポートを受ける

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 の問題を解決する必要がある場合は、入手可能な診断情報をすべて収集し、Cloud カスタマーケアにお問い合わせください。

Cloud カスタマーケアへのお問い合わせの詳細については、SAP に関するサポートを利用する Google Cloudをご覧ください。