Utilizzo di ksqlDB con Event Streams

Gen 2

È possibile utilizzare KSQL con Event Streams per l'elaborazione dei flussi.

ksqlDB è un database appositamente progettato per lo streaming di eventi. Utilizzalo per sviluppare rapidamente applicazioni di streaming di eventi end-to-end grazie a un database di elaborazione dello streaming appositamente progettato per l' Apache Kafka.

Il modo più veloce e semplice per eseguire ksqlDB con Event Streams è utilizzare un container Docker, come descritto nella guida introduttiva disponibile all'indirizzo ksqlDB.

Poiché ksqlDB richiede la creazione di un argomento con un'impostazione illimitata per " retention.ms ", è possibile utilizzare solo ksqlDB con il piano Enterprise.

Segui questi passaggi per configurare il sistema. Una volta completata l'operazione, potrai eseguire tutte le query elencate nella Guida rapida di ksqlDB.

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

  2. Se desideri eseguire ksqlDB in un container Docker, segui questi passaggi:

    a. Crea un file denominat 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 riportati nella scheda " Credenziali di servizio " di Event Streams all'indirizzo IBM Cloud.

    b. Dalla cartella in cui hai creato il file, esegui il seguente comando per avviare un server ksqlDB.

    docker-compose up
    

    c. Eseguire il seguente comando per connettersi al server ksqlDB e avviare una sessione interattiva dell'interfaccia a riga di comando (CLI).

    docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
    
  3. Se non stai eseguendo ksqlDB in un container Docker, segui questi passaggi:

    a. Clona il repository ksqlDB:

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

    b. Accedi alla directory ksqlDB e compila il codice.

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

    c. Creare un file di configurazione Event Streams ksqlDB.

    Ad esempio:

    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
    

    Dove BOOTSTRAP_SERVERS e PASSWORD sono i valori riportati nella scheda " Credenziali di servizio " di Event Streams all'indirizzo IBM Cloud.

    d. Avvia il server " ksqlDB " utilizzando il seguente comando:

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

    e. Avvia la CLI di ksqlDB utilizzando il seguente comando:

    ./bin/ksql
    

Una volta completati questi passaggi, potrai eseguire tutte le query elencate nella Guida rapida di ksqlDB.