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

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

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

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

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

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

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

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

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

制限事項

  • データは過去 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] タブには、最大スロット数と使用量が絶対値で表示されます。

使用量と容量

[ソース] プルダウンからエディションまたはオンデマンド オプションを選択して、さまざまなスコープの統計情報を表示できます。エディションを選択すると、[予約] プルダウンに関連する予約が表示されます。[容量別の使用量と使用率] タブの統計情報は、スコープごとに若干異なる場合があります。

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

スロットの推奨事項を表示する

エディション課金またはオンデマンド課金をご利用のお客様の場合、BigQuery スロット Recommender は、パフォーマンスに影響を与えずにコミットメント スロットと自動スケーリング スロットを構成する際の費用の最適化に関する推奨事項を提供します。推奨事項は、過去の使用状況グラフの下に表示されます。

詳細については、エディション スロットの推奨事項を表示するをご覧ください。

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

予約の選択時にスロット見積もりツールを使用すると、ジョブのパフォーマンス データを表示して、スロット数の変更による影響をモデル化できます。スロット見積もりツールを使用すると、現在の最大スロット数の 80%~150% の範囲で、さまざまな容量レベルでパフォーマンスがどのように変化するかをモデル化できます。減少させる場合、時間枠の中で最も小さい最大スロット数の 80% 以上にする必要があります。

このモデルは、過去 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. オートスケール スロット。

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

料金

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