Skip to main content
Version: Next

Qdrant

Qdrant source connector

Description

Qdrant is a high-performance vector search engine and vector database.

The Qdrant source reads points from one existing Qdrant collection. Point payload fields are read as normal SeaTunnel columns, and Qdrant vectors are read as SeaTunnel vector columns.

Key Features

Options

nametyperequireddefault valuedescription
collection_namestringyes-Qdrant collection name to read from.
schemaconfigyes-SeaTunnel schema used to map Qdrant point IDs, payload fields, and vectors.
hoststringnolocalhostQdrant gRPC host.
portintno6334Qdrant gRPC port.
api_keystringno""Qdrant API key for authenticated deployments.
use_tlsboolnofalseWhether to use TLS for the gRPC connection.
common-optionsno-Source common options.

collection_name [string]

The name of the Qdrant collection to read.

schema [config]

The schema of the SeaTunnel rows produced by the source. For more details, see Schema Feature.

Each Qdrant record is a point:

  • A SeaTunnel primary key column is filled from the Qdrant point ID. Qdrant point IDs can be positive integers or UUID strings.
  • Vector columns are read from Qdrant vectors. For named vectors, the SeaTunnel column name must match the Qdrant vector name.
  • Other supported columns are read from the Qdrant point payload.
  • If the collection uses one default unnamed vector, use default_vector as the SeaTunnel vector column name.
  • Include only payload or vector fields that exist on the points being read. The source maps fields directly by name and expects configured fields to be present.

Example:

schema = {
columns = [
{
name = file_name
type = string
}
{
name = file_size
type = int
}
{
name = my_vector
type = float_vector
}
]
}

host [string]

The host name of the Qdrant instance.

port [int]

The gRPC port of the Qdrant instance.

api_key [string]

The API key used to connect to authenticated Qdrant deployments. Leave it empty when the Qdrant service does not require authentication.

use_tls [bool]

Whether to use TLS for the gRPC connection. Enable this when connecting to Qdrant Cloud or another HTTPS/TLS endpoint.

common options

Source plugin common parameters, see Source Common Options for details.

Supported Types

SeaTunnel typeQdrant value
STRINGpayload string or point UUID
BOOLEANpayload bool
TINYINTpayload integer
SMALLINTpayload integer
INTpayload integer or point numeric ID
BIGINTpayload integer
FLOATpayload double
DOUBLEpayload double
DECIMALpayload double
FLOAT_VECTORvector
BINARY_VECTORvector
FLOAT16_VECTORvector
BFLOAT16_VECTORvector

Notes

  • The collection must already exist before the job starts.
  • Vector field names and dimensions in Qdrant must match the vector columns in the SeaTunnel schema.
  • For a collection with one unnamed vector, name the SeaTunnel vector column default_vector.
  • The source is bounded and reads with one split, so it is not a parallel source.
  • Qdrant source emits INSERT rows only; it does not read CDC changes.

Task Example

The following example reads payload fields and a named vector from source_collection, then writes the rows to sink_collection.

env {
parallelism = 1
job.mode = "BATCH"
}

source {
Qdrant {
collection_name = "source_collection"
host = "localhost"
port = 6334
schema = {
columns = [
{
name = file_name
type = string
}
{
name = file_size
type = int
}
{
name = my_vector
type = float_vector
}
]
}
}
}

sink {
Qdrant {
collection_name = "sink_collection"
host = "localhost"
port = 6334
}
}

Changelog

Change Log
ChangeCommitVersion
[Feature][Transform-V2] Support vector series sql function (#9765)https://github.com/apache/seatunnel/commit/a40114cf7a2.3.12
[improve] qdrant options (#9235)https://github.com/apache/seatunnel/commit/f3a45cd1312.3.11
[Improve] restruct connector common options (#8634)https://github.com/apache/seatunnel/commit/f3499a6eeb2.3.10
[Feature][Restapi] Allow metrics information to be associated to logical plan nodes (#7786)https://github.com/apache/seatunnel/commit/6b7c53d03c2.3.9
[Feature][Connector-V2] Support Qdrant sink and source connector (#7299)https://github.com/apache/seatunnel/commit/c8590716ae2.3.8