間違えてBigQueryのテーブルを消しても復元できるというのを皆さん知ってましたか!?
バックアップというよりも、1秒単位でスナップショットを自動で取ってくれています。
(ちなみに2日以内であれば復元できます)
今回本当に復元できるのかテストしてみたので、間違えても皆さんビビらないよう対応できたらと思います。
■削除されたテーブルの復元
https://cloud.google.com/bigquery/docs/managing-tables?hl=ja#undeletetable
■Recover deleted table in Google BigQuery
https://medium.com/@rajeshhegde/recover-deleted-table-in-google-bigquery-53d1ee7122c9
temporaryデータセットにデータをコピーしてから元の場所にコピーするのがふさわしいみたい。
■Delete table
“あえて“対象のテーブルを削除してみます。
- 戻したい日にちをunixtimeに変換
1 2 |
$ date -d "2019/02/27 12:00" +%s 1551236400 |
ミリ秒単位じゃないと認識しないので上記の数値に000を3つつけます。
- tmpに対象のテーブルをコピーする
1 2 3 |
$ bq cp adachin-data.table@1551236400000 tmp.table Waiting on bqjob_r5728c477f882621a_000001692dcb938c_1 ... (0s) Current status: DONE Table 'xxxxxxx__xxxxxxxxxx@1551236400000' successfully copied to 'xxxxxxxx:tmp.table' |
- tmp
- 元のデータセットに戻す
1 2 3 |
$ bq cp tmp.table adachin-data.table Waiting on bqjob_r6e81578d29f648ff_000001692dce55a0_1 ... (0s) Current status: DONE Table 'xxxxxxxxx:tmp.table' successfully copied to 'xxxxxx:adachin-data.table' |
■まとめ
データセットまるごと消しても同じように復元可能!
しかし世代が2日って…別でスクリプト(7世代)作って運用したほうが良さそう。
ちなみにviewテーブルのクエリバックアップは以下。
0件のコメント