BigQuery EditionsとAutoscalingについて

2023/05/18に公開

はじめに

こんにちは、クラウドエース データML ディビジョン所属の穂戸田です。
クラウドエースのITエンジニアリングを担うシステム開発部の中で、特にデータ基盤構築・分析基盤構築からデータ分析までを含む一貫したデータ課題の解決を専門とするのがデータML ディビジョンです。

データML ディビジョンでは活動の一環として、毎週Google Cloud の新規リリースを調査・発表し、データ領域のプロダクトのキャッチアップをしています。その中でも重要と考えるリリースを本ページ含め記事として公開しています。

今回紹介するリリースは、2023年 3月 29日のBigQuery EditionsAutoscalingのリリースです。
https://cloud.google.com/bigquery/docs/release-notes#March_29_2023
本リリース内容をもとに「Autoscaling利用によるBigQuery料金の最適化」について解説していきます。
このリリースにより、BigQueryの料金体系が変わり、Autoscalingによって従来の料金プランよりも費用を最適化できるようになりました。

BigQuery Editionsとは

BigQueryの新しい課金体系です。
料金はスロット単価 × 時間で計算されます。
これは、1つのスロットを1時間使用した場合の料金です。
以下がBigQuery Editionsの3つのエディションです。(料金はslot/hour単位で表示)

Standard Enterprise Enterprise Plus
料金 $0.051 $0.0765 $0.1275
1年間のコミットメント料金 なし $0.0612 $0.102
3年間のコミットメント料金 なし $0.0459 $0.0765

各エディションごとにスロット単価が異なり、使用できる機能も異なってきます。
また、後述するAutoscaling機能が各Editionで使用可能であり、併用することで完全な従量課金を実現できます。
各エディションごとの機能差異は、Introduction to BigQuery editionsをご覧ください。

Editionの選択基準

Standard

コミットメントや使用可能な機能が他のエディションに比べて少ないものの、コストが低いエディションです。
同時クエリは最大100であり、スロットは1600、コンピューティングワークロードは単一ワークロードのみなどの制限があります。
また、BigQuery MLの使用はできません。
以下にユースケースを記載します。

  • 小規模なビジネス、開発、データ分析
  • 開発やテスト環境

Enterprise

Standard Editionに加えて、セキュリティ機能が利用可能になり、機密性の高い中規模~大規模の開発に適しているエディションです。
以下にユースケースを記載します。

  • データ暗号化、データマスキング、データアクセス制御などの追加機能を使用する
  • スロットを1600以上使用するワークロードがある

Enterprise Plus

Enterprise Editionよりも厳格なセキュリティとコンプライアンスなどが備わっています。
以下にユースケースを記載します。

  • Enterprise Editionに加えて、データ品質保証などの追加機能を使用する
  • 複雑かつ大規模なデータ処理タスク、リアルタイム分析などに適している

Autoscalingとは

BigQueryに命令されたクエリに対して、スロットを自動で調整してくれる機能です。
プロジェクト全体でEditionとAutoscalingを組み合わせて、スロットの使用量を最適化できます。
その他にも下記のような特徴があります。

  • スロット数の下限(Baseline)/上限(Max)の設定が可能
    • 下限スロット(Baseline):ワークロードがアイドル状態の時にBigQuery Autoscalerが維持する処理能力の量
    • 上限スロット(Max):ワークロードがピーク時のパフォーマンスを達成するためにBigQuery Autoscalerが使用できる処理能力の量
  • BigQueryのワークロードに必要な処理能力を自動的にスケーリング
  • ワークロードのアクティブ状況に応じて処理能力をスケールアップ/ダウン
    • 上限に設定したスロット数に達した場合、既存のスロットが使用可能になるまで待機状態になる
  • 全てのBigQuery Editionで利用可能

スロットの下限(Baseline)= 0、 上限(Max)= 500の場合の Autoscalingイメージ
スロットの下限=0、上限=500の場合のAutoscaling

スロット数の設定で考慮すべきポイント

下限/上限スロットを決定する決定する際には、以下の要素を考慮する必要があります。

  • ワークロードの種類
    ワークロードの種類によって、必要な処理能力の量が異なります。
    例:データ処理ワークロードは、機械学習ワークロードよりも多くの処理能力を必要とする場合など
  • データの量
    データの量によって、必要な処理能力の量が異なります。
    例:1TBのデータセットと、100GBのデータセットのどちらを処理するかで必要な処理能力は異なる
  • ワークロードの頻度
    ワークロードの頻度によって、必要な処理能力の量が異なります。
  • 予算
    どのエディションを使用するかなどを考慮し、適したスロット数を選択する必要があります。

Autoscalingの設定、予約を作成してみた

最後にAutoscalingの予約を作成してみましょう。

1. BigQueryタブの「容量管理」タブへ

容量管理タブ
この際、BigQuery Reservatioin APIを有効にしていない場合、有効にしておいてください。

2. 予約を作成

予約を作成ボタン

3. 予約の設定

予約の設定
ここでエディションからスロットのMax/Baselineを決定します。
ちなみにStandardはベースラインスロットは設定できないみたいです。
また、現在(2023/5/18)マルチリージョンなどの一部のリージョンでのみAutoscaling機能は利用可能です。

アイドルスロットは、使用されていない状態のスロットのことです。
無視する=スケールアウトの対象となるスロットは、ベースラインスロットのみになります。
よって、スケールアップしてスロットを作成しても、アイドル状態のスロットが作成されないため、料金の節約に役立ちます。

4. 予約の作成完了

予約が作成されていることを確認し、
予約の作成確認
予約の割り当てを設定します。
予約の割り当ての設定

まとめ

今回の記事では、以下の内容について紹介しました。

  • 新しい料金体系であるBigQuery Editions
  • Autoscalingを用いた料金の節約

7月にはほぼ完全にBigQuery Editionsに料金体系が移行され、Compressed Storage課金のGAの予定もあるため、BigQueryの料金体系が大きく変わっていきます。
料金体系についてしっかりと把握し、BigQueryを適切なコストで使用していきましょう。

Discussion