このドキュメントでは、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 は次の場合にエラー メッセージを生成します。
- 文字列が指定されているフィールドの型が
DATE
、INTEGER
、BOOLEAN
のいずれかである。 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 へのアクセスに必要な権限がありません。
解決策: この問題を解決するには、次の操作を行います。
SAP GUI で、
/n
で始まる/GOOG/BQTR_SETTINGS
トランザクションを入力します。/n/GOOG/BQTR_SETTINGS
トランザクション
LTRC
で失敗した一括転送 ID について、Google Cloud Key Name フィールドの値をメモします。トランザクション
SM30
を入力してから、テーブル/GOOG/CLIENT_KEY
を開きます。前の手順でメモした Google Cloud Key Name の値について、[Service Account Name] フィールドに指定された値をメモします。
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 APs への接続に使用する RFC 宛先で、正しいパス接頭辞が指定されていません。
解決策: この問題を解決するには、次の操作を行います。
SAP GUI で、
/n
で始まる/GOOG/BQTR_SETTINGS
トランザクションを入力します。/n/GOOG/BQTR_SETTINGS
トランザクション
LTRC
で失敗した一括転送 ID について、Google Cloud Key Name フィールドの値をメモします。トランザクション
SM30
を入力してから、テーブル/GOOG/SERVIC_MAP
を開きます。前の手順でメモした Google Cloud Key Name の値について、RFC 宛先名をメモします。
トランザクション
SM59
を入力し、次の手順を完了します。- BigQuery に接続する RFC 宛先について、[Path Prefix] フィールドの値が
/bigquery/v2/
であることを確認します。 - IAM に接続する RFC 宛先について、[Path Prefix] フィールドの値が
/v1/
であることを確認します。
- BigQuery に接続する RFC 宛先について、[Path Prefix] フィールドの値が
レプリケーションを再実行します。
/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 が Google Cloud API への接続で使用する RFC 宛先で、[ターゲット ホスト] フィールドに指定した値が、Cloud DNS のいずれの DNS 名とも一致しません。
解決策: この問題を解決するには、次の操作を行います。
SAP GUI で、トランザクション コード
/GOOG/BQTR_SETTINGS
を入力します。このエラーが発生した一括転送キーを入力します。
[Execute] アイコンをクリックします。[Google Cloud キー名] 列の値をメモします。
トランザクション
SM30
を入力してから、表示モードでテーブル/GOOG/CLIENT_KEY
を開きます。前のステップでメモした Google Cloud キー名を使用してテーブル
/GOOG/SERVIC_MAP
を検索し、指定された RFC 宛先名をメモします。トランザクション コード
SM59
を入力します。BigQuery と IAM API への接続に使用する RFC 宛先について、[Target Host] フィールドの値をメモします。
Google Cloud コンソールで、ネットワーク サービスの [Cloud DNS] ページに移動します。
BigQuery Toolkit for SAP が BigQuery と IAM API にプライベート接続できるように作成した Private Service Connect エンドポイントの DNS レコードを含む限定公開ゾーンをクリックします。
前の手順でメモしたターゲット ホストの値ごとに、一致する DNS 名がある 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 で、
/n
で始まる/GOOG/BQTR_SETTINGS
トランザクションを入力します。/n/GOOG/BQTR_SETTINGS
このエラーが発生した一括転送キーを入力します。
[Execute] アイコンをクリックします。[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 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 Payload
、Quota Exceeded
、Request Entity Too Large
、HTTP Communication Failure
など、複数の原因が考えられます。BigQuery へのレプリケーションに失敗したチャンクのエラー メッセージが、チャンクの開始インデックスと終了インデックスとともに表示されます。
このエラー メッセージは、トランザクション /GOOG/BQTR_SETTINGS
で BREAK
フラグを設定していない場合に表示されます。BREAK
フラグが設定されていない場合、BigQuery Toolkit for SAP は、エラーが発生した場合でも次のチャンクを送信して、BigQuery へのレコードの送信を継続します。
解決策: 次の解決策を試します。
Quota Exceeded
、Request Entity Too Large
、HTTP 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 カスタマーケアへのお問い合わせ方法については、 Google Cloudでの SAP に関するサポートを利用するをご覧ください。