バージョン 2.0: BigQuery Connector for SAP トラブルシューティング ガイド

バージョン 2.0 と 2.1 の BigQuery Connector for SAP に関する問題のトラブルシューティングを行う場合は、SAP LT Replication Server アプリケーションのロギングと Google Cloud のログの両方を使用して、エラーとログ メッセージを確認します。

BigQuery Connector for SAP は、すべてのエラーを標準の SAP LT Replication Server アプリケーション ログに送信します。

また、SAP LT Replication Server デバッグを使用して問題を特定することもできます。

トラブルシューティングの概要

BigQuery Connector for SAP の問題をトラブルシューティングする場合、調査する問題の領域や範囲に応じて注意を要する点がいくつかあります。

  • ネットワーク、ハードウェア、オペレーティング システムなどのインフラストラクチャ。
  • ソースサーバーや SAP LT Replication Server などの SAP ソフトウェア。
  • BigQuery Connector for SAP。
  • BigQuery(BigQuery API とターゲット テーブルを含む)。

適切なチームが参加する

問題のトラブルシューティングを行う場合は、まず、前述のどの領域で問題が発生しているのかと、その範囲を特定する必要があります。

問題を解決するために、Basis 管理者、SAP LT Replication Server 管理者、DBA、Google Cloud セキュリティ管理者など、複数のチームの協力が必要になることがあります。

適切なチームとスキルを早期に確保することで、問題をより迅速に解決できます。

根本原因を特定する

まず、問題の根本原因を突き止める必要があります。根本原因と思われる事象が他の場所で発生している根本原因の症状にすぎないということもあります。

SAP システムは緊密に統合されていますが、複数の異なる場所にあるファイルにログとトレースを書き込むことができます。トラブルシューティングを行う場合は、調査対象として適切なログとトレース ファイルを特定する必要があります。

ソフトウェアの要件と前提条件を確認する

すべてのシステム ソフトウェアが、必要な最小バージョンで動作し、すべての BigQuery Connector for SAP の前提条件を満たしていることを確認します。

BigQuery Connector for SAP のインストールの前提条件については、次をご覧ください。

  • SAP LT Replication Server が Compute Engine VM で実行されている場合は、前提条件をご覧ください。

  • SAP LT Replication Server が Google Cloud の外部のホストで実行されている場合は、前提条件をご覧ください。

BigQuery Connector for SAP のソフトウェア要件については、ソフトウェア要件をご覧ください。

古い ECC ソフトウェアを使用している場合は、SAP LT Replication Server のバージョンが ECC バージョンと互換性があることを確認します。詳細については、SAP Note 2577774 - Version compatibility for source and target systems - SLT をご覧ください。

SAP のサポート ドキュメントを読む

SAP ユーザー アカウントがある場合は、SAP ONE Support Launchpad で入手できる SAP ノートと SAP ナレッジベース記事を参照することで、多くの SAP ソフトウェアの問題を解決できます。

ロギング

BigQuery Connector for SAP は、ログ メッセージを SAP LT Replication Server に送信します。これらのメッセージは、SAP LT Replication Server アプリケーション ログで確認できます。

このメッセージには、BigQuery Connector for SAP が BigQuery API から受信するメッセージが含まれています。

一般的な BigQuery ログ メッセージは Google Cloud コンソールで確認できます。

SAP LT Replication Server アプリケーション ログ

すべてのエラー メッセージは、標準の SAP LT Replication Server アプリケーション ログに保存されます。アプリケーション ログを確認して問題の根本原因を分析し、トラブルシューティングを行います。

トランザクション LTRC を実行し、構成を開いて [Application Logs] を選択すると、SAP LT Replication Server 構成に固有のアプリケーション ログを表示できます。

ログが表示されたら、テーブルの行を選択します。ボタンをクリックすると、エラー メッセージが表示されます。レプリケーションの [Application Logs] タブをクリックすると、レプリケーションに関連するランタイム ログ メッセージをフィルタリングできます。

BigQuery Connector for SAP によって生成されたメッセージ

BigQuery にレコードが送信される前に BigQuery Connector for SAP で発生したエラーには、接頭辞 /GOOG/SLT が付いています。

BigQuery API から返されたエラーには、/GOOG/MSG という接頭辞が付いています。これには HTTP エラーが含まれます。

どちらの接頭辞も付いていないエラーは、SAP LT Replication Server によって発行されています。

BigQuery ログ

BigQuery は、さまざまなログエントリを Cloud Logging に書き込みます。これは、Google Cloud コンソールで確認できます。

