开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink这个问题怎么解决?

Flink这个问题怎么解决?有一个FLINK任务是 非开窗,非聚合的,keyby后数据倾斜,请问有什么优化思路; 前提条件需要保证相同key的数据在一个task 里面处理;
场景大概是: 上游kafka的数据是 用户 每个时间点的 用户 属性变化信息(可能这个时间点是 f1, f2, f3,属性变更; 下一个时间点是: f2, f4 属性变更), 需要写入到下游数据库
属性变化信息也分几种, 同一条数据中的 属性操作都是一样, 比如这条数据需要 给用户的 属性做求和动作,下一条相同用户可能需要做 局部更新动作,在或者相同用户做 保留 首次属性动作

我目前的算子结构是: map.filter.keyby.process.sink ==> key 是用户的ID

展开
收起
三分钟热度的鱼 2024-04-17 18:53:21 25 0
1 条回答
写回答
取消 提交回答
  • 1、可以对数据进行预处理,减少下游的数据量
    2、是因为key分组导致数据倾斜,所以可以尝试结合其他字段创建复合键。还有一个方法,增加并行度,可以分散负载,就可以减轻压力。此回答整理自钉群“实时计算Flink产品交流群”

    2024-04-17 19:34:27
    赞同 2 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载