強化されたワークロード管理で BigQuery のパフォーマンスを最大化
Larry Henderson
Sr. Product Manager
Rohit Ray
Group Product Manager
※この投稿は米国時間 2025 年 6 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。
BigQuery は、大規模なデータセットを高いパフォーマンスで分析するための強力なプラットフォームです。とはいえ、データ量とクエリの複雑さが増していくなかでも、運用効率の維持は欠かせません。BigQuery のワークロード管理は、ワークロードとリソースの割り当てを最適化するための包括的な制御メカニズムを提供し、特に大量のデータが処理される環境でのパフォーマンスの問題やリソースの競合を防止します。そしてこのたび、BigQuery のワークロード管理がアップデートされ、より効果的に、より使いやすくなったことをお知らせします。
そもそも、BigQuery のワークロード管理とは具体的にどのようなものか?
根本的に、BigQuery のワークロード管理とは、BigQuery プロジェクト内でのクエリやその他のオペレーション(ワークロード)の実行に優先順位を付け、分離し、管理する一連の機能です。BigQuery リソースの割り当てと消費をきめ細かく制御できるため、次のことが可能になります。
重要なワークロードに必要なリソースの確保:
-
予約により、指定されたコンピューティング容量を確保する専用の BigQuery スロットを利用できます。
-
以下の選択肢による費用の管理と最適化:
-
スロットのコミットメント: 特定のエディションで BigQuery コンピューティング容量の費用が予測可能になります。
-
費用ベースのコミットメント: 時間単位の費用ベースのコミットメントで、全エディションにおいて BigQuery コンピューティングの 1 年間または 3 年間の割引オプションを利用できます。
-
自動スケーリング: 事前定義されたパラメータの範囲内で、需要の変動に応じて予約がスロット容量を動的に調整します。これにより、ピーク時のワークロードに対応しながら、アクティビティが少ない期間のオーバープロビジョニングを防ぐことができます。
優れた信頼性と可用性の実現:
-
専用の予約とコミットメントにより、リソースの競合を減らし、重要なワークロードに予測可能なパフォーマンスを実現します。
-
マネージド障害復旧により、コンピューティングとデータの可用性、復元力を提供し、ビジネスの継続性を確保します。
BigQuery のワークロード管理の実装は、クラウドベースのデータ分析インフラストラクチャの効率性、信頼性、費用対効果を最大限まで高めようとする組織にとって非常に重要です。
BigQuery のワークロード管理のアップデート
BigQuery のワークロード管理は、効率性と制御の向上に重点を置いています。最新の機能とアップデートにより、リソースの割り当てが改善され、パフォーマンスが最適化されます。主な改善点には、最適なスロット配分を実現する予約の公平性、一貫したパフォーマンスに役立つ予約の予測可能性、柔軟性を高める実行時の予約の指定、可視性を向上させる予約のラベル、迅速かつきめ細かなスケーラビリティのためのオートスケーラーの改善などがあります。
予約の公平性 BigQuery では、以前は公平な共有という方法を使用して、プロジェクト間で容量を均等に分配していました。予約の公平性により、BigQuery は各予約でジョブを実行しているプロジェクトの数に関係なく、同じ管理プロジェクト内のすべての予約に対して、アイドル スロットを優先して均等に割り当てます。各予約がアイドル スロット プール内の利用可能な容量をほぼ均等に受け取ってから、そのスロットはプロジェクト内で公平に分配されます。注: 割り当ては需要があることを前提としています。クエリが実行されていない場合、アイドル スロットは予約に割り当てられません。この機能は、BigQuery Enterprise エディションまたは Enterprise Plus エディションにのみ適用されます。Standard エディションではアイドル スロットはサポートされていません。


図 1: プロジェクト ベースの公平性
構成は、ベースラインが 0 の予約を表しています。予約の下の「数」は、その予約内のプロジェクトが(プロジェクトの)公平な共有を通じて取得するスロットの合計です。注: 割り当ては需要があることを前提としています。クエリが実行されていない場合、アイドル スロットは割り当てられません。


図 2: 予約の公平性が有効な場合
この構成も、ベースラインが 0 の予約を表しています。予約の下には、その予約内のプロジェクトが(予約の)公平な共有を通じて取得するスロットの合計が表示されています。注: 割り当ては需要があることを前提としています。クエリが実行されていない場合、アイドル スロットは割り当てられません。
予約の予測可能性 この機能を使用すると、予約で消費されるスロットの絶対最大数を設定できるため、スロット消費における費用とパフォーマンスの変動をより細かく制御できます。BigQuery は、ベースライン スロット、アイドル スロット、自動スケーリング スロットを潜在的な容量のリソースとして提供します。最大サイズで予約を作成する場合、過去のワークロードに基づいて、ベースライン スロットの数と、自動スケーリングおよびアイドル スロットの適切な構成を確認してください。注: 予測可能な予約を使用するには、予約の公平性を有効にする必要があります。ベースラインは省略可能です。


BigQuery では、実行時にどの予約でクエリを実行するかを指定できます。柔軟性とセキュリティ機能が強化されたことで、リソースの割り当てをより細かく制御できるようになり、ロールベースのアクセス権の付与など、柔軟性が向上しています。CLI、UI、SQL、API を使用して実行時に予約を指定し、プロジェクト、フォルダ、組織のデフォルトの予約割り当てをオーバーライドできます。割り当てられた予約は、実行するクエリと同じリージョンに存在する必要があります。


予約にラベルを追加すると、そのラベルは請求データに含まれます。これにより、特定のワークロードやチームの BigQuery スロットの消費量を詳細に把握できるようになり、追跡と最適化が容易になります。また、これらのラベルを使用して、Cloud Billing データを Analysis Slots Attribution SKU でフィルタできるため、割り当てた特定のラベルに基づいて BigQuery スロットの費用を追跡し分析する強力なツールが得られます。


最後に、BigQuery のオートスケーラーでは、リソース管理のパフォーマンスと適応性が強化されています。ほぼ瞬時のスケールアップ、きめ細かいスケーリング(100 スロット単位から 50 スロット単位に改善)、より高速なスケールダウンが可能になりました。こうした機能により、ワークロードの需要に合わせて容量を迅速に調整できるため、より明確に使用量を予測し、把握することができます。この 50 スロット単位の増分は、ベースラインと予約の最大容量の設定にも適用されます。
BigQuery のワークロード管理は、パフォーマンスと費用の両方の最適化を実現するうえで不可欠なツールです。予約、費用ベースのコミットメント、そして予約の予測可能性や公平性をはじめとした新機能を使用することで、データ分析のパフォーマンスを大幅に向上させることができます。その結果、リソースの割り当てを最適化して費用を削減し、データドリブンな意思決定を強化できるため、チームはデータからより有意義な分析情報を獲得し、一貫したパフォーマンスを体験できます。
-シニア プロダクト マネージャー、Larry Henderson
-グループ プロダクト マネージャー、Rohit Ray