BigQuery ログエントリを表示するには:

  1. Google Cloud コンソールで Logging を開きます。

    [ログ エクスプローラ] に移動

  2. クエリエディタで BigQuery リソースを指定します。例:

    resource.type="bigquery_dataset"

BigQuery ログの詳細については、ログをご覧ください。

HTTP トレース

エラーのトラブルシューティングでは、SMICM または ST05 のトランザクションで HTTP トレースを有効にできます。

パフォーマンスへの影響を抑えるため、HTTP トレースを完了したら、可能な限り早い段階で無効にしてください。

デバッグ

必要な認可を取得している場合は、BigQuery Connector for SAP のビジネス アドイン(BAdI)コードをデバッグできます。

BAdI コードをデバッグするには:

  1. BAdI コードのデバッグに必要な SAP の認可をまだ取得していない場合は、SAP 管理者にリクエストしてください。

  2. SAP GUI のトランザクション エントリ フィールドに「/h」と入力し、Enter を押してデバッグを有効にします。

  3. [Settings] メニューで、[Change Debugger Profile / Settings] を選択します。

  4. [Debug Modes] で、[System Debugging] が選択されていることを確認します。

  5. 必要に応じて、コードに外部ブレークポイントを設定します。

モニタリング

SAP データソースからターゲット BigQuery テーブルへのデータパスに沿って、次のような複数のポイントをモニタリングできます。

  • インフラストラクチャ - ネットワーク、ハードウェア、オペレーティング システム
  • SAP データベース レイヤ
  • SAP アプリケーション レイヤ
  • BigQuery Connector for SAP
  • BigQuery

各ポイントでのモニタリングの詳細については、BigQuery Connector for SAP オペレーション ガイドをご覧ください。

データ調整

レコード数は、次の 3 つのポイントで確認できます。

  • ソーステーブル。
  • トランザクション LTRC 内の SAP LT Replication Server の負荷またはレプリケーションの統計情報
  • BigQuery ターゲット テーブル

Replication Validation ツールを使用すると、レコード数を確認して比較できます。また、SQL クエリを実行してレコードを自身で取得することもできます。

データ調整の詳細については、BigQuery Connector for SAP オペレーション ガイドをご覧ください。

構成に関する一般的な問題

このセクションでは、BigQuery Connector for SAP の初期設定と構成中に発生する可能性のある一般的な問題の解決策について説明します。

データベースのデータ型に対する SAP LT Replication Server のサポート

SAP ソフトウェアのバージョンによっては、SAP LT Replication Server がソース データベース内の一部のデータ型をサポートしていない場合があります。詳細については、SAP Note 1605140 - SAP Landscape Transformation Replication Server(SLT)で重要な考慮事項をご覧ください。

問題: SAP LT Replication Server でアクセス トークンの OS コマンドが機能しない

問題: アクセス トークンを出力するオペレーティング システム(OS)コマンドを作成しましたが、SAP LT Replication Server で機能しない。

原因: この問題は複数の問題が原因で発生する可能性がありますが、OS コマンドに必要な環境変数が正しく構成されていないことが原因である可能性が最も高いと考えられます。

解決策: OS コマンドが正しく構成されていることを確認します。構成手順については、アクセス トークンを出力する OS コマンドを作成するをご覧ください。

printenv コマンドを OS(sidadm として)と SAP トランザクション SM69 の両方から実行して、出力を比較します。

トランザクション SM69 で返された変数が不完全な場合は、SAP LT Replication Server を再起動して変数を登録してください。

問題: /GOOG/MSG: 413 - Request Entity Too Large

問題: エラー メッセージ /GOOG/MSG: 413 - Request Entity Too Large が表示されてデータ転送が失敗する。

原因: この問題は、BigQuery Connector for SAP によって送信されたチャンクのバイトサイズが、BigQuery が受け入れる HTTP リクエストの最大バイトサイズを超えた場合に発生します。この問題は、テーブル レコードのサイズまたはレコードに含まれるデータの量が原因で、チャンクのバイトサイズが BigQuery の上限を超えた場合に発生する可能性があります。

解決策: BigQuery Connector for SAP によってテーブルに送信されるチャンクのサイズを縮小します。チャンクのサイズは、トランザクション /GOOG/SLT_SETTINGS を実行することで調整できます。

チャンクのサイズ設定の詳細については、BigQuery Connector for SAP のチャンクサイズをご覧ください。

問題: /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending

問題: エラー メッセージ /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending が表示されてデータ転送が失敗する。

