ポイントインタイム リカバリ(PITR)の概要

Firestore のポイントインタイム リカバリ(PITR)は、偶発的な削除や書き込みから保護します。PITR により、過去のタイムスタンプのドキュメント バージョンが維持されます。たとえば、デベロッパーが誤ったデータを push した場合、偶発的に削除や書き込みを行った場合に、PITR は過去の時点(最大 7 日間)にデータをシームレスに復元できます。

ベスト プラクティスに沿っているライブ データベースでは、PITR を使用しても読み取りまたは書き込みのパフォーマンスに影響しません。

PITR 期間

PITR を有効にすると、Firestore が PITR データを保持するようになります。PITR データは PITR 期間に 7 日間保持されます。

PITR を有効にした時刻に基づいて、タイムスタンプのデータを読み取ることができます。

PITR の有効化ステータス 利用可能な最も古い PITR データ
無効 読み取りリクエストの 1 時間前
7 日以内に有効化 PITR を有効化した 1 時間前
7 日以上前に有効化 読み取りリクエストの 7 日前

PITR 期間には 1 分あたり 1 つのバージョンが保持されます。1 分単位のタイムスタンプを使用して、ドキュメントを分単位で読み取ることができます。分単位ではない読み取り(2023-05-30 09:00:00.1234AM など)では、read_time が古すぎるというエラーが返されます。

複数の書き込みがあった場合、1 つのバージョンのドキュメントのみが保持されます。たとえば、ドキュメントに対して 2023-05-30 09:00:00AM(含まない)と 2023-05-30 09:01:00AM(含む)の間のタイムスタンプに v1, v2, ... vk からの複数の書き込みがあった場合、タイムスタンプ 2023-05-30 09:01:00AM の読み取りリクエストには vk バージョンのドキュメントが返されます。

PITR 期間内に作成されたデータから読み取ることができます。各データは分単位で保存され、同じ粒度でデータを復元できます。Firestore の PITR 機能は、デフォルトでは無効になっています。

データベースの earliestVersionTime フィールドには、データを読み取ることができる最も早い時刻を指定します。

PITR が有効であるかどうかにかかわらず、過去 1 時間以内かつ earliestVersionTime より後であれば、任意のタイムスタンプ(マイクロ秒単位)のドキュメントを読み取ることはできますが、エクスポートすることはできません。

データの復元方法

データを復元するには、次の 2 つの方法があります。

  • データベースの一部を復元するには、クエリ条件を指定するか、過去のタイムスタンプで直接キールックアップを使用してステイル読み取りを実行し、結果をライブ データベースへ書き戻します。これは通常、ライブ データベースの外科的オペレーションに使用されます。たとえば、特定のドキュメントが偶発的に削除された場合や、データのサブセットを誤って更新した場合、この方法で復元できます。手順については、データベースの一部を復元するをご覧ください。

  • データベース全体を復元するには、過去のタイムスタンプを指定してデータベースをエクスポートし、新しいデータベースにインポートします。PITR のエクスポート オペレーションは、すべてのドキュメントのエクスポート、特定のコレクションのエクスポートなど、すべてのフィルタをサポートしています。PITR データをエクスポートできるのは、タイムスタンプが過去 7 日間以内(ただし earliestVersionTime 以降に)発生した、1 分単位のタイムスタンプである場合のみです。

料金

データベースで PITR を有効にする前に、次の価格情報を見て検討してください。

  • ストレージ: Firestore はデータベースのサイズを毎日測定します。サンプル ポイントの1か月平均をとってデータベースのストレージ サイズを計算します。この平均値に PITR の単価(GB-月)を掛けます。詳細については、ストレージの料金をご覧ください。

    PITR ストレージには無料枠がないため、PITR を使用する場合は、課金を有効にする必要があります。

  • コンピューティング料金: 7 日間の PITR 期間内に行われたクエリ(ステイル読み取りまたはエクスポート)には、読み取ったドキュメントの数に基づいて読み取りオペレーションのコストが発生します。詳細は料金をご覧ください。

  • 最低請求金額: PITR を有効にしてから 1 日以内に無効にしても、最大 1 日の PITR ストレージ料金が請求されることがあります。

次のステップ