You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by x <35...@qq.com> on 2020/08/27 05:48:32 UTC
求助:实时计算累计UV时,为什么使用MapState和BloomFilter,在checkpoint时的状态大小没有差异
实时计算累计UV时,为什么使用MapState的方式和使用BloomFilter的方式,checkpoint时的状态大小没有差异,感觉bloom应该会比MapState小很多才对啊
Re: 求助:实时计算累计UV时,为什么使用MapState和BloomFilter,在checkpoint时的状态大小没有差异
Posted by Yichao Yang <10...@qq.com>.
Hi,
如果是Long类型uv,可以尝试使用 RoaringBitMap做精确去重,参考[1]
[1] https://mp.weixin.qq.com/s/jV0XmFxXFnzbg7kcKiiDbA
Best,
Yichao Yang
------------------ 原始邮件 ------------------
发件人: "user-zh" <qcx978132955@gmail.com>;
发送时间: 2020年8月27日(星期四) 晚上9:26
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: Re: 求助:实时计算累计UV时,为什么使用MapState和BloomFilter,在checkpoint时的状态大小没有差异
Hi
Checkpoint 的 size 取决于 state 的大小(如果是 RocksDBStateBackend + 增量
checkpoint,界面看到的 Checkpointed Data Size 是增量大小[1])。如果你把 BloomFilter 存到 State
中的话,那么需要看看最终在 State 中存储的内容大小。
如果有疑问的话,可以分析一下分别使用 bloomfilter 和 mapstate,在相同的数据更新后,state 中的数据分别有多少
[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/ops/state/state_backends.html#%E5%A2%9E%E9%87%8F%E5%BF%AB%E7%85%A7
Best,
Congxian
x <35907418@qq.com> 于2020年8月27日周四 下午1:48写道:
>
> 实时计算累计UV时,为什么使用MapState的方式和使用BloomFilter的方式,checkpoint时的状态大小没有差异,感觉bloom应该会比MapState小很多才对啊
Re: 求助:实时计算累计UV时,为什么使用MapState和BloomFilter,在checkpoint时的状态大小没有差异
Posted by Congxian Qiu <qc...@gmail.com>.
Hi
Checkpoint 的 size 取决于 state 的大小(如果是 RocksDBStateBackend + 增量
checkpoint,界面看到的 Checkpointed Data Size 是增量大小[1])。如果你把 BloomFilter 存到 State
中的话,那么需要看看最终在 State 中存储的内容大小。
如果有疑问的话,可以分析一下分别使用 bloomfilter 和 mapstate,在相同的数据更新后,state 中的数据分别有多少
[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/ops/state/state_backends.html#%E5%A2%9E%E9%87%8F%E5%BF%AB%E7%85%A7
Best,
Congxian
x <35...@qq.com> 于2020年8月27日周四 下午1:48写道:
>
> 实时计算累计UV时,为什么使用MapState的方式和使用BloomFilter的方式,checkpoint时的状态大小没有差异,感觉bloom应该会比MapState小很多才对啊