ポイントインタイム リカバリ(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 ストレージ料金が請求されることがあります。
次のステップ
- PITR を使用したデータの復元方法の詳細をご覧ください。