실시간 벡터 데이터 수집을 위해 Apache Kafka®와 Milvus/Zilliz Cloud 연결하기
이 빠른 시작 가이드에서는 벡터 데이터를 수집하기 위해 오픈 소스 kafka와 Zilliz Cloud를 설정하는 방법을 보여드립니다.
이 튜토리얼에서는 Apache Kafka®를 사용하여 Milvus 벡터 데이터베이스와 Zilliz Cloud(완전 관리형 Milvus)로 벡터 데이터를 스트리밍하고 수집하여 시맨틱 검색, 추천 시스템, AI 기반 분석과 같은 고급 실시간 애플리케이션을 구현하는 방법을 설명합니다.
Apache Kafka는 처리량이 많고 지연 시간이 짧은 파이프라인을 위해 설계된 분산 이벤트 스트리밍 플랫폼입니다. 데이터베이스, IoT 장치, 모바일 앱, 클라우드 서비스와 같은 소스에서 실시간 데이터 스트림을 수집, 저장, 처리하는 데 널리 사용됩니다. 대용량 데이터를 처리할 수 있는 Kafka의 능력은 Milvus나 Zilliz Cloud와 같은 벡터 데이터베이스의 중요한 데이터 소스입니다.
예를 들어, Kafka는 사용자 상호 작용, 센서 판독값과 같은 실시간 데이터 스트림을 머신 러닝 모델에서 임베딩과 함께 캡처하고 이러한 스트림을 Milvus 또는 Zilliz Cloud에 직접 게시할 수 있습니다. 벡터 데이터베이스에 저장된 데이터는 효율적으로 색인, 검색, 분석할 수 있습니다.
Kafka와 Milvus 및 Zilliz Cloud의 통합은 비정형 데이터 워크플로우를 위한 강력한 파이프라인을 원활하게 구축할 수 있는 방법을 제공합니다. 이 커넥터는 오픈 소스 Kafka 배포와 Confluent 및 StreamNative와 같은 호스팅 서비스 모두에서 작동합니다.
이 튜토리얼에서는 Zilliz Cloud를 데모로 사용합니다:
1단계: kafka-connect-milvus 플러그인 다운로드하기
다음 단계를 완료하여 kafka-connect-milvus 플러그인을 다운로드하세요.
- 여기에서 최신 플러그인 zip 파일(
zilliz-kafka-connect-milvus-xxx.zip
)을 다운로드하세요.
2단계: Kafka 다운로드
- 여기에서 최신 kafka를 다운로드합니다.
- 다운로드한 파일의 압축을 풀고 kafka 디렉토리로 이동합니다.
$ tar -xzf kafka_2.13-3.6.1.tgz
$ cd kafka_2.13-3.6.1
3단계: Kafka 환경 시작하기
참고: 로컬 환경에 Java 8 이상이 설치되어 있어야 합니다.
모든 서비스를 올바른 순서로 시작하려면 다음 명령을 실행하세요:
ZooKeeper 서비스 시작
$ bin/zookeeper-server-start.sh config/zookeeper.properties
Kafka 브로커 서비스 시작
다른 터미널 세션을 열고 실행합니다:
$ bin/kafka-server-start.sh config/server.properties
모든 서비스가 성공적으로 시작되면 기본 Kafka 환경이 실행되고 사용할 준비가 된 것입니다.
- 자세한 내용은 공식 빠른 시작 가이드 양식 Kafka를 확인하세요: https://kafka.apache.org/quickstart
4단계: Kafka 및 Zilliz Cloud 구성하기
Kafka와 Zilliz Cloud가 설치되어 있고 올바르게 구성되었는지 확인합니다.
Kafka에 아직 토픽이 없는 경우, Kafka에서 토픽(예:
topic_0
)을 만드세요.$ bin/kafka-topics.sh --create --topic topic_0 --bootstrap-server localhost:9092
질리즈 클라우드에 아직 컬렉션이 없는 경우, 벡터 필드가 있는 컬렉션을 생성합니다(이 예제에서는 벡터가
dimension=8
). 질리즈 클라우드에서 다음 예제 스키마를 사용할 수 있습니다:참고: 양쪽의 스키마가 서로 일치하는지 확인하세요. 스키마에는 정확히 하나의 벡터 필드가 있습니다. 양쪽의 각 필드 이름은 정확히 동일합니다.
5단계: Kafka 인스턴스에 kafka-connect-milvus 플러그인 로드하기
1단계에서 다운로드한
zilliz-kafka-connect-milvus-xxx.zip
파일의 압축을 풉니다.zilliz-kafka-connect-milvus
디렉터리를 Kafka 설치의libs
디렉터리에 복사합니다.Kafka 설치의
config
디렉터리에 있는connect-standalone.properties
파일을 수정합니다.key.converter.schemas.enable=false value.converter.schemas.enable=false plugin.path=libs/zilliz-kafka-connect-milvus-xxx
Kafka 설치의
config
디렉터리에milvus-sink-connector.properties
파일을 생성하고 구성합니다.name=zilliz-kafka-connect-milvus connector.class=com.milvus.io.kafka.MilvusSinkConnector public.endpoint=https://<public.endpoint>:port token=***************************************** collection.name=topic_0 topics=topic_0
6단계: 커넥터 시작
이전 구성 파일로 커넥터를 시작하세요.
$ bin/connect-standalone.sh config/connect-standalone.properties config/milvus-sink-connector.properties
Kafka에서 방금 만든 Kafka 토픽에 메시지를 생성해 보세요.
bin/kafka-console-producer.sh --topic topic_0 --bootstrap-server localhost:9092 >{"id": 0, "title": "The Reported Mortality Rate of Coronavirus Is Not Important", "title_vector": [0.041732933, 0.013779674, -0.027564144, -0.013061441, 0.009748648, 0.00082446384, -0.00071647146, 0.048612226], "link": "https://medium.com/swlh/the-reported-mortality-rate-of-coronavirus-is-not-important-369989c8d912"}
Zilliz Cloud의 컬렉션에 엔티티가 삽입되었는지 확인합니다. 삽입에 성공하면 Zilliz Cloud에서 다음과 같이 표시됩니다:
지원
Kafka Connect Milvus 커넥터와 관련하여 도움이 필요하거나 궁금한 점이 있으면 언제든지 커넥터 관리자에게 문의하시기 바랍니다: 이메일: support@zilliz.com