Flink 动态表和流连接



我正在尝试从动态表派生新表并基于某些字段进行流。

有人可以指导最好的方法来做到这一点。我是眨眼和尝试东西的新手。

//Dynamic Table
Table books = tEnv.sqlQuery("SELECT bookId, instrument, sum(tradedQuanity) as totalQuantity FROM tradeStreamTable group by bookId, instrument");
tEnv.registerTable("books", books);

=======================================================================================================================================================================================================================================================================================================================






//My Stream
tEnv.registerDataStream("allInstrumentsTable", allInstruments, "timeStampMs, instrument, instrumentValue ");

所有仪器表

===============================================================================================================================================================================
=

====

===========================================每当我在书表中获得新的更改或流中仪器的新工具值时,我都会尝试派生新表(动态(。 加入仪器,仪器值 * 总计数量。

BOOK - 最新价格 ( 新表 (

==============================================================================================================================================================================================================================================================



第 1 册, 视频点播 ,130, ...
第 2 册, 视频点播 ,10, ...
第2册, 咕噜咕噜,60, ...
第 3 册,应用,110,...

您不能在外部"更新"表。流中的表类似于 RDBMS 中的物化视图。它们是在特定时刻对流状态的派生视图。

不过,您可以做的是从这两个表中派生一个新表

SELECT instrument, instrumentValue * totalQuantity FROM allInstrumentsTable aJOIN books b ON a.instrument = b.instrument;

由于这是非窗口联接,因此还应考虑一些保留策略,以确保状态不会无限增长。

相关内容

  • 没有找到相关文章

最新更新