我正在尝试从动态表派生新表并基于某些字段进行流。
有人可以指导最好的方法来做到这一点。我是眨眼和尝试东西的新手。
//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;
由于这是非窗口联接,因此还应考虑一些保留策略,以确保状态不会无限增长。