転送構成のトラブルシューティング

このドキュメントは、BigQuery Data Transfer Service の転送を設定する際に発生する一般的な問題のトラブルシューティングに役立つ情報を提供します。考えられるすべてのエラー メッセージや問題がこのドキュメントに記載されているわけではありません。

このドキュメントに記載されていない問題が発生している場合は、サポートをご利用ください。

Cloud カスタマーケアに問い合わせる前に、転送構成と転送実行の詳細を取得してください。これらの詳細を取得する方法については、転送の詳細を取得する転送実行の詳細とログメッセージを表示するをご覧ください。

エラーを確認する

初期転送の実行が失敗した場合は、実行履歴の詳細を調べることができます。このドキュメントを使用することで、実行履歴にリストされるエラーを適切な解決策の特定に利用できます。

ログ エクスプローラを使用して、特定の転送ジョブのエラー メッセージを表示することもできます。次のログ エクスプローラ フィルタは、特定の転送構成ジョブに関する情報とエラー メッセージを返します。

resource.type="bigquery_dts_config"
labels.run_id="RUN_ID"
resource.labels.config_id="CONFIG_ID"

次のように置き換えます。

  • RUN_ID: 特定のジョブ実行の ID 番号
  • CONFIG_ID: 転送構成ジョブの ID 番号

カスタマーケアに問い合わせる前に、実行履歴またはログ エクスプローラからエラー メッセージを含むすべての関連情報を収集してください。

イベント ドリブン転送を使用している場合、イベント ドリブン転送構成で転送実行がトリガーされないことがあります。エラー メッセージは、[実行履歴] ページまたは [構成] ページの上部に表示されます。

一般的な問題

一般的な転送の問題を診断する場合は、次の点を確認してください。

  • 該当する転送タイプのドキュメント ページの「始める前に」のセクションにあるすべての手順を完了していること。
  • 転送構成のプロパティが正しく設定されていること。
  • 転送の作成に使用されたユーザー アカウントに、基になるリソースへのアクセス権が付与されていること。

転送構成が適切で、適切な権限が与えられている場合は、以下に示すよくある問題の解決方法を参照してください。

エラー: An unexpected issue was encountered. If this issue persists, please contact customer support.
解決策: このエラーは、通常、一時的な停止または BigQuery 内の問題を示します。問題が解決するまで約 2 時間待ちます。問題が解決しない場合は、サポートをご依頼ください。
エラー: Quota Exceeded.

解決策: 転送は、BigQuery 読み込みジョブの割り当ての対象となります。割り当てを増やす必要がある場合は、 Cloud de Confiance by S3NS 営業担当者にお問い合わせください。詳細については、割り当てと上限をご覧ください。

Cloud Billing のエクスポートを BigQuery に読み込むと、Quota Exceeded エラーが発生することがあります。Cloud Billing のエクスポート テーブルと、BigQuery Data Transfer Service サービスによって作成された宛先の BigQuery テーブルは、どちらもパーティショニングされています。このような BigQuery Data Transfer Service ジョブの設定中に [上書き] オプションを選択すると、エクスポートされるデータの量によっては割り当てエラーが発生することがあります。割り当てのトラブルシューティングについては、割り当てのトラブルシューティングとエラーの制限をご覧ください。

エラーが Cloud Billing エクスポートの BigQuery Data Transfer Service ジョブに起因する場合は、個々の Cloud Billing Export テーブルがパーティショニングされているため、BigQuery Data Transfer Service によって作成されたターゲット テーブルも分割されることに注意してください。このようなデータ転送ジョブが設定されているときに [上書き] オプションを選択すると、請求先アカウントの経過期間によっては(DML)割り当てエラーが発生します。割り当てのトラブルシューティングについては、割り当てのトラブルシューティングとエラーの制限をご覧ください。

エラー: The caller does not have permission.

