'ksqlDB' mit Event Streams verwenden

Gen 2

Sie können KSQL zusammen mit „ Event Streams “ für die Stream-Verarbeitung nutzen.

ksqlDB ist eine speziell für das Event-Streaming entwickelte Datenbank. Nutzen Sie es, um mit einer speziell für das Event-Streaming entwickelte Datenbank für Apache Kafka schnell End-to-End-Event-Streaming-Anwendungen zu erstellen.

Die schnellste und einfachste Möglichkeit zur Ausführung von ksqlDB mit Event Streams besteht darin, einen Docker-Container wie unter ksqlDB Quickstart beschrieben zu verwenden.

Da „ ksqlDB “ ein Thema mit der Einstellung „ retention.ms “ (unbegrenzt) erstellen muss, können Sie im Enterprise-Tarif nur „ ksqlDB “ verwenden.

Führen Sie die folgenden Schritte aus, um die Einrichtung abzuschließen. Sobald der Vorgang abgeschlossen ist, können Sie alle Abfragen ausführen, die im Schnellstartleitfaden zu „ ksqlDB “ aufgeführt sind.

  1. Verwenden Sie das Event Streams-Dashboard in der IBM Cloud-Konsole, um ein Thema mit dem Namen _confluent-ksql-default__command_topic mit einer einzelnen Partition und dem Standardaufbewahrungszeitraum zu erstellen.

  2. Wenn Sie ksqlDB in einem Docker-Container ausführen wollen, führen Sie die folgenden Schritte aus:

    a. Erstellen Sie die Datei docker-compose.yml mit dem folgenden Inhalt:

    ---
    version: '2'
    services:
      ksqldb-server:
        image: confluentinc/ksqldb-server:latest
        hostname: ksqldb-server
        container_name: ksqldb-server
        ports:
          - "8088:8088"
        environment:
          KSQL_LISTENERS: http://0.0.0.0:8088
          KSQL_BOOTSTRAP_SERVERS: <BOOTSTRAP_SERVERS>
          KSQL_KSQL_SERVICE_ID: default_
          KSQL_KSQL_SINK_REPLICAS: 3
          KSQL_KSQL_STREAMS_REPLICATION_FACTOR: 3
          KSQL_SECURITY_PROTOCOL: SASL_SSL
          KSQL_KSQL_INTERNAL_TOPIC_REPLICAS: 3
          KSQL_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"<PASSWORD>\";
          KSQL_SASL_MECHANISM: PLAIN
      ksqldb-cli:
        image: confluentinc/ksqldb-cli:latest
        container_name: ksqldb-cli
        depends_on:
          - ksqldb-server
        entrypoint: /bin/sh
        tty: true
    

    Dabei sind BOOTSTRAP_SERVERS und PASSWORD die Werte von der Event Streams-Registerkarte Serviceberechtigungsnachweise in IBM Cloud.

    b. Führen Sie in dem Verzeichnis, in dem Sie die Datei erstellt haben, den folgenden Befehl aus, um den „ ksqlDB “-Server zu starten.

    docker-compose up
    

    c. Führen Sie den folgenden Befehl aus, um eine Verbindung zum ksqlDB-Server herzustellen und eine Sitzung der interaktiven Befehlszeilenschnittstelle (CLI) zu starten.

    docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
    
  3. Wenn Sie ksqlDB nicht in einem Docker-Container ausführen wollen, führen Sie die folgenden Schritte aus:

    a. Klonen Sie das ksqlDB-Repository:

    git clone https://github.com/confluentinc/ksql
    

    b. Navigieren Sie zu dem ksqlDB-Verzeichnis und kompilieren Sie den Code.

    cd ksql
    mvn clean install -Dmaven.test.skip=true
    

    c. Erstellen Sie eine Event Streams-Datei für die ksqlDB-Konfiguration.

    Zum Beispiel:

    bootstrap.servers=BOOTSTRAP_SERVERS
    listeners=http://localhost:8088
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="token" password="PASSWORD";
    ksql.sink.replications.default=3
    

    Dabei sind BOOTSTRAP_SERVERS und PASSWORD die Werte von der Event Streams-Registerkarte Serviceberechtigungsnachweise in IBM Cloud.

    d. Starten Sie den „ ksqlDB “-Server mit dem folgenden Befehl:

    ./bin/ksql-server-start ./config/ibm-eventstreams.properties
    

    e. Starten Sie die ksqlDB-CLI mit dem folgenden Befehl:

    ./bin/ksql
    

Wenn Sie diese Schritte ausgeführt haben, können Sie alle Abfragen ausführen, die im „ ksqlDB “-Schnellstartleitfaden aufgeführt sind.