Skip to main content
Version: Next
qdrantINPUTBUFFERPROCESSOROUTPUT

Qdrant

The qdrant output upserts each batch's rows as Qdrant points over the REST API. Each row becomes one point: the vector comes from a FixedSizeList(Float32)/List(Float32) column (typically produced by the embedding processor), an optional id column keys the point, and every remaining column lands in the point payload.

Configuration​

FieldTypeRequiredDefaultDescription
typestringyes—qdrant
urlstringyes—Qdrant base URL (e.g. http://localhost:6333).
collectionstringyes—Target collection name.
vector_fieldstringnoembeddingColumn holding the vector.
id_fieldstringno—Column used as the point id (unsigned integer or string). When omitted, the console generates a random UUID v4 per row — redelivery inserts duplicates, so prefer an id column for at-least-once idempotency.
payload_fieldsarraynoall other columnsColumns included in the point payload.
api_keystringno—Sent as Authorization: Bearer. Supports secret references.
timeout_msintegerno30000HTTP request timeout.
retry_countintegerno3Retry attempts for connection errors and 5xx responses; 4xx responses fail immediately.
headersmapno—Extra HTTP headers.

Semantics​

  • Writes use PUT /collections/{collection}/points?wait=true — one bounded request per slice of at most 1,000 points; larger batches are split sequentially.
  • Upserts are idempotent per point id: with an id_field, redelivery overwrites the same point (at-least-once friendly); without one, a fresh UUID is generated per row, so every attempt inserts a new point.
  • The vector's dimension must match the collection's; mismatches are returned by Qdrant as a 4xx and fail the batch (routed to error_output when configured).
  • Requests to loopback endpoints (a local Qdrant instance) always bypass the system proxy.

Example​

output:
type: "qdrant"
url: "http://localhost:6333"
collection: "documents"
vector_field: "embedding"
id_field: "doc_id"

Complete Pipeline Example​

logging:
level: info

streams:
- id: docs-upserts
input:
type: memory
pipeline:
processors:
- type: json_to_arrow
output:
type: qdrant
url: "http://localhost:6333"
collection: "documents"
vector_field: "embedding"
id_field: "doc_id"