开发者社区> 问答> 正文

flink sql 通过计算列提取字段定义watermark后窗口计算没有结果输出怎么办?

大家好,

我遇到一个奇怪的问题,通过计算列提取出某一字段。定义为row_time的watermark, 如下面原始字段为message,从中提取13位unix-timestamp,转成timestamp(3)再定义为watermark。

执行窗口计算不报错,但是无输出结果。

数据源是kafka,各partition内数据均匀。

建表语句类似下面(单位机器不能联外网,下面的语句是我手打的,可能有typo请见谅)

create table kafka_source( message Varchar, ts as TO_TIMESTAMP(FROM_UNIXTIME(CAST(SPLIT_INDEX(message,’\u001B’,3) AS BIGINT)/1000)), WATERMARK FOR ts AS ts - INTERVAL ‘2’ SECOND )WITH( ....... )

INSERT INTO sink_table SELECT TUMBLE_END(ts, INTERVAL ‘10’ SECOND), COUNT(*) From Kafka_source Group by TUMBLE(ts, INTERVAL ‘10’ SECOND);

感谢各位!

*来自志愿者整理的flink邮件归档

展开
收起
游客nnqbtnagn7h6s 2021-12-06 20:25:17 1513 0
1 条回答
写回答
取消 提交回答
  • 这种可能是kafka topic里有脏数据,解析的时间戳不对,导致窗口没触发

    *来自志愿者整理的flink邮件归档

    2021-12-06 21:48:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 覃立辉 立即下载
Flink CDC Meetup PPT - 孙家宝 立即下载
Flink CDC Meetup PPT - 徐榜江 立即下载