簡體   English   中英

無法從表 KSQL 中獲取數據

[英]cannot get data from table KSQL

我創建了一個重新加密的流

CREATE STREAM details_stream_rekeyed2 as \
  select CONCAT(IdSeq,IdTime,'') as root,ServerId,Server,\
         IdTime ,IdSeq \
  from voip_details_stream  \
  partition by root;

從這個流中選擇,我得到 > 100 個項目

然后我嘗試創建一個表

create table voip_details_table3 \
  (ROOT varchar,ServerId long , Server varchar ,IdTime varchar,IdSeq long ) \
  with ( kafka_topic = 'DETAILS_STREAM_REKEYED2', \
         value_format = 'json',\
         key='ROOT');

當我跑步時

SELECT ROWKEY,ROOT  FROM VOIP_DETAILS_TABLE3;

我得到的只有不到 10 個喜歡;

12018-04-04T18:56:35.080-04:00 | 12018-04-04T18:56:35.080-04:00

我運行命令:

kafkacat -C -K: -b "$BROKER_LIST" -f 'Key:    %k\nKey Bytes: %K\nValue:  %s\nValue Bytes: %S\n\n' -t DETAILS_STREAM_REKEYED2

一切正常。 我得到數據喜歡

 Key:    12018-02-05T15:16:07.113-05:00
 Key Bytes: 30
 Value:  {"SERVER":null,"IDSEQ":1,"ROOT":"12018-02-05T15:16:07.113-05:00","SERVERID":null,"SESSIONIDTIME":"2018-02-05T15:16:07.113-05:00"}

值字節:158

問題出在哪里?

KSQL 表與 KSQL 流的不同之處在於它為您提供給定 key最新值 因此,如果您希望在表中看到與源流相同數量的消息,您應該擁有相同數量的唯一鍵。

如果您看到的消息較少,則表明ROOT不是唯一的。

根據您建模的問題,您應該:

  • (a) 使用流而不是表,或
  • (b) 更改您正在使用的密鑰

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM