退订
--
发件人:lk_hadoop
发送时间:2023年1月3日(星期二) 09:53
收件人:user-zh
主 题:使用 WindowDeduplicate 时,数据没有按照期望的时效写入sink 端
大家好:
我有一个流表,想要通过WindowDeduplicate做局部去重,代码如下:
TableResult result = tEnv.executeSql("select * from " +
"(select ddate, userMAC, bssid, dtime, userName, apName, action, ssid,
rawValue, ROW_NUMBER() OVER (" +
"PARTITION BY window_start, window_end, userName ORDER BY eventTime DESC" +
") as row_num from " +
"TABLE(TUMBLE(TABLE aplog, DESCRIPTOR(eventTime), INTERVAL '10' SECONDS))" +
") where row_num <= 1");
result.print();
但是控制台没有数据打印出来,发现checkpoint的大小是在逐渐增加的。
执行以下代码:
TableResult result = tEnv.executeSql("select * from TABLE(TUMBLE(TABLE aplog,
DESCRIPTOR(eventTime), INTERVAL '10' SECONDS))");
result.print();
控制台是能正常打印出数据的。
使用WindowDeduplicate时 似乎只有数据积攒到一定数量才会写入sink
请问有知道这是什么原因的吗?