繁体   English   中英

KSQLDB,从 kafka 主题创建表不起作用?

[英]KSQLDB, create table from a kafka topic not working?

我创建了一个 kafka 主题,这是架构。

# topic_name: test.rf.partner

{
  "connect.name": "test.RF.partner.Value",
  "fields": [
    {
      "name": "partnerID",
      "type": "int"
    },
    {
      "name": "name",
      "type": "string"
    }
  ],
  "name": "Value",
  "namespace": "test.RF.partner",
  "type": "record"
}

我尝试使用创建一个表,

CREATE TABLE partner (partnerID INTEGER PRIMARY KEY, name VARCHAR) WITH 
    (KAFKA_TOPIC = 'test.RF.partner',VALUE_FORMAT='AVRO');

然后,当我这样做时,我得到的结果是空数据,主题中的数据不会进入表格,

SELECT * FROM partner EMIT CHANGES;

ksql> SELECT * FROM partner EMIT CHANGES;
+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+
|PARTNERID                                                                                           |NAME                                                                                                |
+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+

更新:

ksql> PRINT 'rytfit.RF.partner' FROM BEGINNING;

Key format: JSON or HOPPING(KAFKA_STRING) or TUMBLING(KAFKA_STRING) or KAFKA_STRING
Value format: AVRO
rowtime: 2021/09/27 19:07:05.563 Z, key: {"partnerID":100}, value: {"partnerID": 100, "name": "kalai"}, partition: 0
rowtime: 2021/09/27 19:07:05.564 Z, key: {"partnerID":101}, value: {"partnerID": 101, "name": "kal"}, partition: 0
rowtime: 2021/09/27 19:07:05.564 Z, key: {"partnerID":102}, value: {"partnerID": 102, "name": "kalai"}, partition: 0
rowtime: 2021/09/27 19:07:05.564 Z, key: {"partnerID":103}, value: {"partnerID": 103, "name": "Intelles"}, partition: 0
rowtime: 2021/09/27 19:07:05.565 Z, key: {"partnerID":104}, value: {"partnerID": 104, "name": "kala"}, partition: 0
rowtime: 2021/09/27 19:07:05.565 Z, key: {"partnerID":105}, value: {"partnerID": 105, "name": "kala"}, partition: 0
rowtime: 2021/09/27 19:07:05.565 Z, key: {"partnerID":106}, value: {"partnerID": 106, "name": "kala"}, partition: 0
rowtime: 2021/09/27 19:07:05.566 Z, key: {"partnerID":107}, value: {"partnerID": 107, "name": "partner"}, partition: 0
rowtime: 2021/09/27 19:07:05.566 Z, key: {"partnerID":108}, value: {"partnerID": 108, "name": "part"}, partition: 0
rowtime: 2021/09/27 19:07:05.566 Z, key: {"partnerID":109}, value: {"partnerID": 109, "name": "par"}, partition: 0

对于任何现有主题,我都会遇到同样的情况。 但是,解决方法是先创建一个 stream,然后使用聚合器方法LATEST_BY_OFFSET创建物化视图

CREATE TABLE partners AS
SELECT  partnerID,
        LATEST_BY_OFFSET(name) AS name 
  FROM partners_stream
GROUP BY partnerID
EMIT CHANGES;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM