BigQuery EditionsとAutoscalingについて
はじめに
こんにちは、クラウドエース データML ディビジョン所属の穂戸田です。
クラウドエースのITエンジニアリングを担うシステム開発部の中で、特にデータ基盤構築・分析基盤構築からデータ分析までを含む一貫したデータ課題の解決を専門とするのがデータML ディビジョンです。
データML ディビジョンでは活動の一環として、毎週Google Cloud の新規リリースを調査・発表し、データ領域のプロダクトのキャッチアップをしています。その中でも重要と考えるリリースを本ページ含め記事として公開しています。
今回紹介するリリースは、2023年 3月 29日のBigQuery EditionsとAutoscalingのリリースです。
このリリースにより、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イメージ
スロット数の設定で考慮すべきポイント
下限/上限スロットを決定する決定する際には、以下の要素を考慮する必要があります。
-
ワークロードの種類
ワークロードの種類によって、必要な処理能力の量が異なります。
例:データ処理ワークロードは、機械学習ワークロードよりも多くの処理能力を必要とする場合など -
データの量
データの量によって、必要な処理能力の量が異なります。
例: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