原因: この問題は、接続またはネットワークの問題が原因で発生する可能性があります。

解決策: 接続を検証し、ネットワークが正しく設定され、エラーなしで実行され、輻輳していないことを確認します。

問題: /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving

問題: エラー メッセージ /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving が表示されてデータ転送が失敗する。

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

SSL handshake に失敗した

原因: SAP LT Replication Server ホストと BigQuery API エンドポイントの間で SSL handshake が失敗することで発生します。これは、TLS サーバーによって提示された証明書が、SAP LT Replication Server から提供されるターゲット ホスト名に対して無効である場合に発生します。オプションの TLS 拡張機能 SNI のクライアント側送信が NetWeaver カーネル上に実装されていないことが原因である可能性があります。

解決策: トランザクション SMICM で、戻りコード SSLERR_SERVER_CERT_MISMATCH を探します。戻りコード SSLERR_SERVER_CERT_MISMATCH が見つかった場合は、TLS 拡張機能 SNI の送信を有効にする必要があります。また、NetWeaver カーネルが、クライアント側でオプションの TLS 拡張 SNI の送信を実装していることを確認します。

TLS 拡張 SNI の送信を有効にするには、NetWeaver のカーネル バージョンに応じて、プロファイル パラメータ icm/HTTPS/client_sni_enabled または ssl/client_sni_enabledTRUE に設定します。SAP からの詳細情報については、以下をご覧ください。

チャンクのバイトサイズが、BigQuery が受け入れ可能な HTTP リクエストの最大バイトサイズを超えている

原因: BigQuery Connector for SAP によって送信されたチャンクのバイトサイズが、BigQuery で受け入れ可能な HTTP リクエストの最大バイトサイズを超えた場合に発生します。この問題は、テーブル レコードのサイズまたはレコードに含まれるデータの量が原因で、チャンクのバイトサイズが BigQuery の上限を超えた場合に発生する可能性があります。

解決策: BigQuery Connector for SAP によってこのテーブルに送信されるチャンクのサイズを縮小します。チャンクのサイズは、トランザクション /GOOG/SLT_SETTINGS を実行することで調整できます。詳細については、BigQuery Connector for SAP のチャンクサイズをご覧ください。

問題: /GOOG/MSG: 404 - Not found: Dataset DATASET_NAME

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

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

  • BigQuery データセットがまだ作成されていない。
  • データセット名が、一括転送の構成で正しく指定されていない。
  • SAP LT Replication Server のレプリケーション構成が有効になっていない。

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

  • BigQuery にデータセットが作成されていることを確認します。
  • 一括転送構成のデータセット名が BigQuery のデータセット名と一致していることを確認します。
  • LTRC トランザクションを実行し、レプリケーション構成を無効にして再度有効にします。

問題: Mass Transfer Key can not be found for Mass Transfer ID XXX

問題: エラー /GOOG/SLT: Mass Transfer Key can not be found for Mass Transfer ID XXX が表示される。

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

  • 指定された一括転送 ID に一括転送構成が存在しない。
  • 対応するレプリケーション構成がアクティブでない。

解決策: この問題を解決するには、次のいずれかを行います。

  • /GOOG/SLT_SETTINGS トランザクションを実行して、一括転送 ID が正しく指定されていることを確認します。
  • LTRC トランザクションを実行し、レプリケーション構成を無効にして再度有効にします。

問題: /GOOG/SLT : Unable to interpret VALUE as a BOOLEAN

問題: レコードの読み込みまたはレプリケーションが失敗し、/GOOG/SLT : Unable to interpret VALUE as a BOOLEAN というメッセージが表示される。

原因: この問題は、ソーステーブルのフィールドが BigQuery データ型 BOOLEAN にマッピングされているときに、ソース フィールドのデータがブール値に解決されない場合に発生します。

解決策: 問題を解決するには、トランザクション /GOOG/SLT_SETTINGS を使用して、ソース フィールドがマッピングされているデータ型を変更するか、データ型マッピングを削除してデフォルトのデータ型を受け入れます。

問題: /GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS

問題: レコードの読み込みまたはレプリケーションが失敗し、/GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS というメッセージが表示される。

原因: ソース フィールドに無効な値が含まれています。あるいは、ソース フィールドに含まれているデータに対して有効なマッピングではない BigQuery データ型にソース フィールドがマッピングされています。

解決策: この問題を解決するには、トランザクション /GOOG/SLT_SETTINGS を使用して、ソース フィールドがマッピングされているデータ型を変更するか、データ型マッピングを削除して、データ型のデフォルトのマッピングを受け入れます。

