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로 스트리밍하기가 훨씬 쉬워져요.

출처: Qdrant 공식 문서 — confluent

사용 방법 (Usage)

사전 준비 (Pre-requisites)

  • Confluent Cloud 계정 — 처음 30일 동안 쓸 수 있는 크레딧이 포함된 무료 체험판으로 시작할 수 있어요.
  • 연결할 Qdrant 인스턴스cloud.qdrant.io에서 무료 클라우드 인스턴스를 만들 수 있어요.

설치 (Installation)

  1. Confluent Hub에서 최신 커넥터 zip 파일을 다운로드해요.
  2. Confluent에서 환경(environment)과 클러스터를 구성하고, 메시지를 생산(produce)할 **토픽(topic)**을 만들어요.
  3. Confluent 클러스터의 Connectors 섹션으로 이동해 Add Plugin을 클릭하고, zip 파일을 업로드해요.
  4. 설치가 끝나면 커넥터로 이동해 다음 설정 값을 입력해요. 플레이스홀더 값을 본인의 자격 증명으로 바꿔야 해요.
  5. Qdrant 인스턴스 호스트를 허용된 네트워킹 엔드포인트에 추가해요.
  6. 커넥터를 시작해요.

메시지 생산하기 (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 벡터를 가진 컬렉션에서는 vectorindicesvalues로 표현한 객체로 매핑해요.

{
    "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의 벡터컬렉션 문서를 참고하세요.

더 알아보기 (Learn more)