BigQueryのテーブルの復元方法
疲れてたりするとうっかりBigQueryのテーブルやデータセットを消してしまうことありますよね?? でも大丈夫!BigQueryは最新2日間であれば1秒ごとに全データのスナップショットを取っているのです!
ただし削除された後に同名のテーブルが作成されるとスナップショットを参照できなくなります!
テーブルの復元方法
スナップショットには以下の構文でアクセスできます。
PROJECT_ID:DATASET.TABLE@<time>
<time>
はエポックタイム(Unix Timestamp)で表わされます。
詳しい情報は以下のURLから。
https://cloud.google.com/bigquery/table-decorators?hl=ja
スナップショットをコピーするにはbq
コマンドを使用します。
(インストール方法や使い方は以下のURLから
https://cloud.google.com/bigquery/bq-command-line-tool?hl=ja)
安全に復旧するためには一度temporaryなデータセットにデータをコピーしてから、 元の場所にコピーしましょう。
例:
dataset_name.table_name
のスナップショットをtmp_dataset.table_name
にコピーbq cp dataset_name.table_name@1540869645 tmp_dataset.table_name
tmp_dataset.table_name
をdataset_name.table_name
にコピーbq cp tmp_dataset.table_name dataset_name.table_name
データセットごとやってしまった場合はこれをデータセット内の全テーブルに行うことでデータセットを復旧できます。
これでいつテーブルを消しても大丈夫!
参考: