管理ジョブ エクスプローラを使用する

BigQuery 管理者は、管理ジョブ エクスプローラを使用して、組織全体のジョブ アクティビティをモニタリングできます。ジョブ エクスプローラには、問題のあるジョブのトラブルシューティングと特定を行うためのさまざまなフィルタと並べ替えオプションも用意されています。ジョブ エクスプローラを使用すると、INFORMATION_SCHEMA を深く理解する必要がなくなり、INFORMATION_SCHEMA クエリを記述しなくても、オーナー、プロジェクト、スロット使用量、所要時間などのジョブ情報を簡単に確認できるようになります。

個々のジョブを選択して [ジョブの詳細] ページを開くこともできます。このページには、実行グラフ、SQL テキスト、実行履歴などのクエリの詳細が表示され、クエリの診断とトラブルシューティングに役立ちます。このページでは、2 つのジョブを比較して、それらの間の大きな違いをハイライト表示し、パフォーマンスに関する潜在的な問題に対処できます。

BigQuery は、次の INFORMATION_SCHEMA ビューを通じてジョブの詳細と分析情報を提供します。

必要なロール

管理ジョブ エクスプローラの使用に必要な権限を取得するには、組織またはプロジェクトに対する BigQuery リソース閲覧者roles/bigquery.resourceViewer)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、管理ジョブ エクスプローラの使用に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

管理ジョブ エクスプローラを使用するには、次の権限が必要です。

  • プロジェクト レベルでデータを表示するには: プロジェクトに対する bigquery.jobs.listAll
  • 組織レベルのデータを表示するには: 組織に対する bigquery.jobs.listAll
  • 組織内の予約でフィルタするには: 組織に対する bigquery.reservations.list

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

ジョブのフィルタ

INFORMATION_SCHEMA.JOBS* ビューに含まれるクエリのジョブをフィルタするには、次の操作を行います。

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

    [BigQuery] に移動

  2. ナビゲーション メニューで [ジョブ エクスプローラ] をクリックします。

  3. [ロケーション] リストから、ジョブを表示するロケーションを選択します。

  4. 必要に応じて、オプションの [フィルタ] を適用します。

    • ジョブのスコープ。現在のプロジェクト、組織、ジョブなど。
    • ステータス。完了、エラー、アクティブ、キューに格納済みなど。
    • ジョブの優先度。インタラクティブ ジョブやバッチジョブなど。
    • ジョブ ID
    • オーナー。ジョブの所有者のメール ID(ジョブのスコープがプロジェクトまたは組織の場合のみ適用)。
    • プロジェクト ID。(ジョブのスコープが組織の場合にのみ適用)
    • 予約 ID。(ジョブのスコープが組織の場合にのみ適用)
    • スロット時間が次の値を超えています。指定したスロット時間よりも時間がかかったジョブ。
    • 継続時間が次の値より長い。指定した時間よりも長くかかったジョブ。
    • 処理バイト数が次の値より多い。指定された処理バイト数を上回る量を処理したジョブ。
    • Query Insights。スロット競合、メモリ シャッフル容量の超過、データ入力スケールの変更など、クエリ分析情報の種類。
    • クエリハッシュ。クエリハッシュには、クエリのハッシュが含まれます。これは 16 進数の STRING ハッシュで、コメント、パラメータ値、UDF、リテラルを無視します。このフィールドは、キャッシュ ヒットではない GoogleSQL クエリが成功した場合に表示されます。
    • ラベル。ジョブに割り当てることができる key:value ペア。キー、値、key:value の組み合わせを使用してフィルタできます。
    • ジョブカテゴリ。クエリのタイプ(標準クエリ継続的クエリなど)。

クエリ実行の詳細を表示する

ジョブのクエリ実行の詳細を表示する手順は次のとおりです。

  1. [ジョブ エクスプローラ] ページに移動します。

    [ジョブ エクスプローラ] に移動

  2. ジョブを表示するには、[ジョブ エクスプローラ] をクリックします。

  3. 限られたジョブを表示するには、ジョブをフィルタします。

  4. クエリ実行の詳細を表示するジョブをクリックします。

  5. [クエリ結果] ペインで [実行グラフ] タブをクリックすると、ジョブの実行の詳細が表示されます。

    ジョブの実行グラフ。

分析情報の理解については、クエリ パフォーマンスの分析情報を解釈するをご覧ください。

BigQuery ジョブの詳細を取得する

この機能に関するフィードバックやサポートをご希望の場合は、bq-performance-troubleshooting+feedback@google.com 宛てにメールをお送りください。

管理ジョブ エクスプローラから、BigQuery の詳細ページを表示できます。BigQuery ジョブの詳細ページには、クエリの診断とトラブルシューティングに役立つように、複数のクエリの詳細が 1 つのページにまとめられています。[パフォーマンス] タブには、実行グラフ、SQL テキスト、実行履歴などのクエリ情報がまとめられています。

