Skip to content

Как развернуть Vector Database

Коротко:

Vector DB setup: (1) Выбор — Qdrant (Rust open-source, fast), pgvector (extension Postgres, simple), Weaviate (hybrid search), (2) Docker deploy или managed cloud, (3) Create collection с vector size (1536 для OpenAI, 768 для bge-small), (4) Configure HNSW parameters (m=16, ef_construct=100), (5) Upsert + search, (6) Monitor via Grafana + Enterno Ping для health.

Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.

Попробовать бесплатно →

Пошаговая настройка

  1. Docker: docker run -d -p 6333:6333 -v qdrant_data:/qdrant/storage qdrant/qdrant:latest
  2. Create collection: POST /collections/docs с vector size + distance metric
  3. Batch upsert: 100-1000 points per request (faster than single)
  4. Create HNSW index automatically (Qdrant) или explicit (pgvector)
  5. Add metadata filters для pre-filtering (category, date, lang)
  6. Monitor: /health endpoint + RPS + p95 latency
  7. Backup: snapshot API → S3

Рабочие примеры

СценарийКонфиг
Qdrant create collectioncurl -X PUT http://localhost:6333/collections/docs \ -H 'Content-Type: application/json' \ -d '{ "vectors": {"size": 1536, "distance": "Cosine"}, "hnsw_config": {"m": 16, "ef_construct": 100} }'
pgvector in PostgresCREATE EXTENSION vector; CREATE TABLE docs (id bigint, embedding vector(1536), payload jsonb); CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops); -- Query SELECT id FROM docs ORDER BY embedding <=> '[0.1,...]' LIMIT 5;
Weaviate hybrid searchclient.query.get('Doc', ['content']) .with_hybrid(query='TLS cert', alpha=0.5) .with_limit(10).do()
Qdrant batch upsertcurl -X PUT http://localhost:6333/collections/docs/points/batch \ -d '{"batch": {"ids": [1,2,3], "vectors": [[...],[...],[...]], "payloads": [{...},{...},{...}]}}'
Prometheus monitoring# Qdrant exposes /metrics с prom format scrape_configs: - job_name: qdrant static_configs: - targets: ['qdrant:6333']

Типичные ошибки

  • Maxmemory: HNSW всё в RAM. 10M × 1536-dim × 4 bytes = 60 GB + graph overhead 3x → 180 GB RAM
  • Distance metric mismatch: cosine vs euclidean — results отличаются. Определитесь на старте
  • Vector size change требует recreate collection. Plan carefully
  • No metadata filter при query → полный scan. Всегда используйте filter
  • Cloud cost ловушка: managed Pinecone $70+/mo для 100k vectors. Qdrant self-host $5/mo VPS

Больше по теме

Часто задаваемые вопросы

pgvector достаточно?

До 1M vectors — да. Embedded в Postgres = single DB, transactional. Больше 10M — dedicated vector DB.

Qdrant vs Weaviate?

Qdrant: focus на vectors, fast Rust. Weaviate: hybrid search built-in, modular. Для pure vector — Qdrant. Для hybrid — Weaviate.

Backup / HA?

Qdrant: snapshot API, multi-region replication (Enterprise). pgvector: стандартный Postgres backup (pg_dump, WAL).

Как monitor uptime?

<a href="/ping">Enterno Ping</a> для порта 6333/5432. <a href="/monitors">Monitors</a> для /health endpoint + alerts.