【アップデート情報 / BigQuery】 テーブルのcloneがGAになりました

2023.05.04

2023年5月3日にBigQueryのClone機能がGAになりました。

この記事ではCloneの概要や作り方、注意点など紹介したいと思います。

Cloneとは

Cloneはテーブルを複製することができます。(これ以降、複製元のテーブルをベーステーブル、複製したテーブルをクローンテーブルと呼びます)
クローンテーブルはベーステーブルと独立しているため、片方のテーブルの変更がもう片方のテーブルに反映されません。
コピーとの違いは、ベーステーブルに含まれないデータに対するストレージにのみ課金されます。そのため通常のコピーに比べ、費用を安価に抑えることができます。
似たようなテーブルにスナップショットがありますが、Cloneは書き込みも可能なテーブルになります。

Cloneのストレージ費用

ストレージ費用には以下のようなルールがあります。

  1. クローンテーブルの中でベーステーブルに存在しないデータにのみ課金される。
  2. 1より、テーブルがクローンされた直後は費用が発生しない。
  3. ベーステーブルとクローンテーブルの両方に存在するデータの中でベーステーブルのデータを変更 & 削除されたデータのストレージ料金が課金される。

参照URL:https://cloud.google.com/bigquery/docs/table-clones-intro?hl=ja#storage_costs

Cloneの作成方法

Cloneを作成する方法はSQLbqコマンドAPIの3種類が存在します。
ここではSQLbqコマンドで作成する方法を紹介したいと思います。

  • SQL
CREATE TABLE myproject.myDataset_backup.myTableClone
CLONE myproject.myDataset.myTable;
  • bqコマンド
bq cp --clone -n project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME

このようにテーブルのクローンは簡単に作ることができます。

注意事項

クローンには以下のような注意事項があります。
他にも注意事項はいくつかあるので公式ドキュメントをしっかり確認しましょう。

  1. クローンテーブルは同じリージョンで同じ組織である必要があります。前述の条件が揃えば、異なるプロジェクトでクローンすることも可能です。
  2. ビューやマテリアライズドビュー、外部テーブルのクローンは作成できません。
  3. クローンでベーステーブルを上書きすることはできません。
  4. クローンテーブルの複製は深さ3まで可能です。

参考ドキュメント:https://cloud.google.com/bigquery/docs/table-clones-intro#limitations
参考ドキュメント:https://cloud.google.com/bigquery/docs/table-clones-intro#limitations_2

まとめ

この記事ではCloneについてざっくり紹介しました。
この機能のアップデートにより、同じテーブルに対する複数のSQLの動作を比較するような場合にクローンしたテーブルを用意することで今までよりも安価に検証することができるようになったと思います。
皆さんも是非使ってみましょう。