問題: /GOOG/MSG : Client key is not found in /GOOG/CLIENT_KEY table

問題: 読み込みまたはレプリケーションが開始せず、/GOOG/MSG: Client key is not found in /GOOG/CLIENT_KEY table というメッセージが表示される。

原因: クライアント キーが存在しないか、トランザクション /GOOG/SLT_SETTINGS の一括転送の構成で誤って指定されています。

解決策: この問題を解決するには、トランザクション SM30 を使用してクライアント キーを作成するか、トランザクション /GOOG/SLT_SETTINGS を使用して一括転送の構成でクライアント キー値の指定を修正します。

オペレーションに関する一般的な問題

このセクションでは、BigQuery Connector for SAP の初期設定後に発生する可能性がある一般的な問題の解決策について説明します。

問題: BigQuery の書き込み数が正しくない

問題: BigQuery に書き込まれるレコードの数が、SAP LT Replication Server のログに表示されるレコードの数よりも多くなっています。

原因: 複数の原因が考えられます。たとえば、一時的な接続の問題で SAP LT Replication Server がレコードを複数回送信している可能性があります。また、BigQuery テーブルが挿入のみを受け入れるため、ソース内の単一レコードに対する各変更がターゲット テーブルで個別のエントリとして挿入されている可能性もあります。

解決策: レコード数の違いが極端でなく、BigQuery のレコード数がソーステーブルのレコード数を下回らない場合、これは想定された動作であり、問題ではありません。

BigQuery のレコード数とソーステーブルのレコード数を正確に調整するには、レコード数の SQL クエリで説明されているように、BigQuery テーブルをクエリしてください。

この問題の原因として考えられるものについては、HANA 上の ABAP ソース / ターゲットの特別な考慮事項をご覧ください。

問題: /GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME

問題: エラー メッセージ /GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME. Please delete the table from BigQuery and try again. が表示される。

原因: 既存の BigQuery テーブルに次のいずれかの変更が行われています。

  • フィールドの削除
  • フィールド名の変更
  • フィールドのデータ型の変更
  • テーブルのパーティション タイプの変更

これらの変更を既存の BigQuery テーブルに適用することはできません。

解決策: 既存のテーブル内のいずれかのフィールド属性を変更する必要がある場合は、既存のテーブルを削除し、レコードを新しいテーブルに再度読み込む必要があります。

変更が誤っている場合は、SAP LT Replication Server の変更を元に戻します。

ターゲット BigQuery テーブルのフィールドとパーティションの構成方法については、BigQuery のレプリケーション構成をご覧ください。

問題: 無効なデータに関連するエラー メッセージ

問題: アプリケーション ログに次のようなエラー メッセージが記録されます。/GOOG/MSG/: DESCRIPTION_OF_INVALID_DATA error occurred in FIELD_NAME in record RECORD_KEYS

原因: 無効なデータを含むレコードがターゲット テーブルに挿入されると、BigQuery がこのエラー メッセージを発行します。データが無効になる理由には、次のようなものがあります。

  • 特定のレコードのフィールド内のデータが、BigQuery のデータ型と互換性がない。たとえば、BigQuery は次の場合にエラー メッセージを生成します。
    • 文字列が指定されているフィールドの型が DATEINTEGERBOOLEAN のいずれかである。
    • DATE 型のフィールドに無効な日付(00/00/0000)が指定されている。
  • トランザクション /GOOG/SLT_SETTINGS のフィールド マッピングに指定されているターゲットのデータ型が正しくない。

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

解決策: エラー メッセージ DESCRIPTION_OF_INVALID_DATA を分析して、無効なデータの原因を特定します。無効なデータが指定されているフィールドを含むレコードを特定するには、RECORD_KEYS を使用します。これには、レコードの最初の 5 つのフィールドの内容が含まれます。テーブルのフィールドが 5 つ以下の場合、RECORD_KEYS にはすべてのフィールドの内容が含まれます。

  • フィールド内のデータが BigQuery のデータ型と互換性がない場合は、ソーステーブルのデータを修正します。
  • データとデータ型の不一致が原因でエラーが発生した場合は、トランザクション /GOOG/SLT_SETTINGS を使用して適切なデータ型を指定します。データ型マッピングの詳細については、データ型マッピングをご覧ください。

サポートを受ける

レプリケーションと BigQuery Connector for SAP の問題を解決する必要がある場合は、入手可能な診断情報をすべて収集し、Cloud カスタマーケアにお問い合わせください。

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