🗑️

BigQueryでテーブルを誤って削除してしまった時の復元方法

2022/03/04に公開

やってしまったな。だが大丈夫だ。まず落ち着け。

削除から7日以内なら復旧できる。
8日以上経ってしまっていたら、諦めて別の対処法を考えよう。

復旧するのは少々面倒である。bqコマンドを使わないといけない。
cloud shell または、コンソールで実行する。

Macのターミナルの場合

  1. まず、gcloudを有効にする(済みの場合は2へ)
    手順 → Cloud SDKのクイックスタート

  2. 削除したテーブルがあったプロジェクトに操作対象を変更する

    $ gcloud config set project <プロジェクト名>
    
  3. bq shellを立ち上げる

    $ bq shell
    
  4. 削除されたテーブルを復元する
    手順 → 削除されたテーブルを復元する
    いつ時点のテーブルなのか、を指定する方法が2つ

    • UNIXタイムスタンプ(※ミリ秒単位なのに注意!)で絶対指定
      (例:2022年3月1日0時0分0秒(JST) → 1646060400000)
    $ cp mydataset.mytable@1646060400000 mydataset.newtable
    
    • 現時点からの相対指定(※こっちは普通に秒単位!)
      (例:1時間前 → -3600000)
    $ cp mydataset.mytable@-3600000 mydataset.newtable
    

Discussion