🗑️
BigQueryでテーブルを誤って削除してしまった時の復元方法
やってしまったな。だが大丈夫だ。まず落ち着け。
削除から7日以内なら復旧できる。
8日以上経ってしまっていたら、諦めて別の対処法を考えよう。
復旧するのは少々面倒である。bqコマンドを使わないといけない。
cloud shell または、コンソールで実行する。
Macのターミナルの場合
-
まず、gcloudを有効にする(済みの場合は2へ)
手順 → Cloud SDKのクイックスタート -
削除したテーブルがあったプロジェクトに操作対象を変更する
$ gcloud config set project <プロジェクト名>
-
bq shellを立ち上げる
$ bq shell
-
削除されたテーブルを復元する
手順 → 削除されたテーブルを復元する
いつ時点のテーブルなのか、を指定する方法が2つ- UNIXタイムスタンプ(※ミリ秒単位なのに注意!)で絶対指定
(例:2022年3月1日0時0分0秒(JST) → 1646060400000)
$ cp mydataset.mytable@1646060400000 mydataset.newtable
- 現時点からの相対指定(※こっちは普通に秒単位!)
(例:1時間前 → -3600000)
$ cp mydataset.mytable@-3600000 mydataset.newtable
- UNIXタイムスタンプ(※ミリ秒単位なのに注意!)で絶対指定
Discussion