「BigQueryのテーブルを最適化するためにSQLに1行追加する方法」

『BigQueryテーブルを最適化するための1行追加のSQL方法』

クラスタリング:類似の行をグループ化し、不要なデータ処理を防ぐ簡単な方法

前の記事では、パーティショニングを使用してSQLクエリを最適化する方法について説明しました:

パーティションを使おう、ルーク!SQLクエリを最適化するための簡単で効果的な方法

もしも以前に実行に時間がかかるSQLクエリを書いたことがあるなら、この記事はあなたにぴったりです

towardsdatascience.com

今回は、その「続編」を書いています!(ダジャレ、誰か?)

この記事ではクラスタリングについて取り上げます。クラスタリングは、BigQueryで使用できる別の強力な最適化技術です。パーティションと同様に、クラスタリングはより高速かつ低コストで実行可能なクエリを作成するのに役立ちます。SQLのツールキットを開発し、より高度なデータサイエンスのスキルを構築したい場合は、この記事が最適なスタート地点です。

クラスタリングされたテーブルとは?

BigQueryでは、クラスタリングされたテーブルは物理的な「ブロック」に類似の行をグループ化して保持するテーブルです。

例えば、架空のウェブサイトでアカウントを登録するすべての人を追跡するテーブルuser_signupsを想像してみてください。このテーブルには以下の4つの列があります:

  • registration_date:ユーザーがアカウントを作成した日付
  • country:ユーザーの所在国
  • tier:ユーザーのプラン(「無料」または「有料」)
  • username:ユーザーのユーザー名

例えば、countryでテーブルをクラスタリングすることで、同じ国のユーザーがテーブル内で近くに格納されます:

Image by author

ご覧の通り、テーブル内の各「ブロック」には特定の国のユーザーが含まれています。クラスタリングされたテーブルは同じデータを保持しており、効率的な方法で並べ替えられているだけです。

クラスタリングはクエリの高速化に役立ちます。なぜなら、BigQueryが処理するデータ量が少なくなるからです

クラスタリングされたテーブルをクエリする際、BigQueryはまずクエリの実行に必要な関連するブロックを特定します。この前処理ステップ(ブロック剪定とも呼ばれます)により、クエリの実行がより迅速でコスト効果が高くなります。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more