スナップショット
On Requestスナップショットは、Zilliz Cloud コレクションの特定時点のイメージです。特定のタイムスタンプ時点のコレクションの状態をキャプチャし、効率的なストレージと復元のために、スキーマ、インデックス、ベクトルデータファイル(binlogs)などのメタデータとマニフェストファイルのみを保存します。
スナップショットはバックアップの代替にはなりません。スナップショットは短時間で作成および復元できるため、迅速なロールバック、バージョン管理、テスト(数日から数週間)といった短期間のニーズに適しています。一方、バックアップは、長期的な災害復旧(数週間から数年)のために別途保存される独立した完全なコピーであり、ストレージ全体の障害に対する保護を強化します。
バックアップを作成するには、バックアップの作成 を参照してください。
この機能は Dedicated クラスターでのみ利用できます。
スナップショットの構成
Zilliz Cloud は、実際のベクトルデータを複製せずにデータを効率的に特定時点でキャプチャ、保存、復元するための、マニフェストベースのスナップショットアーキテクチャを採用しています。このアーキテクチャではメタデータ管理と物理データストレージが分離されており、オブジェクトストレージ内の既存のセグメントファイルを参照する軽量なスナップショットを作成できます。
コレクションのスナップショットを作成すると、Zilliz Cloud は以下を収集します。
-
スナップショットメタデータ
スナップショットを作成するための基本情報を提供します。これには、スナップショットの名前と説明、対象コレクションの ID、スナップショットを作成する時点が含まれます。
-
コレクションの説明
対象コレクションの説明が含まれ、スキーマ定義、パーティション情報、プロパティが記述されています。
-
インデックス情報
インデックスのメタデータとインデックスファイルへのパスを保存します。
-
セグメントデータ
ベクトルデータファイル(binlogs)、削除ログ(deltalogs)、インデックスファイルをキャプチャします。
上記の情報のうち、Zilliz Cloud は各セグメントの Apache Avro マニフェストファイルを生成し、スナップショットメタデータ、コレクションの説明、インデックス情報、およびマニフェストファイルへのパスを JSON ファイルに保存します。次の図は、スナップショットのフォルダー構造を示しています。
snapshots/{collection_id}/
├── metadata/
│ └── {snapshot_id}.json # Snapshot metadata (JSON format)
│
└── manifests/
└── {snapshot_id}/ # Directory for each snapshot
├── {segment_id_1}.avro # Individual segment manifest (Avro format)
├── {segment_id_2}.avro
└── ...
スナップショットの作成には通常数ミリ秒かかり、復元にはデータ量に応じて数秒から数分かかります。
ストレージへの影響と考慮事項
Zilliz Cloud がスナップショット内のセグメントファイルまたはインデックスファイルを参照すると、スナップショットを削除しない限り、それらのファイルはガベージコレクションされません。スナップショットは対象コレクションのサイズに比例したストレージを消費し、スナップショットの保持にはオブジェクトストレージのコストがかかります。極端な場合、1つのスナップショットによってオブジェクトストレージのコストが 2 倍になることもあります。次のことをお勧めします。
-
ストレージを節約するために、古いスナップショットを定期的に削除してください。
-
後で参照できるように、わかりやすい名前と説明を使用してください。
-
スナップショットの作成および復元の結果を必ず確認してください。
-
スナップショットの作成タイムスタンプとストレージ使用量を追跡し、
-
監視とトラブルシューティングのために復元ジョブの ID を保存してください。
制限と制約
-
スナップショットは作成後に変更できなくなります。
-
スナップショットは、元のスナップショットと同じクラスター内の新しいコレクションにのみ復元できます。
-
復元されたコレクションは、同じスキーマ、シャード数、パーティション数を保持します。
-
復元された履歴データは、TTL ポリシーと競合する可能性があります。スナップショットを作成する前に、TTL を無効にするか、TTL 設定を調整することをお勧めします。
-
Zilliz Cloud でスナップショットを
milvus-tableの外部ソースとして使用するには、external_sourceをmilvus://スキーム(milvus://<instance_id>/<db_name>/<collection_name>)でソースコレクションを指すように設定します。詳細は、外部コレクションの作成 を参照してください。外部コレクションのスナップショットはソースとして使用できません。
関連情報
スナップショットの管理
このガイドでは、以下を含むスナップショットの作成と管理の方法について説明します | Cloud