スロットの容量要件の見積もり

BigQuery で予約済みスロットを購入する場合、特定のワークロードに対して適切なスロット数を見積もる必要があります。BigQuery スロット見積もりツールを使用すると、過去のパフォーマンス指標に基づいてスロット容量を管理できます。

エディション、予約、オンデマンド ワークロードにスロット見積もりツールを使用すると、次のタスクを実行できます。

選択したエディションのワークロードの場合:

  • 過去 30 日間のスロット容量と使用率データを表示し、ほとんどのスロットが使用されている場合に使用率がピークになった期間を特定します。
  • 同様のパフォーマンスのコミットメント スロットと自動スケーリング スロットについて、コスト最適化の推奨事項を表示します。
  • 特定のエディションの現在の予約設定を表示します。

特定の予約ワークロードの場合:

  • 過去 30 日間のスロット容量と使用率データを表示し、ほとんどのスロットが使用されている場合に使用率がピークになった期間を特定します。
  • ジョブのレイテンシ パーセンタイル(P90、P95 など)を表示してクエリのパフォーマンスを把握します。
  • 最大予約スロットの増減がパフォーマンスに与える影響をモデル化します。

オンデマンド課金ワークロードの場合:

  • 過去 30 日間の組織全体または個々のプロジェクトのオンデマンド スロット使用状況データを表示します。
  • Enterprise エディションに移行した場合に、パフォーマンスが同程度のコミットメント スロットと自動スケーリング スロットの費用を最適化する推奨事項を表示します。

Enterprise エディション、Enterprise Plus エディション、またはオンデマンド課金をご利用のお客様は、BigQuery スロット Recommender を使用してスロットの使用状況を把握し、コミットメントを最適化してパフォーマンスを向上させることができます。詳細については、エディション スロットの推奨事項を表示するをご覧ください。

制限事項

  • データは過去 30 日間に制限されます。
  • このモデルに ML_EXTERNAL 割り当ては含まれません。スロットの大部分が ML_EXTERNAL 割り当てに使用されている場合、推定結果の精度が低下します。

始める前に

このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(IAM)のロールを付与します。

必要な権限

予約データに対してスロット見積もりツールを使用するには、管理プロジェクトに対して次の IAM 権限が必要です。

  • bigquery.reservations.list
  • bigquery.reservationAssignments.list
  • bigquery.capacityCommitments.list

次の IAM 事前定義ロールには、スロット見積もりツールを更新するために必要な権限が含まれています。

  • roles/bigquery.admin
  • roles/bigquery.resourceAdmin
  • roles/bigquery.resourceEditor
  • roles/bigquery.resourceViewer
  • roles/bigquery.user

オンデマンド使用量データにスロット見積もりツールを使用するには、予約を管理するための管理プロジェクトとして使用するプロジェクトで Reservations API を有効にする必要があります。上記の権限に加えて、組織レベルのデータを表示するには、組織に対する(または、プロジェクト レベルのデータを表示するにはプロジェクトに対する)次のいずれかの IAM 権限も必要です。

  • bigquery.jobs.listExecutionMetadata(組織レベルでのみ適用可能)
  • bigquery.jobs.listAll(組織レベルまたはプロジェクト レベルの両方で適用可能)

次の IAM 事前定義ロールには、スロット見積もりツールを更新するために必要な権限が含まれています。

  • roles/bigquery.admin
  • roles/bigquery.resourceAdmin
  • roles/bigquery.resourceEditor
  • roles/bigquery.resourceViewer

コミットメント スロットの推奨事項を表示するには、エディション スロットの推奨事項を表示するで説明されている権限も必要です。

BigQuery での IAM のロールの詳細については、事前定義ロールと権限をご覧ください。

スロットの容量と使用率の表示

スロットの容量と使用率の推移を確認するには、スロット見積もりツールに移動します。

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. 管理プロジェクトを選択します。

    1. ページ上部の [選択元] プルダウン リストをクリックします。
    2. 表示された [選択元] ウィンドウで、プロジェクトを選択します。
  3. ナビゲーション パネルで [容量管理] セクションに移動します。

  4. [スロット見積もりツール] タブをクリックします。

使用率グラフには、時間単位で計算された過去 30 日間のスロット容量と使用率が表示されます。

[Usage and utilization by percentage] タブには、スロット使用量が、最大スロット数に対するスロット使用率として表示されます。

使用率

[Usage and utilization by capacity] タブには、最大スロット数と使用量が絶対値で表示されます。

使用量と容量

[ソース] プルダウンからエディションまたはオンデマンド オプションを選択して、さまざまなスコープの統計情報を表示できます。エディションを選択すると、[予約] プルダウンに関連する予約が表示されます。

オンデマンド オプションの場合、組織レベルの権限がある場合は、[推奨事項の対象] プルダウンから個々のプロジェクトまたは組織全体を選択できます。プロジェクト レベルの権限しかない場合、スロット見積もりツールページにはプロジェクト レベルの情報のみが表示されます。

スロット見積もりツールのオンデマンド オプション

[容量別の使用量と使用率] タブの統計情報は、スコープごとに若干異なる場合があります。

  • エディションのソースについては、エディション全体で使用可能な最大スロット数、コミットメント スロット、ベースライン スロット数の合計、平均スロット使用量、P99 スロット使用量、P50 スロット使用量が表示されます。
  • 特定の予約については、最大予約スロット、ベースライン スロット、平均スロット使用量、P99 スロット使用量、P50 スロット使用量が表示されます。
  • オンデマンド ソースの場合、平均スロット使用量、P99 スロット使用量、P50 スロット使用量が表示されます。

スロットのパフォーマンスをモデル化する

予約の選択時にスロット見積もりツールを使用すると、ジョブのパフォーマンス データを表示して、スロット数の変更による影響をモデル化できます。スロット見積もりツールを使用すると、観測期間の最大スロットサイズの最小値の 80% から現在の最大スロットの 150% の範囲で、さまざまな容量レベルにおいてパフォーマンスがどのように変化するかをモデル化できます。つまり、オプションの削減は 30 日間の最小容量の 20% を超えることはできず、オプションの増加は現在の容量の 50% を超えることはできません。

このモデルは、過去 30 日間の使用パターンのリプレイを想定しており、スロットの変更以外はすべて同じままです。

推定パフォーマンスの改善は、いくつかの要因に基づきます。最も重要な要素は、モデル内のスロット数と、各パーセンタイル バケット内のジョブのピーク時と通常時における実行の割合です。ピーク時は、ほぼすべてのスロットが使用された期間として定義されます。ピーク時に実行中のジョブは、スロット競合の影響を最も大きく受けるため、スロットの追加によって最もパフォーマンスが向上します。このため、実行のタイミングによっては、同じ容量の増加でもジョブのバケットごとに生じる影響が異なる可能性があります。

スロットのパフォーマンスをモデル化するには、次の手順に沿って操作します。

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. 管理プロジェクトを選択します。

    1. ページ上部の [選択元] プルダウン リストをクリックします。
    2. 表示された [選択元] ウィンドウで、プロジェクトを選択します。
  3. ナビゲーション パネルで [容量管理] セクションに移動します。

  4. [スロット見積もりツール] タブをクリックします。

  5. [予約] プルダウンで、特定の予約を選択します。このモデルには特定の期間内に予約で借用可能だったアイドル スロットの数が含まれます。

  6. [最大スロット数に追加のスロットが含まれるモデル] プルダウンで、モデル化に使用するスロットの値を 1 つ以上選択して [OK] をクリックします。

[追加のスロットでジョブ パフォーマンスを変更する] にあるテーブルには、過去 30 日間のジョブ パフォーマンス データと、最大スロット数の増減によるパフォーマンスの予想変化量が表示されます。データは、選択した期間枠で実行されたすべてのジョブについて、ジョブの期間別の割合でグループ化されます。電球アイコンで示される列は、選択した予約に対するパフォーマンス向上の推奨事項に対応しています。

スロットのモデル化

パフォーマンス データはパーセンタイルごとに分類されます。このテーブルでは、データが最大 12 個のバケット(P10~P90、P95、P99、P100)に分割されます。P100 バケットは、実行時間が最も長いジョブの上位 1% を表します。P99 は上位 96~99%、P95 は上位 91%~95%、P90 は 81%~90% となります。データによっては、少ないバケットにグループ化される場合があります。その場合、テーブルの行数は少なくなります。

テーブルには、各パーセンタイル バケットについて次の情報が表示されます。

  • ジョブ所要時間のパーセンタイル: この行のパーセンタイル バケット。
  • 平均ジョブ期間: パーセンタイル バケットのジョブの平均実行時間。
  • ジョブの数: パーセンタイル バケットのジョブの数。
  • 各モデルについて、そのパーセンタイルでのジョブの推定平均時間。

また、テーブルには、各モデルについて想定される 30 日間の変化も表示されます。この値は、異なるスロット容量について過去 30 日間にジョブ処理に費やされた合計時間から予想される変化量です。

スロットの使用量でモデリングの結果を理解する

固定容量の予約の場合、アイドル スロットの共有が有効になっていると、その予約のジョブは、他の予約からアイドル スロットを借用できます。その結果、使用率が割り当てられたスロットの 100% を超えることがあります。予約が他の予約からアイドル スロットを継続的に借用している場合は、予約サイズを増やすためのシグナルである可能性があります。一方、予約の最大容量に達するのが稀であれば、予約が大きすぎる可能性があります。

自動スケーリングを使用する予約では、次の優先度でスロットを使用および追加します。

  1. ベースライン スロット。
  2. アイドル スロットの共有(有効になっている場合)。
  3. オートスケール スロット。

自動スケーリング予約が自動スケーリング スロットの上限を常に超えている場合は、最大予約スロットを増やすシグナルである可能性があります。スロット使用状況の表示については、管理リソースグラフの表示をご覧ください。

料金

スロット見積もりツールは無料でご利用いただけます。