BigQueryテーブルへのパーティション追加

概要

  • 既存の非パーティションテーブルを直接パーティションテーブルに変更することはできない
  • 新しいパーティションテーブルを作成し、データをコピーする方法で実現可能

手順

  1. 新しいパーティションテーブルの作成とデータのコピー
CREATE TABLE `project_id.dataset_id.new_partitioned_table`
PARTITION BY DATE(timestamp_column) AS
SELECT * FROM `project_id.dataset_id.original_table`;
  1. 元のテーブルの削除と新テーブルの名前変更
DROP TABLE `project_id.dataset_id.original_table`;
ALTER TABLE `project_id.dataset_id.new_partitioned_table`
RENAME TO `project_id.dataset_id.original_table`;

注意点

  • 大量データの場合、時間とリソースを要する
  • パーティションキーの列は適切なデータ型である必要がある
  • テーブル設計に影響を与えるため、慎重な計画が必要

メリット

  • クエリパフォーマンスの向上
  • コスト削減の可能性

その他

  • 時系列パーティショニング以外に、整数範囲パーティショニングも利用可能
  • 整数範囲パーティショニングを使用する場合は、CREATE TABLE文を適宜調整する