Recalcularea embeddings pentru tot corpusul costă timp și bani, deci colecțiile vectoriale au nevoie de backup ca orice altă bază de date. Fiecare motor are mecanismul lui.
Qdrant: un snapshot de colecție conține configurația, toate punctele și payload-urile (nu și aliasurile) și se salvează ca fișier .snapshot. Restaurarea se face din URL sau fișier local (PUT .../snapshots/recover), prin încărcarea fișierului, ori la pornire cu argumentul --snapshot cale:colectie (instalări cu un singur nod). Variabila QDRANT__STORAGE__SNAPSHOTS_PATH doar schimbă directorul în care se salvează snapshot-urile. În Qdrant Cloud există și backup-uri la nivel de disc. Pinecone: un backup este o copie statică, neinterogabilă, a unui index serverless; se poate programa zilnic, săptămânal sau lunar, cu retenție, și se poate crea un index nou din backup.
pgvector: coloanele vector sunt incluse în backup-urile obișnuite PostgreSQL (pg_dump, point-in-time recovery). Pentru migrarea între motoare nu există un format standard; o variantă practică este exportul perechilor (id, vector, metadate, text) într-un format columnar precum Parquet și reîncărcarea în loturi. Păstrează și numele și versiunea modelului de embedding: vectorii de la modele diferite nu sunt compatibili.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
POST /collections/{nume}/snapshots |
Creează un snapshot de colecție (Python: client.create_snapshot(collection_name=...)). |
PUT /collections/{nume}/snapshots/recover |
Restaurează din location (URL sau file://); priority decide ce se întâmplă la conflict cu datele existente. |
--snapshot cale:colectie |
Restaurare la pornirea binarului Qdrant, pentru un singur nod. |
snapshots_path / QDRANT__STORAGE__SNAPSHOTS_PATH |
Directorul de stocare al snapshot-urilor; nu restaurează nimic. |
Backup Pinecone |
Copie statică a unui index serverless; programare cu frecvență și retenție (API 2026-04+). |
pg_dump -Fc |
Backup PostgreSQL în format custom, inclusiv coloanele vector. |
Exemple practice și scenarii reale
Exemplul 1: Snapshot din Python și restaurare pe alt nod
from qdrant_client import QdrantClient
sursa = QdrantClient(url="http://qdrant-node-1:6333")
sursa.create_snapshot(collection_name="articole")
destinatie = QdrantClient(url="http://qdrant-node-2:6333")
destinatie.recover_snapshot(
"articole",
"http://qdrant-node-1:6333/collections/articole/snapshots/<nume>.snapshot",
)
Exemplul 2: Backup pgvector cu pg_dump
pg_dump -Fc -d blog -t articole > articole.dump
Exemplul 3: Export în Parquet cu pyarrow
import pyarrow as pa
import pyarrow.parquet as pq
tabel = pa.table({"id": ids, "vector": vectori, "text": texte})
pq.write_table(tabel, "vectori.parquet")
Greșeli frecvente și capcane
- Crezi că setarea
QDRANT__STORAGE__SNAPSHOTS_PATHla pornirea containerului restaurează un snapshot. Restaurarea cere--snapshot, endpoint-ulrecoversau încărcarea fișierului. - Restaurezi din URL în Qdrant Cloud. Documentația spune că acolo traficul de ieșire este blocat; încarcă fișierul.
- Exporți vectorii fără numele modelului de embedding și fără dimensiune. La migrare nu mai știi dacă poți amesteca vectorii vechi cu cei noi.