【问题标题】:Created Tables and Streams not showing as Topics创建的表和流未显示为主题
【发布时间】:2020-05-14 00:52:25
【问题描述】:

我可以在 KSQL 中成功创建和查看表和流,但它们没有显示为主题,因此我可以在 Java Kafka Consumer 上使用它们。

正在发生的事情的简要说明:

ksql> CREATE TABLE RTSHTABLE (primaryKey BIGINT, secondaryKey BIGINT) WITH (KAFKA_TOPIC = 'rtsh', VALUE_FORMAT='JSON', KEY='primaryKey');

 Message
---------------
 Table created
---------------


ksql> SHOW TABLES;

 Table Name | Kafka Topic | Format | Windowed
----------------------------------------------
 RTSHTABLE  | rtsh        | JSON   | false
----------------------------------------------

ksql> SHOW STREAMS;

 Stream Name         | Kafka Topic                 | Format
------------------------------------------------------------
 RTSHSTREAM          | rtsh                        | JSON
 KSQL_PROCESSING_LOG | default_ksql_processing_log | JSON
------------------------------------------------------------

ksql> SELECT * FROM RTSHTABLE LIMIT 5;
1555406522968 | m�l | 1830743660 | 1968383301
1555406522969 | 0��N | 819984462 | 1390795850
1555406522969 | m�� | 1830743753 | 1968383301
1555406522969 | m� | 1830743691 | 1968383301
1555406523501 | o)� | 1865005575 | 797470537
Limit Reached
Query terminated

ksql> SHOW TOPICS;

 Kafka Topic                 | Registered | Partitions | Partition Replicas | Consumers | ConsumerGroups
---------------------------------------------------------------------------------------------------------
 default_ksql_processing_log | true       | 1          | 1                  | 0         | 0
 rtsh                        | true       | 1          | 1                  | 0         | 0
---------------------------------------------------------------------------------------------------------

好吧,我需要使用来自 Java Kafka Consumer 的 RTSHTABLE 中的数据,但由于消费者无法连接到名为 RTSHTABLE 的主题,因此无法正常工作。

我在文档中读到 KTable 被视为一个主题,可以像任何其他主题一样正常使用。那么,我在这里缺少什么?

提前致谢。

【问题讨论】:

    标签: apache-kafka confluent-platform ksqldb


    【解决方案1】:

    RTSHTABLE 的主题是 rtsh。这正是SHOW TABLES 告诉你的:

    ksql> SHOW TABLES;
    
     Table Name | Kafka Topic | Format | Windowed
    ----------------------------------------------
     RTSHTABLE  | rtsh        | JSON   | false
    ----------------------------------------------
    

    表和流只是主题之上的语义模型。在您引用的关于您的 SQL 代码中,只是在现有主题上“注册”表。

    如果您使用CREATE STREAM foo AS SELECT …CREATE TABLE foo AS SELECT …,那么它也会创建一个基础主题。

    【讨论】:

    • 感谢您的解释。我仍在尝试在这里获取完整图像。所以我必须创建一个使用WITH 语句从主题中获取数据的表,然后创建另一个从前一个表中获取数据但使用AS SELECT 的表?这就是我现在拥有的并且它正在工作,但我想知道是否有一种直接的方法可以从主题创建表格并且仍然可以作为主题访问。我想要这个表的原因是只有最新的值。
    • 如果您想像使用 Java 中的表一样使用主题(仅访问最新值),请使用 Kafka Streams 库。这与表(KTables)的概念相同,您可以在那里根据需要实现状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 2021-01-15
    • 2011-03-06
    • 2017-03-07
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多