解決策: Cloud de Confiance コンソールのログイン済みアカウントが、転送を作成する際に BigQuery Data Transfer Service 用に選択したアカウントと同じであることを確認します。

  • Cloud de Confiance コンソールのログイン済みアカウント:

    権限のトラブルシューティング

  • アカウントを選択して、BigQuery Data Transfer Service に進みます。

    権限のトラブルシューティング

エラー: Access Denied: ... Permission bigquery.tables.get denied on table ...

解決策: BigQuery Data Transfer Service のサービス エージェントにターゲット データセットのbigquery.dataEditor ロールが付与されていることを確認します。この権限は、転送の作成と更新時に自動的に適用されますが、後でアクセス ポリシーを手動で変更した可能性があります。権限を再度付与するには、データセットへのアクセス権を付与するをご覧ください。

エラー: region violates constraint constraints/gcp.resourceLocations on the resource projects/project_id

解決策: このエラーは、ロケーション制限の組織のポリシーで指定されているように、ユーザーが制限付きのロケーションで転送構成を作成しようとすると発生します。この問題を解決するには、リージョンを許可するように組織のポリシーを変更するか、転送構成を変更して組織のポリシーで制限されていないリージョンの宛先データセットを設定します。

エラー: Please look into the errors[] collection for more details.

解決策: このエラーは、データ転送が失敗した場合に発生することがあります。データ転送が失敗した理由については、Cloud Logging でログを表示して確認できます。転送 run_id を使用して検索すると、特定の実行のログを見つけることができます

エラー: Network Attachment with connected endpoints cannot be deleted.

解決策: このエラーは、ユーザーが転送を削除した直後にネットワーク アタッチメントを削除しようとしたときに発生することがあります。これは、転送の削除後、BigQuery Data Transfer Service がその転送に関連付けられたすべてのリソースを完全に削除するまでに数日かかる場合があるためです。そのため、ネットワーク アタッチメントを削除できないことがあります。このエラーを解決するには、数日待ってからネットワーク アタッチメントの削除を試してください。ネットワーク アタッチメントをすぐに削除する必要がある場合は、サポートにお問い合わせください

認証と権限に関する問題

異なるデータソースからデータを転送する際に発生する可能性のある一般的な権限エラーには、次のようなものがあります。

エラー: BigQuery Data Transfer Service is not enabled for <project_id>
エラー: BigQuery Data Transfer Service has not been used in project <project_id> before or it is disabled ...

解決策: 次の手順でサービス エージェントのロールが付与されていることを確認します。

  1. Cloud de Confiance コンソールで、[IAM と管理] ページに移動します。

    [IAM と管理] に移動

  2. [ S3NS提供のロール付与を含める] チェックボックスをオンにします。

  3. service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com という名前のサービス アカウントが表示されているか、BigQuery Data Transfer Service に BigQuery Data Transfer Service エージェントのロールが付与されていることを確認します。

    サービス アカウントにサービス エージェントのロールがあるかどうかを確認します。

サービス アカウントが表示されない場合、または BigQuery Data Transfer Service サービス エージェントのロールが付与されていない場合は、 Cloud de Confiance コンソールまたは次の Google Cloud CLI コマンドで事前定義ロールを付与します。

gcloud projects add-iam-policy-binding PROJECT_NUMBER \
--member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \
--role roles/bigquerydatatransfer.serviceAgent

PROJECT_NUMBER は、このサービス アカウントに関連付けられているプロジェクト番号に置き換えます。

エラー: There was an error loading this table. Check that the table exists and that you have the correct permissions.

解決策:

  1. Cloud de Confiance コンソールで、[BigQuery] ページに移動します。

    [BigQuery] に移動

  2. 転送に使用された宛先データセットをクリックします。

  3. [共有] メニューをクリックし、[権限] をクリックします。

  4. BigQuery データ編集者ロールを開きます。

  5. このロールに BigQuery Data Transfer Service サービス エージェントが追加されていることを確認します。追加されていない場合は、BigQuery Data Transfer Service サービス エージェントに BigQuery データ編集者(roles/bigquery.dataEditor)のロールを付与します。

