'ksqlDB' mit Event Streams verwenden

Sie können KSQL mit Event Streams für die Datenstromverarbeitung verwenden.

ksqlDB ist eine zweckgerichtete Datenbank für das Ereignisstreaming. Verwenden Sie sie, um End-to-End-Ereignisstreaming-Anwendungen schnell mit einer speziellen Datenstromverarbeitungsdatenbank für Apache Kafkazu 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 einer unbegrenzten retention.ms-Einstellung erstellen muss, kann nur ksqlDB mit dem Enterprise-Plan verwendet werden.

Führen Sie die folgenden Schritte aus, um die Konfiguration vorzunehmen. Anschließend können Sie alle Abfragen ausführen, die im ksqlDB Leitfaden für den Schnelleinstiegaufgelistet 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.

    Beispiel:

    bootstrap.servers=BOOTSTRAP_SERVERS
    listeners=http://localhost:8088
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    ssl.protocol=TLSv1.2
    ssl.enabled.protocols=TLSv1.2
    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 Befehlszeilenschnittstelle ksqlDB mit dem folgenden Befehl:

    ./bin/ksql
    

Wenn Sie diese Schritte ausführen, können Sie alle Abfragen ausführen, die im ksqlDB Leitfaden für den Schnelleinstiegaufgelistet sind.