IBM Cloud Docs
Usando o ksqlDB com o Event Streams

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.

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

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