栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

flink sql groupBy 使用注意

flink sql groupBy 使用注意

1、flink sql groupBy异常疑惑

在flink sql的任务开发中,会大量使用groupBy聚合数据,但是下一些场景回发现使用groupBy会报错,我自己在刚开发flink sql任务不久,发现这个问题同样的写法,有的地方成功有的地方失败,有一段时间感觉很疑惑。

下面是使用 sink kafka的报错信息

sql parser error: AppendStreamTableSink doesn't support consuming update changes which is 

produced by node GroupAggregate(groupBy=[log_map], select=[log_map])

从报错信息来看,是因为sink kakfa不支持持续更新,什么意思呢?

groupBy算子操作输出的数据,要覆盖上一次的数据,但是kafka本身的特性是不支持更新的,所以在sink数据的时候我们要注意数据存储容器的特性。判断是否可以使用groupBy,通过判断存储数据的容器是否支持数据更新,一支持数据更新的数据库,比如mysql、es、clickhouse,我们就可以使用groupBy, 对应的filnk-connector,有update sink,生产更新语句。

2、窗口聚合

虽然sink-kafka不支持持续更新,如果我们有业务场景需求,可以做局部的聚合也就是窗口聚合,在窗口内的数据聚合输出一次结果,这样就可以把部分聚合数据写入到kafka。

INSERT INTO kafka_sink_table
SELECT
	COUNT(1) cnt
FROM kafka_source_table
GROUP BY TUMBLE(proctime(), INTERVAL '10' second)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672150.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号