微博机器学习平台使用 Flink 实时处理用户行为日志和生成标签,并且在生成标签后写入存储系统。为了降低存储系统的 IO 负载,有批量写入的需求,同时对数据延迟也需要进行一定的控制,因此需要一种有效的消息聚合处理方案。
基于 flatMap 的解决方案
-
逻辑简单直观,各并发间负载均匀。 -
flatMap 可以和上游算子 chain 到一起,减少网络传输开销。 -
使用 operator state 完成 checkpoint,支持正常和改并发恢复。
使用 Count Window 的解决方案
KeyGroupRangeAssignment.assignToKeyGroup(key,maxParallelism);
Task->String.valueOf(KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, parallelism, keyGroup));
{0=4, 1=4, 2=1}
{0=651, 1=686, 2=710}
该方案的执行效果如下:
方案对比和总结
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
小米 |小米流式平台架构演进与实践 -
滴滴 | SQL 开发任务超 50% !滴滴实时计算的演进与优化 -
网易 | 覆盖电商、推荐、ETL、风控等多场景,网易的实时计算平台做了啥? -
bilibili | bilibili 实时平台的架构与实践 -
美团点评 |美团点评基于 Flink 的实时数仓平台实践 -
菜鸟物流 | 菜鸟供应链实时数仓的架构演进及应用场景 -
OPPO|OPPO 实时数仓揭秘:从顶层设计实现离线与实时的平滑迁移 -
贝壳找房 | 数据吞吐量高达800亿条! 实时计算在贝壳找房的应用实践 -
爱奇艺|日均万亿条数据如何处理?爱奇艺实时计算平台这样做 -
Netflix | Netflix:如何打造开放协作的实时 ETL 平台?
-
Lyft |Lyft 基于 Flink 的大规模准实时数据分析平台(附FFA大会视频) -
奇安信 |基于 Flink 构建 CEP 引擎的挑战和实践 -
趣头条 | 趣头条基于 Flink+ClickHouse 构建实时数据分析平台
本文分享自微信公众号 - Flink 中文社区(gh_5efd76d10a8d)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/2828172/blog/4433556