[パフォーマンス] タブではクエリの比較もサポートされており、クエリの過去の使用状況を比較して、パフォーマンスの低下を分析して解決できます。ジョブの比較の詳細については、ジョブを比較するをご覧ください。

始める前に

BigQuery ジョブの詳細とシステムレベルの詳細を操作するために必要な権限を取得するには、組織またはプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼します。

  • ジョブの詳細を表示する: BigQuery リソース閲覧者(roles/bigquery.resourceViewer) - クエリが実行されたプロジェクト
  • システムレベルの詳細を表示する: BigQuery リソース閲覧者(roles/bigquery.resourceViewer) - 管理プロジェクト

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、BigQuery ジョブの詳細とシステムレベルの詳細を操作するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

BigQuery ジョブの詳細とシステムレベルの詳細を扱うには、次の権限が必要です。

  • プロジェクト レベルでデータを表示するには: プロジェクトに対する bigquery.jobs.listAll
  • 組織レベルのデータを表示するには: 組織に対する bigquery.jobs.listAll
  • 組織内の予約でフィルタするには: 組織に対する bigquery.reservations.list

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

ジョブの詳細を確認する

ジョブの詳細ページを表示する手順は次のとおりです。

  1. [ジョブ エクスプローラ] ページに移動します。

    [ジョブ エクスプローラ] に移動

  2. 省略可: ジョブをフィルタして、表示される利用可能なジョブを絞り込みます。

  3. 表示するタスクの [ジョブ ID] をクリックします。ジョブを作成しないクエリの場合、クエリ ID が表示され、リンクは無効です。他のすべてのクエリでは、ジョブ ID をクリックすると [ジョブの詳細] ページが表示されます。

デフォルトでは、[パフォーマンス] タブが表示されます。他のタブに移動して、ジョブのその他の情報を確認できます。

利用可能なクエリに関する情報

[パフォーマンス] タブで確認できる情報と指標は次のとおりです。

  • SQL クエリ: ジョブを作成した SQL クエリのテキスト。

  • ジョブの詳細: ジョブ ID、作成時間、処理されたバイト数など、ジョブに関する情報。詳細については、ジョブの詳細を確認するをご覧ください。

  • パフォーマンスの変動: 同じクエリの過去の実行と比較して、ジョブのパフォーマンスがどのように変化したかに関する情報。BigQuery は、現在のジョブを、処理されたバイト数が類似(+/- 5%)し、ジョブの実行時間が最も短い過去の実行と比較します(該当するものがある場合)。過去の実行が存在しない場合、BigQuery は現在のジョブを過去 30 日間の過去の実行の平均と比較します。過去の実行がない場合、このセクションには、比較対象となる類似のジョブが見つからなかったことが示されます。

  • 実行履歴: クエリハッシュによるこのクエリの他の実行のリスト。このパネルで、表示しているジョブと比較するジョブを選択できます。ジョブの比較の詳細については、ジョブを比較するをご覧ください。

  • 実行中のシステム負荷: BigQuery がジョブの実行に使用したリソースの説明。これには、このジョブで使用される予約設定に関する情報が含まれます(該当する場合)。

  • 実行グラフ: このジョブの実行グラフ。詳細については、クエリのパフォーマンス分析情報を取得するをご覧ください。

ジョブを比較する

この機能に関するフィードバックやサポートをご希望の場合は、bq-performance-troubleshooting+feedback@google.com 宛てにメールをお送りください。

ジョブ パフォーマンスの比較では、ベースライン ジョブとターゲット ジョブを比較できます。クエリ分析では、2 つのジョブ間で大きく異なるジョブの詳細がハイライト表示されます。これにより、2 つのクエリジョブ間のパフォーマンスの問題をトラブルシューティングできます。

2 つのクエリを比較してクエリを最適化する際に考慮すべき重要な詳細は、ジョブの実行時間、スロット時間、処理されたバイト数などです。

始める前に

BigQuery ジョブの詳細とシステムレベルの詳細を操作するために必要な権限を取得するには、組織またはプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼します。

  • ジョブの詳細を表示する: BigQuery リソース閲覧者(roles/bigquery.resourceViewer) - クエリが実行されたプロジェクト
  • システムレベルの詳細を表示する: BigQuery リソース閲覧者(roles/bigquery.resourceViewer) - 管理プロジェクト

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、BigQuery ジョブの詳細とシステムレベルの詳細を操作するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

BigQuery ジョブの詳細とシステムレベルの詳細を扱うには、次の権限が必要です。

  • プロジェクト レベルでデータを表示するには: プロジェクトに対する bigquery.jobs.listAll
  • 組織レベルのデータを表示するには: 組織に対する bigquery.jobs.listAll
  • 組織内の予約でフィルタするには: 組織に対する bigquery.reservations.list

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

