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