Milvus
Zilliz
Home
  • Integrationen

Verbindung von Apache Kafka® mit Milvus/Zilliz Cloud für Echtzeit-Vektordaten-Ingestion

In dieser Schnellstartanleitung zeigen wir, wie man Open Source Kafka und Zilliz Cloud für die Aufnahme von Vektordaten einrichtet.

In diesem Tutorial wird erklärt, wie Apache Kafka® zum Streamen und Aufnehmen von Vektordaten in die Milvus-Vektordatenbank und die Zilliz-Cloud (vollständig verwaltetes Milvus) verwendet wird, um fortschrittliche Echtzeitanwendungen wie semantische Suche, Empfehlungssysteme und KI-gestützte Analysen zu ermöglichen.

Apache Kafka ist eine verteilte Event-Streaming-Plattform, die für Pipelines mit hohem Durchsatz und geringer Latenz entwickelt wurde. Sie wird häufig zum Sammeln, Speichern und Verarbeiten von Echtzeit-Datenströmen aus Quellen wie Datenbanken, IoT-Geräten, mobilen Apps und Cloud-Diensten verwendet. Die Fähigkeit von Kafka, große Datenmengen zu verarbeiten, macht es zu einer wichtigen Datenquelle für Vektordatenbanken wie Milvus oder Zilliz Cloud.

Kafka kann beispielsweise Echtzeit-Datenströme - wie Benutzerinteraktionen oder Sensormesswerte - zusammen mit ihren Einbettungen aus maschinellen Lernmodellen erfassen und diese Ströme direkt in Milvus oder Zilliz Cloud veröffentlichen. Einmal in der Vektordatenbank angekommen, können diese Daten effizient indiziert, durchsucht und analysiert werden.

Die Kafka-Integration mit Milvus und Zilliz Cloud bietet eine nahtlose Möglichkeit zum Aufbau leistungsstarker Pipelines für unstrukturierte Daten-Workflows. Der Konnektor funktioniert sowohl für den Einsatz von Open-Source-Kafka als auch für gehostete Dienste wie Confluent und StreamNative.

In diesem Tutorial verwenden wir Zilliz Cloud als Demonstration:

Schritt 1: Herunterladen des kafka-connect-milvus-Plugins

Führen Sie die folgenden Schritte aus, um das kafka-connect-milvus-Plugin herunterzuladen.

  1. Laden Sie die neueste Plugin-Zip-Datei zilliz-kafka-connect-milvus-xxx.zip von hier herunter.

Schritt 2: Kafka herunterladen

  1. Laden Sie die neueste Kafka-Version von hier herunter.
  2. Entpacken Sie die heruntergeladene Datei und wechseln Sie in das Kafka-Verzeichnis.
$ tar -xzf kafka_2.13-3.6.1.tgz
$ cd kafka_2.13-3.6.1

SCHRITT 3: Starten Sie die Kafka-Umgebung

HINWEIS: In Ihrer lokalen Umgebung muss Java 8+ installiert sein.

Führen Sie die folgenden Befehle aus, um alle Dienste in der richtigen Reihenfolge zu starten:

  1. Starten Sie den ZooKeeper-Dienst

    $ bin/zookeeper-server-start.sh config/zookeeper.properties
    
  2. Starten Sie den Kafka-Broker-Dienst

    Öffnen Sie eine weitere Terminalsitzung und führen Sie den Befehl aus:

    $ bin/kafka-server-start.sh config/server.properties
    

Sobald alle Dienste erfolgreich gestartet wurden, verfügen Sie über eine grundlegende Kafka-Umgebung, die sofort einsatzbereit ist.

  • Einzelheiten finden Sie in der offiziellen Schnellstartanleitung für Kafka: https://kafka.apache.org/quickstart

Schritt 4: Konfigurieren Sie Kafka und Zilliz Cloud

Stellen Sie sicher, dass Sie Kafka und Zilliz Cloud eingerichtet und richtig konfiguriert haben.

  1. Wenn Sie noch kein Topic in Kafka haben, erstellen Sie ein Topic (z.B. topic_0) in Kafka.

    $ bin/kafka-topics.sh --create --topic topic_0 --bootstrap-server localhost:9092
    
  2. Wenn Sie noch keine Sammlung in Zilliz Cloud haben, erstellen Sie eine Sammlung mit einem Vektorfeld (in diesem Beispiel hat der Vektor dimension=8). Sie können das folgende Beispielschema auf Zilliz Cloud verwenden:

    Hinweis: Achten Sie darauf, dass die Schemata auf beiden Seiten übereinstimmen. In dem Schema gibt es genau ein Vektorfeld. Die Namen der einzelnen Felder auf beiden Seiten sind exakt gleich.

Schritt 5: Laden Sie das kafka-connect-milvus-Plugin in die Kafka-Instanz

  1. Entpacken Sie die Datei zilliz-kafka-connect-milvus-xxx.zip, die Sie in Schritt 1 heruntergeladen haben.

  2. Kopieren Sie die Verzeichnisse zilliz-kafka-connect-milvus in das Verzeichnis libs Ihrer Kafka-Installation.

  3. Ändern Sie die Datei connect-standalone.properties im Verzeichnis config Ihrer Kafka-Installation.

    key.converter.schemas.enable=false
    value.converter.schemas.enable=false
    plugin.path=libs/zilliz-kafka-connect-milvus-xxx
    
  4. Erstellen und konfigurieren Sie eine milvus-sink-connector.properties -Datei im config -Verzeichnis Ihrer Kafka-Installation.

    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
    

Schritt 6: Starten Sie den Konnektor

  1. Starten Sie den Konnektor mit der vorherigen Konfigurationsdatei

    $ bin/connect-standalone.sh config/connect-standalone.properties config/milvus-sink-connector.properties
    
  2. Versuchen Sie, eine Nachricht an das soeben erstellte Kafka-Topic in Kafka zu erzeugen

    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"}
    
  3. Prüfen Sie, ob die Entität in die Sammlung in Zilliz Cloud eingefügt wurde. So sieht es auf Zilliz Cloud aus, wenn die Einfügung erfolgreich war:

Unterstützung

Wenn Sie Unterstützung benötigen oder Fragen zum Kafka Connect Milvus Connector haben, wenden Sie sich bitte an den Maintainer des Connectors: E-Mail: support@zilliz.com