ジョブのパフォーマンス比較について

以降のセクションでは、[ジョブのパフォーマンス比較] ページと、そのページで提供されるトラブルシューティング情報について説明します。

[有意な差異のみを表示] 切り替えボタンをオンにすると、このページに含まれるすべての指標について、2 つのジョブ間の有意な差異のみが表示されます。

有意差は緑、黄、赤でハイライト表示されます。

  • : 変化がプラスの方向に進んでいます。たとえば、クエリの実行時間が短いほど良いので、ターゲット ジョブがベースライン ジョブよりも速く実行される場合は、緑色でマークされます。
  • 黄色: 変化がマイナスの方向に進んでいますが、差は 20% 未満です。
  • : 変化がマイナスの方向に進んでおり、差は 20% を超えています。

クエリレベルの分析

[クエリレベルの分析] ペインには、クエリレベルでの 2 つのジョブの違いが表示されます。[指標]、[SQL テキスト]、[実行グラフ] の 3 つのタブがあります。

  • [指標] タブには、2 つのジョブのクエリ指標が表示されます。このタブを使用して、ジョブの所要時間、未使用のアクセラレータ、その他の指標の間に不一致があるかどうかを判断します。

  • [SQL テキスト] タブには、ジョブを作成した 2 つの SQL ステートメントが表示され、それらの違いがハイライト表示されます。このタブを使用して、SQL ステートメントの変更がジョブのパフォーマンスに影響したかどうかを確認します。

  • [実行グラフ] タブでは、2 つのジョブの実行グラフを比較します。このタブを使用して、ジョブの実行中に不一致が発生したかどうかを判断します。

システムレベルの分析

[システムレベルの分析] ペインには、システムレベルで 2 つのジョブに影響する可能性のある要因が表示されます。[プロジェクト] テーブル、[予約] テーブル、[設定] テーブルの 3 つのセクションで構成されています。

[システムレベルの分析] ペインでは、2 つのクエリの違いに基づいて改善の余地がある領域を提案できます。

たとえば、ジョブが以前の実行よりも少ないスロットを受け取った場合、システムのリソース制約の影響を受ける可能性があります。このメッセージが表示された場合は、プロジェクト レベルの指標を確認して、プロジェクト全体で受け取ったスロット数が少ないかどうかを確認します。プロジェクトでスロットが減っていない場合は、ジョブの同時実行数の増加など、プロジェクト レベルで競合が発生している可能性があります。プロジェクトに割り当てられたスロットが少ない場合は、予約レベルを確認して制約を特定します。

  • プロジェクト テーブルは、プロジェクト レベルで 2 つのジョブを比較します。この表を使用して、プロジェクト レベルで最適化が可能かどうかを判断します。

  • 予約テーブルは、予約レベルで 2 つのジョブを比較します。この表を使用して、ジョブのパフォーマンスに影響する可能性のある 2 つのクエリ間の予約使用量の違いを特定します。

  • [設定] テーブルには、2 つのジョブ間の予約設定が比較されます。このテーブルを使用して、パフォーマンスに影響を及ぼす可能性のある予約設定の変更を検出します。

2 つのジョブを比較する

2 つのジョブは次の方法で比較できます。

  1. [ジョブ エクスプローラ] ページに移動します。

    [ジョブ エクスプローラ] に移動

  2. 省略可: ジョブをフィルタして、表示される利用可能なジョブを絞り込みます。

  3. 表示して比較する最初のジョブのジョブ ID をクリックします。[ジョブの詳細] ページが表示されます。

  4. [パフォーマンス] タブをクリックします。

  5. [ジョブを比較] をクリックします。

  6. [ジョブ 1(ベースライン ジョブ)] フィールドで、[参照] をクリックします。[類似の比較可能なジョブ] パネルが表示されます。

  7. ベースライン ジョブと比較するジョブを特定し、[比較] をクリックします。ジョブのパフォーマンス比較が表示されます。

  8. 2 つのジョブ間の有意な差異のみを表示するには、[有意な差異のみを表示] 切り替えボタンをオンにします。

比較対象のジョブを変更する

比較対象のジョブは次の方法で変更できます。

  1. [ジョブのパフォーマンス比較] ページに移動します。

  2. [ジョブ 1(ベースライン ジョブ)] フィールドで、[参照] をクリックします。

  3. [類似の比較可能なジョブ] ペインで、比較するジョブを特定して [比較] をクリックします。

料金

ジョブ エクスプローラは追加料金なしで使用できます。これらのグラフの作成に使用されるクエリは課金されず、ユーザーに割り当てられている予約のスロットを使用しません。大量のデータを処理するクエリはタイムアウトします。

次のステップ