Confluent Kafka 연동
Confluent Kafka 연동 (confluent)
Apache Kafka®의 원래 개발자들이 만든 Confluent Cloud는 AWS, Azure, Google Cloud에서 쓸 수 있는 클라우드 네이티브 데이터 스트리밍 플랫폼이에요. 완전 관리형으로 탄력적으로 확장되는 Kafka 엔진, 120개 이상의 커넥터, serverless Apache Flink®, 엔터프라이즈급 보안 통제, 그리고 견고한 거버넌스(governance) 스위트를 갖추고 있어요.
Qdrant-Kafka Sink Connector 덕분에 Qdrant는 Confluent의 Connect with Confluent 기술 파트너 프로그램에 참여하고 있어요. 이 커넥터는 Confluent Cloud에서 완전 관리형 데이터 스트림을 조직으로 직접 가져와요. 덕분에 완전 관리형 Apache Kafka 서비스로 어떤 데이터든 Qdrant로 스트리밍하기가 훨씬 쉬워져요.
사용 방법 (Usage)
사전 준비 (Pre-requisites)
- Confluent Cloud 계정 — 처음 30일 동안 쓸 수 있는 크레딧이 포함된 무료 체험판으로 시작할 수 있어요.
- 연결할 Qdrant 인스턴스 — cloud.qdrant.io에서 무료 클라우드 인스턴스를 만들 수 있어요.
설치 (Installation)
- Confluent Hub에서 최신 커넥터 zip 파일을 다운로드해요.
- Confluent에서 환경(environment)과 클러스터를 구성하고, 메시지를 생산(produce)할 **토픽(topic)**을 만들어요.
- Confluent 클러스터의
Connectors섹션으로 이동해Add Plugin을 클릭하고, zip 파일을 업로드해요. - 설치가 끝나면 커넥터로 이동해 다음 설정 값을 입력해요. 플레이스홀더 값을 본인의 자격 증명으로 바꿔야 해요.
- Qdrant 인스턴스 호스트를 허용된 네트워킹 엔드포인트에 추가해요.
- 커넥터를 시작해요.
메시지 생산하기 (Producing Messages)
이제 설정한 토픽에 메시지를 생산하면, 그 메시지들이 설정한 Qdrant 인스턴스에 기록돼요.
메시지 형식 (Message Formats)
커넥터는 다음 형식의 메시지를 지원해요. 각 형식을 클릭하면 자세히 볼 수 있어요.
이름 없는/기본 벡터 (Unnamed/Default vector)
기본 벡터를 가진 컬렉션을 만들 때 사용할 수 있는 형식이에요.
{
"collection_name": "{collection_name}",
"id": 1,
"vector": [
0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8
],
"payload": {
"name": "kafka",
"description": "Kafka is a distributed streaming platform",
"url": "https://kafka.apache.org/"
}
}
이름이 붙은 여러 벡터 (Named multiple vectors)
여러 개의 이름이 붙은 벡터를 가진 컬렉션에서 쓰는 형식이에요. 각 벡터가 vector 객체 안에 이름(key)으로 구분돼 매핑돼요.
{
"collection_name": "{collection_name}",
"id": 1,
"vector": {
"some-dense": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8],
"some-other-dense": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
},
"payload": {
"name": "kafka",
"description": "Kafka is a distributed streaming platform",
"url": "https://kafka.apache.org/"
}
}
Sparse 벡터 (Sparse vectors)
Sparse 벡터를 가진 컬렉션에서는 vector를 indices와 values로 표현한 객체로 매핑해요.
{
"collection_name": "{collection_name}",
"id": 1,
"vector": {
"some-sparse": {
"indices": [1, 2, 3],
"values": [0.1, 0.2, 0.3]
}
},
"payload": {
"name": "kafka",
"description": "Kafka is a distributed streaming platform",
"url": "https://kafka.apache.org/"
}
}
참고: 원문에는 위 형식들 외에 멀티 벡터(multi-vectors), 이름이 붙은 dense+sparse 벡터 조합 형식도 함께 제시되어 있어요. 각 형식에 대한 상세한 컬렉션 구성은 Qdrant의 벡터 및 컬렉션 문서를 참고하세요.