搭配使用 ksqlDB 與 Event Streams

第 2 代

您可以將 KSQL 與 Event Streams 搭配使用,進行串流處理。

ksqlDB 是一個專為事件串流而設計的資料庫。 利用此工具,搭配專為 Apache Kafka 設計的串流處理資料庫,可快速建置端對端事件串流應用程式。

使用 Event Streams 執行 ksqlDB 的最快速且最簡單的方式是使用 Docker 容器,如 ksqlDB 快速入門中所述。

由於 ksqlDB 需要建立一個「retention.ms」設定為無限制的主題,因此您只能在 Enterprise 方案下使用 ksqlDB。

請按照以下步驟完成設定。 完成後,您即可執行《 ksqlDB 快速入門指南 》中列出的所有查詢。

  1. 請使用 IBM Cloud 控制台中的「Event Streams」儀表板,建立一個名為 _confluent-ksql-default__command_topic 的主題,該主題應具有單一分區,並採用預設的保留期間。

  2. 如果您要在 Docker 容器中執行 ksqlDB,請遵循下列步驟:

    a. 建立名為 docker-compose.yml 的檔案,內容如下:

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

    其中 BOOTSTRAP_SERVERS 及 PASSWORD 是來自 Event Streams 中 IBM Cloud 服務認證標籤的值。

    b. 請在您建立該檔案的目錄中,執行以下指令以啟動 ksqlDB 伺服器。

    docker-compose up
    

    c. 執行下列指令,以連接至 ksqlDB 伺服器並啟動互動式指令行介面 (CLI) 階段作業。

    docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
    
  3. 如果您不是在 Docker 容器中執行 ksqlDB,請遵循下列步驟:

    a. 複製 ksqlDB 儲存庫:

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

    b. 導覽至 ksqlDB 目錄,並編譯程式碼。

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

    c. 建立 Event Streams ksqlDB 配置檔。

    例如:

    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
    

    其中 BOOTSTRAP_SERVERS 及 PASSWORD 是來自 Event Streams 中 IBM Cloud 服務認證標籤的值。

    d. 請使用以下指令啟動 ksqlDB 伺服器:

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

    e. 請使用以下指令啟動 ksqlDB CLI:

    ./bin/ksql
    

完成這些步驟後,您即可執行《 ksqlDB 快速入門指南 》中列出的所有查詢。