簡體   English   中英

KSQL:(拉)-查詢連接表

[英]KSQL: (pull)-query on a joined table

我有兩個主題想要加入,然后查詢加入以獲取最新結果。 我遵循了從這里Create a ksqlDB Table from a ksqlDB Stream的文檔。

這就是我所做的:

CREATE TABLE CATALOGUE_TABLE
  (title STRING)
  WITH (KAFKA_TOPIC='catalogue-topic-test',
        VALUE_FORMAT='AVRO');
CREATE TABLE SCHEDULE_TABLE
  (fromInstant STRING,
   toInstant STRING)
  WITH (KAFKA_TOPIC='schedule-topic-test',
        VALUE_FORMAT='AVRO');

請放心,這兩個基礎主題都有其所有條目的鍵。 然后我像這樣加入他們:

CREATE TABLE MYTABLE AS
  SELECT c.title, s.fromInstant, s.toInstant
  FROM CATALOGUE_TABLE c
  INNER JOIN SCHEDULE_TABLE s
  ON s.ROWKEY = c.ROWKEY
  EMIT CHANGES;

我不確定我最終會得到什么。 無論是什么,我都可以運行以下命令:

select * from MYTABLE EMIT CHANGES;

我可以看到它的所有更新,以及所有重復項。 它基本上是一個流。 現在,如果我運行以下命令:

select * from MYTABLE WHERE ROWKEY='12';

要獲得 id=12 的最后一次更新,我得到:

表 'MYTABLE' 未具體化。 有關查詢類型的信息,請參閱https://cnfl.io/queries 如果你...

其余的輸出被截斷,所以我看不到它想說什么。 我的猜測是我在 MYTABLE 中以某種方式做錯了。

我想我錯過了一個 groupBy,它應該是負責刪除所有具有重復 ID 的條目的部分,但我不知道我需要在那里放什么以及我是否應該只在 MYTABLE 級別這樣做,或者是否應該在所有三個表上完成。

目前,即 ksqlDB 0.6.0,只有返回表的流聚合查詢允許查詢結果表。

對於表-表連接,結果不會具體化到本地存儲中,而只會生成更改日志流並將其寫入與結果表對應的結果主題。

暫無
暫無

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

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