IBM Cloud Docs
Utilisation de ksqlDB avec Event Streams

Utilisation de ksqlDB avec Event Streams

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

ksqlDB est une base de données spécialement conçue pour la diffusion en flux d'événements. Utilisez-le pour générer rapidement des applications de diffusion d'événements de bout en bout avec 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.

Etant donné que ksqlDB doit créer une rubrique avec un paramètre retention.ms illimité, vous ne pouvez utiliser que ksqlDB avec le plan Enterprise.

Procédez comme suit pour la configuration. Lorsque vous avez terminé, vous pouvez exécuter toutes les requêtes répertoriées dans le manuel ksqlDB-Guide de démarrage rapide.

  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. A partir du répertoire dans lequel vous avez créé le fichier, exécutez la commande suivante pour démarrer le serveur 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
    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
    

    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. Démarrez l'interface de ligne de commande ksqlDB à l'aide de la commande suivante:

    ./bin/ksql
    

Une fois ces étapes effectuées, vous pouvez exécuter toutes les requêtes répertoriées dans le manuel ksqlDB-Guide de démarrage rapide.