Utilizzo di ksqlDB con Event Streams

Puoi utilizzare KSQL con Event Streams per l'elaborazione del flusso.

ksqlDB è un database appositamente creato per lo streaming di eventi. Utilizzalo per creare rapidamente applicazioni di flusso di eventi end-to-end con un database di elaborazione dei flussi appositamente creato per Apache Kafka.

Il modo più rapido e semplice per eseguire ksqlDB con Event Streams è utilizzare un contenitore docker come descritto in ksqlDB quickstart.

Poiché ksqlDB deve creare un argomento con un'impostazione retention.ms illimitata, è possibile utilizzare solo ksqlDB con il piano Enterprise.

Completa la seguente procedura per eseguire la configurazione. Una volta completato, è possibile eseguire tutte le query elencate in ksqlDB Guida rapida.

  1. Utilizza il dashboard di Event Streams nella console IBM Cloud per creare un argomento denominato _confluent-ksql-default__command_topic con una partizione singola e il periodo di conservazione predefinito.

  2. Se vuoi eseguire ksqlDB nel contenitore docker, attieniti alla seguente procedura:

    a. Creare il file docker-compose.yml con il seguente contenuto:

    ---
    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
    

    Dove BOOTSTRAP_SERVERS e PASSWORD sono i valori della scheda Event Streams Credenziali del servizio in IBM Cloud.

    b. Dalla directory in cui è stato creato il file, eseguire il seguente comando per avviare il server ksqlDB.

    docker-compose up
    

    c. Eseguire il seguente comando per connettersi al server ksqlDB e avviare una sessione CLI (command - line interface) interattiva.

    docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
    
  3. Se non stai eseguendo ksqlDB nel contenitore docker, attieniti alla seguente procedura:

    a. Clonare il repository ksqlDB:

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

    b. Passare alla directory ksqlDB e compilare il codice.

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

    c. Crea un file di configurazione Event Streams ksqlDB.

    Ad esempio:

    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
    

    Dove BOOTSTRAP_SERVERS e PASSWORD sono i valori della scheda Event Streams Credenziali del servizio in IBM Cloud.

    d. Avviare il server ksqlDB utilizzando il seguente comando:

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

    e. Avviare la CLI ksqlDB utilizzando il seguente comando:

    ./bin/ksql
    

Una volta completata questa procedura, è possibile eseguire tutte le query elencate in ksqlDB Guida rapida.