はじめに
BigQueryを使うにあたって、クエリー料金を安く抑えるのに重要と思われる
パーティション分割について調べたときのメモ
パーティション分割とは?
- テーブルをパーティションキーに指定した値でパーティションとして分割することができる
- パーティションをクエリーの条件に指定することでスキャン量をへらすことができる★
- テーブルを作るときに「パーティションとクラスタ」の設定でパーティション分割に利用する列を指定できる
- 列の型にあわせて、パーティションタイプを選べる
- パーティション列にDATETIMEを指定した場合は、「1日毎」「1時間ごと」「月別」「年別」を選択することができる
パーティションの一覧を確認するには?
- INFORMATION_SCHEMA を使用したテーブル メタデータの取得 | BigQuery | Google Cloud
INFORMATION_SCHEMA.PARTITIONS
テーブルを参照する方法を使う、ただしプレビュー機能となっている
select * from プロジェクト名.データセット名.INFORMATION_SCHEMA.PARTITIONS
クエリー設定をレガシーSQLに変更する必要があるが次の方法でも可能
select * from [ プロジェクト名.データセット名.対象テーブル名$__PARTITIONS_SUMMARY__]
パーティションを削除するには?
手動での削除
下記のように書いてあるが、DROP VIEW
DROP TABLE
などは見つかるものの DROP PARTITION
という構文は見つからなかった。
テーブルの削除、ビューの削除、個々のテーブル パーティションの削除、ユーザー定義関数の削除は無料です。
料金 | BigQuery: クラウド データ ウェアハウス | Google Cloud
有効期限による削除
パーティションキーをもとにテーブルにパーティションの有効期限を設定することで、
期限切れのパーティションを自動で削除してくれる。
日時をもとにしたパーティションであれば、テーブルのデータを一定期間に保つことができる
まとめ
BigQueryのパーティションの使い方についてメモでした。