
背景
BigQueryでパーティショニングテーブルを作成することになりました。以前も作ったのですが、2度目作るにあたって情報がまとまってないことに気づいたのでこちらに記載していきます。
BigQueryのパーティショニング
BigQueryのパーティショニングの種類は以下のページにまとまっています。
https://cloud.google.com/bigquery/docs/partitioned-tables
今回のデータは日単位で集計したいと思っています。かつ、BigQueryでは標準時間になってしまうので、こちらで指定したカラムにdate型のデータを保持して、そのカラムの値を基準にパーティショニングしたいと思います。
分割テーブルの作成
では実際に作成していきます
スキーマの作成
スキーマはjsonファイルにまとめます
1 | [ |
created_dateというカラムを基準にパーティショニングします。test.jsonというファイルで保存します。
テーブルの作成
bqコマンドでテーブルを作成します。コマンドのオプションについてはこちらに記載があります。
オプションにはいろんな種類がありますが、利用するのは--schemaと--time_partitioning_fieldだけです。(--time_partitioning_typeはデフォルトがDAYのため)
1 | $ bq mk --table --schema test.json --time_partitioning_field created_date project:dataset.test |
テーブルの作成が終わったので内容を確認します。GCPのコンソールから作成したテーブルを選択、右の詳細タブを選択します。
表の情報の中にパーティションに関する情報が表示されます
1 | テーブルタイプ 分割 |
正しく作成できました。
まとめ
BigQueryでパーティションテーブルを作成する方法をまとめました。次回からはスムーズに行えると思います。