可否考虑放入Redis,借用Redis的bitmap活着hyperloglog
------------------ 原始邮件 ------------------
发件人: "lucas.wu"<
[hidden email]>;
发送时间: 2020年3月20日(星期五) 中午11:50
收件人: "user-zh"<
[hidden email]>;
主题: Re: flink sql 去重算法
可以考虑自己实现一个udf ,使用bitmap或者hyperloglog去实现。
原始邮件
发件人:
[hidden email]
收件人:
[hidden email]
发送时间:2020年3月20日(周五) 11:44
主题:Re: flink sql 去重算法
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
[hidden email] 于2020年3月20日周五 上午9:50写道: Hi hiliuxg, count distinct 用的MapVIew来做的去重: 在batch场景下,MapView的底层实现就是HashMap; 在streaming场景下,MapView的底层实现是MapState,因为必须要用到state+cp,才能保证任务重启后状态不会丢失。 hiliuxg
[hidden email] 于2020年3月19日周四 下午11:31写道: hi all: 请问flink sqlnbsp; count(disitinct)nbsp; 底层的算法是怎样的? 是bitmap ? 还是简单通过java的set容器去重的呢? -- Benchao Li School of Electronics Engineering and Computer Science, Peking University Tel:+86-15650713730 Email:
[hidden email];
[hidden email]