📘

BigQuery のパーティショニングとクラスタリングの Recommender がプレビューになりました

2023/07/10に公開

はじめに

こんにちは、クラウドエース データML ディビジョン所属の小林です。

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

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

今回紹介するリリースは、「BigQuery のパーティショニングとクラスタリングの Recommender」についてです。
このリリースにより、BigQuery テーブルの最適化と、それによるクエリのパフォーマンス向上、処理コストの削減に関する情報が提供されるようになりました。
なお、この機能はプレビュー段階になります。

BigQuery の概要

BigQuery は、Google Cloud が提供するフルマネージドでサーバーレスなデータウェアハウスになります。
SQLによる操作で、大規模なデータを処理することができ、コストパフォーマンスが高いという特徴があります。

今回のリリースについて

今回ご紹介するのは、2023年5月25日付に発表された BigQuery の The BigQuery partitioning and clustering recommender という機能についてです。

該当リリースノート:BigQuery release notes

リリース概要

BigQuery のパーティショニングとクラスタリングの Recommender は過去30日間のワークロード実行データを使用して、最適以下のパーティショニングとクラスタリングの構成について BigQuery テーブルを分析します。
機械学習を活用し、異なるパーティショニングとクラスタリングの構成でワークロードの実行が最適化されるのかの予測も行い,大幅な削減が期待できる場合には推奨事項を生成してくれます。

制限事項

レガシー SQL クエリは分析から除外されます。

料金

推奨事項の表示に費用が生じることはありません。

パーティショニングとは

BigQuery テーブル内のデータを特定の列に基づいて論理的に分割する機能です。
データはパーティションと呼ばれるセグメントに分割され、それぞれのパーティションは個別にクエリできます。
パーティショニングを使用することで、必要なデータだけをクエリの対象にすることができ、クエリのパフォーマンスの向上、処理コストの削減を行えます。
https://cloud.google.com/bigquery/docs/partitioned-tables?hl=ja

クラスタリングとは

BigQuery テーブルの特定の列に基づいてテーブルのデータを物理的にソートする機能です。
ソートにより、同じ値を持つデータが近くに集まり、クエリの実行時にデータへのアクセスが効率化されます。
クラスタリングを使用することで、クエリの処理の効率化をすることができ、クエリのパフォーマンスの向上、処理コストの削減を行えます。
https://cloud.google.com/bigquery/docs/clustered-tables?hl=ja

確認してみた

The BigQuery partitioning and clustering recommenderでは Google Cloud CLI または Recommender API を使用して推奨事項を確認する方法が説明されていますが、Google Cloud コンソールの UI 上から確認することもできます。
そちらを確認してみましょう。

手順

  1. 推奨事項にアクセスするために必要な BigQuery パーティショニング クラスタリング Recommender 閲覧者(roles/recommender.bigqueryPartitionClusterViewer)の IAM ロールをプリンシパルに付与します。
    alt

  2. Google Cloud コンソールで BigQuery のページを開きましょう。Google Cloud コンソールの右上に表示されている電球マークから推奨事項にアクセスできます。
    alt

  3. 推奨事項が生成されている場合は推奨事項の一覧が表示されます。推奨事項には次のような情報が表示されます。

  • 推奨されるパーティショニングまたはクラスタリングを行うためのガイダンス
  • 対象のテーブル名
  • 推奨事項の適用によって毎月削減される、スキャンするバイト数と消費されるスロットの時間
    alt
  1. 推奨事項の例に貼られているリンク先にアクセスすると、推奨事項の生成に使われた分析情報も確認することができます。
    alt

まとめ

今回は、BigQuery のパーティショニングとクラスタリングの Recommender についてご紹介しました。
このリリースにより、BigQuery テーブルの最適化と、それによるクエリのパフォーマンス向上、処理コストの削減に関する情報が提供されるようになりました。
生成された推奨事項を適用して処理コストの削減をした後は、 BigQuery Editions のスロット数自動調整機能である Autoscaling のスロット数の下限値や上限値の設定の見直しも行えるのではないでしょうか。
プレビュー段階ではありますが、是非ご活用ください。

関連記事

BigQuery EditionsとAutoscalingについて

Discussion