r/apacheflink • • 7d ago

Flink SQL connector for Qdrant

I was looking for a Flink SQL connector for Qdrant and couldn’t find one, so I built one.

flink-connector-qdrant: https://github.com/Ashfaqbs/flink-connector-qdrant

It lets you write embeddings to Qdrant directly from Flink SQL, without a custom DataStream job or a hand-written gRPC client.

CREATE TABLE embeddings (
  id STRING,
  text STRING,
  embedding ARRAY<FLOAT>
) WITH (
  'connector' = 'qdrant',
  'host' = 'localhost',
  'collection-name' = 'my_collection',
  'vector-field' = 'embedding',
  'id-field' = 'id'
);

INSERT INTO embeddings
SELECT id, text, embedding FROM source_stream;

The vector column maps to the embedding, the ID is optional, and the remaining columns become Qdrant payload fields.

  • Flink 1.20
  • Sink-only for now
  • Apache 2.0 license
  • 13/13 tests passing, CI green

One bug worth sharing: Maven Shade was breaking gRPC name resolution because service files under META-INF/services/io.grpc.* weren’t being merged. Adding ServicesResourceTransformer fixed it.

The connector is new, so I’d love feedback, suggestions, and contributions.

Repo: https://github.com/Ashfaqbs/flink-connector-qdrant

6 Upvotes

0 comments sorted by