BigQuery データ編集者のロールが追加されていることを確認します。

エラー: A permission denied error was encountered: PERMISSION_DENIED. Please ensure that the user account setting up the transfer config has the necessary permissions, and that the configuration settings are correct

解決策:

  1. Cloud de Confiance コンソールで、[データ転送] ページに移動します。

    [データ転送] に移動

  2. 失敗した転送をクリックし、[構成] タブを選択します。

  3. [ユーザー] フィールドに表示されている転送オーナーに、データソースに必要なすべての権限が付与されていることを確認します。

転送オーナーに必要な権限の一部しか付与されていない場合は、認証情報を更新して、必要な権限を割り当てます。転送オーナーを必要な権限のある別のユーザーに変更することもできます。

エラー: Authentication failure: User Id not found. Error code: INVALID_USERID

解決策: 転送オーナーのユーザー ID が無効です。認証情報を更新して、転送オーナーを別のユーザーに変更します。サービス アカウントを使用している場合は、データ転送を実行するアカウントにサービス アカウントの使用に必要な権限がすべて付与されていることも確認する必要があります。

エラー: The user does not have permission

解決策: 転送オーナーがサービス アカウントであり、サービスに必要な権限がすべて設定されていることを確認します。また、使用されているサービス アカウントが、この転送の作成に使用されたプロジェクトと異なるプロジェクトで作成されている可能性もあります。プロジェクト間の権限の問題を解決するには、次のリソースをご覧ください。

エラー: HttpError 403 when requesting returned "The caller does not have permission"

googleapiclient.errors.HttpError: <HttpError 403 when requesting returned "The caller does not have permission". Details: "The caller does not have permission">

このエラーは、サービス アカウントを使用してスケジュールされたクエリを設定しようとすると表示されることがあります。

解決策: クエリのスケジューリングまたはスケジュールされたクエリの変更に必要なすべての権限がサービス アカウントに付与されていることを確認します。また、スケジュールされたクエリを設定するユーザーに サービス アカウントへのアクセス権限があることを確認します。

適切な権限がすべて割り当てられているにもかかわらず、エラーが表示される場合は、「プロジェクト間のサービス アカウントの使用を無効にする」ポリシーがデフォルトでプロジェクトに適用されているかどうかを確認します。ポリシーを確認するには、 Cloud de Confiance コンソールで [IAM と管理] > [組織のポリシー] に移動して、ポリシーを検索します。

「プロジェクト間のサービス アカウントの使用」ポリシーがサービス アカウントに適用されているかどうかを確認します。

プロジェクト間のサービス アカウントの使用を無効にする」ポリシーが適用されている場合は、次の方法でポリシーを無効にします。

  1. Cloud de Confiance コンソールで [IAM と管理] > [サービス アカウント] に移動し、プロジェクトに関連付けられているサービス アカウントを特定します。このビューには、現在のプロジェクトのすべてのサービス アカウントが表示されます。
  2. 次のコマンドを使用して、サービス アカウントのあるプロジェクトのポリシーを無効にします。このポリシーを無効にするには、組織ポリシー管理者である必要があります。このロールをユーザーに付与できるのは組織管理者だけです。
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=[PROJECT-ID]

イベント ドリブン転送の構成に関する問題

イベント ドリブン転送の作成時に発生する可能性のある一般的な問題を以下に示します。

エラー: Data Transfer Service is not authorized to pull message from the provided Pub/Sub subscription.

解決策: BigQuery Data Transfer Service のサービス エージェントpubsub.subscriber ロールが付与されていることを確認します。

  1. Cloud de Confiance コンソールで、[Pub/Sub] ページに移動します。

    [Pub/Sub] に移動

  2. イベント ドリブン転送で使用した Pub/Sub サブスクリプションを選択します。

  3. 情報パネルが表示されていない場合は、右上隅にある [情報パネルを表示] をクリックします。

  4. [権限] タブで、BigQuery Data Transfer Service のサービス エージェントpubsub.subscriber ロールが付与されていることを確認します。

