BigQueryでの削除されたテーブルの復元方法

に公開

お疲れ様です。
BigQueryのデフォルトのテーブルの有効期限の設定によりデータが消えてしまっていた..!復元したい!!という方に向けた記事です。

はじめに

Firebase Analyticsで取得したイベント情報をBigQueryに連携していたのですが、データの有効期限が60日となっており、それ以前のデータが閲覧できませんでした。
BigQueryにはタイムトラベルという機能があり、7日前までなら復元できるとのこと。
=> 試してみます!

遡りたい時点のエポックミリ秒を取得

「5日前に戻りたい!!」のでBigQueryにて以下を実行!

SELECT UNIX_MILLIS(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 5 DAY))

1748587571303が取得できました。

過去の削除されたテーブルを既存のデータセットにコピー

現在2025年6月4日。BigQueryには2025年4月5日までのデータしか残っていませんでした。
4月分は残しておく必要があるため、analytics_379006538の4月1日から4月4日のテーブルを復元したい!です。
ターミナルにて以下を実行し、5日前時点のevents_20250401からevents_20250404までを復元したいです。


↑のような状態で最も古い日付が2025年4月5日です。

bq cp analytics_379006538.events_20250401@1748587571303 analytics_379006538.events_20250401

ログ
(project-id部分のみ置き換えてあります)

(base) maakusaito ~ % bq cp analytics_379006538.events_20250401@1748587571303 analytics_379006538.events_20250401
Waiting on bqjob_r29b9dae97f44b806_0000019739bddee4_1 ... (0s) Current status: R                                                                                Waiting on bqjob_r29b9dae97f44b806_0000019739bddee4_1 ... (0s) Current status: DONE   
Table '{project-id}:analytics_379006538.events_20250401@1748587571303' successfully copied to '{project-id}:analytics_379006538.events_20250401'

成功した模様。
BigQueryを確認してみます。

20250401のデータがありました!復元できてます!!

同様に2025年4月2~4日のデータを復元します。
4月2日分

bq cp analytics_379006538.events_20250402@1748587571303 analytics_379006538.events_20250402

4月3日分

bq cp analytics_379006538.events_20250403@1748587571303 analytics_379006538.events_20250403

4月4日分

bq cp analytics_379006538.events_20250404@1748587571303 analytics_379006538.events_20250404

最終確認してみましょう!

ちゃんとありました!

復元データの確認

テーブルだけ復元されていて、データがない...なんてことないですよね。
念のため確認してみます。

BigQueryにて以下のSQLにて確認。

SELECT * FROM `{project-id}.analytics_379006538.events_20250401` LIMIT 100

ちゃんとありました。一件落着。

最後に

ふぅ。よかった。
もし同じ境遇の方いたら参考にしてみてください。
GPT o3ががまともな回答出してくれなかったので、久しぶりにググって解決できました。

参考

https://www.softbank.jp/biz/blog/cloud-technology/articles/202212/bigquery/
ありがとうございます!

Xでは、FlutterやAIについてキャッチアップした情報を発信しています!
フォローお願いします!
https://x.com/marksaito4

Discussion