はじめに
タイムトラベル期間とフェイルセーフ期間中は、データセット内のテーブルで変更または削除されたデータは、復元が必要になった場合に備えて引き続き保存されます。
タイムトラベルとデータ保持
デフォルトでは、過去 7 日間のタイムトラベル期間内であれば、任意の時点の変更または削除されたデータにアクセスできます。
- タイムトラベルで出来ること
更新されたデータや削除されたデータのクエリを実行
削除されたテーブルやデータセットの復元
期限切れのテーブルの復元
テーブルを特定時点に復元
- タイムトラベルの期間の長さ
2~7 日の範囲で設定可能
設定基準
【更新または削除されたデータを復元できることが重要な場合】
→ 期間を長くする。
【ストレージ費用を節約する場合】
→物理ストレージの課金モデルを使用する場合、効果あり。
※論理ストレージの料金モデルを使用する場合は、
この費用削減は適用されません。
- タイムトラベルの構成
適用対象
プロジェクト
データセット
これらの設定は、プロジェクト、データセットに関連つけられる
テーブルに適用されます。
プロジェクト レベルのタイムトラベル期間を設定する
- プロジェクト レベルのタイムトラベル期間設定
プロジェクト レベルのデフォルトのタイムトラベル期間を
指定するには、データ定義言語(DDL)ステートメントを使用します
参照「構成設定を管理する」
- データセット レベルのタイムトラベル期間設定
タイムトラベル期間を指定または変更する方法、以下の3つがあります。
①Google Cloud コンソール
②bq コマンドライン ツール
③BigQuery API を使用
詳細は、下記リンクをご確認下さい。
プロジェクトレベルの設定
「構成設定を管理する」
データセットレベルの設定
新規データセットの作成
「データセットの作成」
既存データセットの期間変更
「タイムトラベル期間を更新」
フェールセーフ
BigQuery にはフェイルセーフ期間が用意されています。フェイルセーフ期間中は、削除されたデータがタイムトラベル期間が経過した後、
さらに 7 日間自動的に保持されるため、そのデータを緊急復旧に利用できます。データはテーブルレベルで復元できます。
データは、テーブル削除時のタイムスタンプが示す時点から復元されます。フェイルセーフ期間は構成できず、延長もできません。
- フェイルセーフ期間の復旧方法
フェイルセーフ ストレージ内のデータに対するクエリ実行や直接復元はできません。フェイルセーフ ストレージからデータを復元するには、Cloud カスタマーケアに連絡して下さい。
データ保持イメージ
下記の表は、削除されたデータまたは変更されたデータがストレージ保持期間間でどのように移動するかを示しています。この例では、アクティブなストレージの合計が 200 GB で、50 GB が削除され、タイムトラベル ウィンドウが 7 日間に設定されています。
課金
- 物理バイト数を使用するようにストレージ課金モデルの場合
タイムトラベル ストレージとフェイルセーフ ストレージに
使用されるバイト数は別途課金されます。
- 論理バイト数を使用するようにストレージ課金モデルの場合
タイムトラベル ストレージとフェイルセーフ ストレージの
合計ストレージ費用は、課金される基本料金に含まれます。
- 【参考資料】物理ストレージと論理ストレージの費用の比較
制限事項
タイムトラベルによるデータ取得には、次の制限があります
- タイムトラベルは、タイムトラベル期間中の履歴データにのみアクセス可能
- テーブルに行レベルでアクセス ポリシーが設定されている(または、すでに設定されていた)場合は、テーブル管理者のみがタイムトラベルを使用可能。
- タイムトラベルではテーブルのメタデータは復元できない。
- タイムトラベルは、次のテーブルタイプではサポートされていない
外部テーブル(※Apache Iceberg 外部テーブル以外)
一時キャッシュのクエリ結果テーブル
一時セッション テーブル
一時的なマルチステート
まとめ
タイムトラベルは、過去データを気軽に復旧できる。保持するストレージが論理ストレージであれば、追加費用はかからないので使い勝手がよい。フェールセーフは、タイムトラベル保持期間外でどうしても復旧したいデータがある場合、バックアップがなくてもデータ復旧可能です。