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