hi, 我发现我们生产有些使用 SQL 的 count distinct 去做去重,当作业跑了很久,作业的 Checkpoint state 很大(我这周就遇到过一个差不多 400G 的,导致 Checkpoint 很容易超时,并且可能会对 HDFS 集群的网卡也有一定的压力),我看官网文档有介绍说使用 query_configuration <https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/streaming/query_configuration.html> ,除此之外不清楚大家是否还有什么其他好的解决方法?
Benchao Li <[email protected]> 于2020年3月20日周五 上午9:50写道: > Hi hiliuxg, > > count distinct 用的MapVIew来做的去重: > 在batch场景下,MapView的底层实现就是HashMap; > 在streaming场景下,MapView的底层实现是MapState,因为必须要用到state+cp,才能保证任务重启后状态不会丢失。 > > hiliuxg <[email protected]> 于2020年3月19日周四 下午11:31写道: > > > hi all: > > 请问flink sql count(disitinct) 底层的算法是怎样的? 是bitmap ? > > 还是简单通过java的set容器去重的呢? > > > > -- > > Benchao Li > School of Electronics Engineering and Computer Science, Peking University > Tel:+86-15650713730 > Email: [email protected]; [email protected] >
