1

我有一个本地运行的 kafka 集群和一个名为“my-topic”的主题,我在其中推送数据。我还运行了 ksql 服务器并且查询: SELECT*FROM "my-topic" 给了我"my-topic 不存在"。我知道这个查询是不正确的,我想知道是否有另一种查询主题的方法。

4

1 回答 1

2

查询: SELECT*FROM "my-topic" 给我 "my-topic 不存在"

您不能直接针对 KSQL 中的 Kafka 主题执行 SELECT —— KSQL 中唯一允许您直接针对主题工作的两条语句是 (1)PRINT <topic_name>和 (2) SHOW TOPICS

相反,您需要在 KSQL 中创建流( CREATE STREAM) 和/或创建表( CREATE TABLE),其输入数据将从所需的 Kafka 主题中读取和解析。将 KSQL 中的流和表视为“带有模式的 Kafka 主题”(有关更多信息,请参阅我最近撰写的关于 Kafka 和流处理中的流和表,第 1 部分)。

例子:

CREATE STREAM pageviews (viewtime BIGINT, userid VARCHAR, ...)
WITH (KAFKA_TOPIC='pageviews-topic', \
      VALUE_FORMAT='DELIMITED');
于 2018-06-05T15:32:28.183 回答