サービス エージェントにサブスクリプションに対する pubsub.subscriber があるかどうかを確認します。

サービス エージェントに pubsub.subscriber ロールが付与されていない場合。[ プリンシパルを追加] をクリックして、service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.compubsub.subscriber ロールを付与します。

エラー: Cloud Pub/Sub API has not been used in project PROJECT_NUMBER before or it is disabled.

解決策: プロジェクトで Cloud Pub/Sub API が有効になっていることを確認します。

  1. Cloud de Confiance コンソールで、[API とサービス] ページに移動します。

    [API とサービス] に移動

  2. [API とサービスを有効化] をクリックします。

  3. Cloud Pub/Sub API を検索し、最初の結果を選択して [有効にする] をクリックします。

エラー: Data Transfer Service does not have required permission to use project quota of project PROJECT_NUMBER to access Pub/Sub.

解決策: BigQuery Data Transfer Service のサービス エージェントserviceusage.serviceUsageConsumer ロールが付与されていることを確認します。

  1. Cloud de Confiance コンソールで、[IAM と管理] ページに移動します。

    [IAM と管理] に移動

  2. [ S3NS提供のロール付与を含める] チェックボックスをオンにします。

  3. service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com という名前のサービス アカウントが表示され、Service Usage ユーザー ロールが付与されていることを確認します。

    サービス アカウントに serviceusage.serviceUsageConsumer ロールがあるかどうかを確認します。

問題: Cloud Storage イベント ドリブン転送を使用している場合、Cloud Storage バケット内のファイルをアップロードまたは更新しても、転送実行がトリガーされません。

転送実行は、イベントの受信直後にはトリガーされません。転送実行のトリガーには数分かかることがあります。次の転送実行のステータスを確認するには、実行履歴の [次の実行の予定日] フィールドを確認します。このフィールドには、次回の実行予定時間が表示されます。イベントが受信されなかった場合は、[次回の実行をスケジュールするイベントを待機しています] と表示されます。Cloud Storage バケットでファイルをアップロードまたは更新したにもかかわらず、[次の実行の予定日] が更新されず、10~20 分間実行がトリガーされない場合は、次の解決策をご覧ください。

解決策: 転送構成で指定された Pub/Sub サブスクリプションが、Cloud Storage イベントから公開されたメッセージを取得できることを確認します。

  1. Cloud de Confiance コンソールで、[Pub/Sub] ページに移動します。

    [Pub/Sub] に移動

  2. イベント ドリブン転送で使用した Pub/Sub サブスクリプションを選択します。

  3. [指標] タブで、[最も古い未確認メッセージの経過時間] グラフを確認し、メッセージがあるかどうかを確認します。

メッセージが送信されているかどうかを確認する

メッセージが公開されていない場合は、Cloud Storage 用の Pub/Sub 通知が正しく構成されているかどうかを確認します。次の Google Cloud CLI コマンドを使用して、バケットに関連付けられている通知構成を確認できます。

gcloud storage buckets notifications list gs://BUCKET_NAME

BUCKET_NAME は、通知に使用するバケットの名前に置き換えます。Cloud Storage の Pub/Sub 通知の構成については、Cloud Storage の Pub/Sub 通知を構成するをご覧ください。

メッセージがある場合は、別のイベント ドリブン転送構成で同じ Pub/Sub サブスクリプションが使用されているかどうかを確認します。同じ Pub/Sub サブスクリプションを複数のイベント ドリブン転送構成で再利用することはできません。イベント ドリブン転送の詳細については、イベント ドリブン転送をご覧ください。

割り当ての問題

エラー: Quota exceeded: Your project exceeded quota for imports per project.
解決策: プロジェクトに対して転送を過剰にスケジュールしていないことを確認します。転送によって開始される読み込みジョブの数を計算する方法については、割り当てと上限をご覧ください。