BETA

BigQueryでテーブル作成後にtime_partitioning_fieldを追加設定する

投稿日:2019-02-06
最終更新:2019-02-06

モチベーション

BigQueryでテーブルを作るとき、--time_partitioning_field オプションを付けると、Partitioned Table(日付分割テーブル)になります。

こうすることで、大量データでもクエリのコストを大幅に節約出来るようになります。

BigQueryで「日付別テーブル」や「テーブルパーティショニング」を活用して大規模データを扱う - Qiita

しかし、あとからtime_partitioning_fieldを設定したいことが稀にあります。

①普通のテーブルに後からpartition_fieldを追加する

Queryを発行し、コピーすると当時にpartition_fieldを追加する
(※ BigQueryコマンドラインツールが必要です)

 bq query --use_legacy_sql=false --allow_large_results --replace --time_partitioning_field=time --destination_table=SOME_DATASET.new_table "SELECT * FROM SOME_DATASET.old_table"

②テーブルをリネームする

BigQueryではリネーム出来ません(汗)
その代わり、コピー&削除でリネームしてしまいます。

GCP BigQueryのテーブル名を変更する

クラウドDWHを使い始めると、PostgresなどのRDBの常識が通用しない。
古い固定概念を捨て、発想の転換を常に意識して向き合う必要があるな、と思う今日このごろ

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

217 Technologies Blog

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!