はじめに
BigQueryのタイムトラベル機能についての紹介です。
以下のようなケースで利用できます。
- 間違ってテーブルを削除、上書きしてしまった
- 調査等でテーブルの過去のデータを参照したいが洗い替えられており分からない
※注意点として、現時点では7日前までしか遡ることができません。
タイムトラベル期間を過ぎているとエラーメッセージが表示されます。
使い方
BigQueryのCloud Shellで以下のコマンドを実行
bq cp プロジェクト名:データセット名.テーブル名@Unix エポック時刻からの経過時間( ミリ秒) コピー先のプロジェクト名:データセット名.テーブル名
Unix エポック時刻からの経過時間は、以下のサイトのツールで計算した値を入力
もしくは、以下のようなSQLでも取得可能です
SELECT UNIX_MILLIS(TIMESTAMP('2022-12-01 12:00:00', 'Asia/Tokyo'));
実行例
2022/12/01 12:00:00時点のtarget_tableをtarget_table_restoredとして復活(コピー)させる
bq cp my_project:my_dataset.target_table@1669863600000 my_project:my_dataset.target_table_restored
現在から1時間前のデータが欲しい場合
bq cp my_project:my_dataset.target_table@-3600000 my_project:my_dataset.target_table_restored
「○○時間前」のような指定をする場合は「-」をつける