Usando o ksqlDB com o Event Streams
É possível usar KSQL com Event Streams para processamento de fluxo.
ksqlDB é um banco de dados construído para o fluxo de eventos. Use-o para construir aplicativos de fluxo de eventos de ponta a ponta rapidamente com um banco de dados de processamento de fluxo construído especificamente para Apache Kafka.
A maneira mais rápida e mais fácil de executar o ksqlDB com o Event Streams é usar um contêiner do Docker, conforme descrito em Iniciação rápida do ksqlDB.
Como ksqlDB precisa criar um tópico com uma configuração retention.ms
ilimitada, é possível usar apenas ksqlDB com o plano Enterprise.
Conclua as etapas a seguir para configurar. Ao concluir, é possível executar todas as consultas listadas no ksqlDB Guia de Iniciação Rápida.
-
Use o painel Event Streams no console do IBM Cloud para criar um tópico chamado
_confluent-ksql-default__command_topic
com uma partição única e o período de retenção padrão. -
Para executar o ksqlDB no contêiner do Docker, siga estas etapas:
a. Crie um arquivo
docker-compose.yml
com os conteúdos a seguir:--- 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
em que BOOTSTRAP_SERVERS e PASSWORD são os valores de sua guia Credenciais de serviço do Event Streams no IBM Cloud.
b. No diretório em que você criou o arquivo, execute o comando a seguir para iniciar o servidor ksqlDB.
docker-compose up
c. Execute o comando a seguir para conectar-se ao servidor ksqlDB e inicie uma sessão interativa de interface da linha de comandos (CLI).
docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
-
Se você não estiver executando o ksqlDB no contêiner do Docker, siga estas etapas:
a. Clone o repositório do ksqlDB:
git clone https://github.com/confluentinc/ksql
b. Navegue até o diretório do ksqlDB e compile o código.
cd ksql mvn clean install -Dmaven.test.skip=true
c. Crie um arquivo de configuração do ksqlDB do Event Streams.
Por exemplo:
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
em que BOOTSTRAP_SERVERS e PASSWORD são os valores de sua guia Credenciais de serviço do Event Streams no IBM Cloud.
d. Inicie o servidor ksqlDB usando o comando a seguir:
./bin/ksql-server-start ./config/ibm-eventstreams.properties
e. Inicie a CLI ksqlDB usando o comando a seguir:
./bin/ksql
Ao concluir essas etapas, é possível executar todas as consultas listadas no ksqlDB Guia de Iniciação Rápida.