Utilisation de ksqlDB avec Event Streams

Génération 2

Vous pouvez utiliser KSQL avec Event Streams pour le traitement des flux.

ksqlDB est une base de données spécialement conçue pour la diffusion en continu d'événements. Utilisez-le pour développer rapidement des applications de streaming d'événements de bout en bout grâce à une base de données de traitement de flux spécialement conçue pour Apache Kafka.

Le moyen le plus rapide et le plus simple d'exécuter ksqlDB avec Event Streams est d'utiliser un conteneur Docker comme indiqué dans ksqlDB Quickstart.

Étant donné que ksqlDB doit créer un sujet avec un paramètre « retention.ms » illimité, vous ne pouvez utiliser que ksqlDB avec la formule Enterprise.

Suivez les étapes suivantes pour effectuer la configuration. Une fois cette opération terminée, vous pourrez exécuter toutes les requêtes répertoriées dans le Guide de démarrage rapide d' ksqlDB.

  1. Utilisez le tableau de bord Event Streams dans la console IBM Cloud pour créer une rubrique appelée _confluent-ksql-default__command_topic avec une partition unique et la période de conservation par défaut.

  2. Si vous souhaitez exécuter ksqlDB dans un conteneur Docker, procédez comme suit :

    a. Créez un fichier docker-compose.yml avec le contenu suivant :

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

    Où BOOTSTRAP_SERVERS et PASSWORD sont les valeurs provenant de l'onglet Données d'identification pour le service Event Streams dans IBM Cloud.

    b. Depuis le répertoire dans lequel vous avez créé le fichier, exécutez la commande suivante pour démarrer le serve ksqlDB.

    docker-compose up
    

    c. Exécutez la commande suivante pour vous connecter au serveur ksqlDB et démarrer une session d'interface de ligne de commande (CLI) interactive.

    docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
    
  3. Si vous n'exécutez pas ksqlDB dans un conteneur Docker, procédez comme suit :

    a. Clonez le référentiel ksqlDB :

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

    b. Accédez au répertoire ksqlDB et compilez le code.

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

    c. Créez un fichier de configuration ksqlDB Event Streams.

    Exemple :

    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
    

    Où BOOTSTRAP_SERVERS et PASSWORD sont les valeurs provenant de l'onglet Données d'identification pour le service Event Streams dans IBM Cloud.

    d. Démarrez le serveur « ksqlDB » à l'aide de la commande suivante :

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

    e. Lancez l'interface CLI d' ksqlDB à l'aide de la commande suivante :

    ./bin/ksql
    

Une fois ces étapes terminées, vous pourrez exécuter toutes les requêtes répertoriées dans le Guide de démarrage rapide d' ksqlDB.