当前位置: 首页 > news >正文

Flink框架:keyBy实现按键逻辑分区

本文重点

我们要学习聚合算子,在介绍聚合算子之前,我们必须学会分区的概念,因为只有分区之后才可以进行聚合。

keyBy按键分区

如图所示,数据经过keyBy之后,keyBy会对每个元素计算一个key(然后对key、计算hashCode,必须要保证key具有hashCode方法),然后key的hashCode会对分区数取模得到分区索引。

如图所示,黄色数据元素经过keyby后得到key1,对分区数2取模得到第一个分区索引,蓝色数据元素经过keyby后得到key2,对分区数2取模后得到第一个分区索引,紫色数据元素经过keyby后得到key2,对分区数2取模后得到第二个分区索引。

这里我们可以看到三点:

第一,不同元素得到的key是不一样的

第二,相同元素得到的key是一样的,并且一定会分到同一个分区中

第三,同一个分区中会有不同的key

(关于分区的概念,我们可以理解为下游算子的并行子任务数,子任务数是几就有几个分区,每个子任务在不同的任务槽中运行,关于并行子任务和任务槽的概念,

http://www.xgzjz.com/news/33.html

相关文章:

  • wordle game(猜词游戏)小demo【react + ts】
  • 第十八节:第八部分:java高级:动态代理设计模式介绍、准备工作、代码实现
  • 2025年终端安全管理系统的全方位解析,桌面管理软件的分析
  • 大模型——Prompt 优化还是模型微调
  • 图立得-html纯前端图片拾色器V202507
  • 常见问题一
  • 关于JavaWeb的总结笔记
  • Three.js实现银河流光粒子星空特效原理与实践
  • WebAPIs事件流与事件委托与其他事件
  • 三大工厂设计模式
  • React-useEffect的闭包陷阱(stale closure)
  • 前端,demo操作,增删改查,to do list小项目
  • Spring Boot 3企业级架构设计:从模块化到高并发实战,9轮技术博弈(含架构演进解析)
  • numpy库的基础知识
  • Pandas - JSON格式数据操作实践
  • 车载软件架构 --- 软件开发面临的问题
  • 论文Review Lidar 3DGS Splat-LOAM: Gaussian Splatting LiDAR Odometry and Mapping
  • Vue过度与动画效果
  • Kafka 如何优雅实现 Varint 和 ZigZag 编码
  • 低代码平台买saas好还是私有化好
  • Python 模块未找到?这样解决“ModuleNotFoundError”
  • Java学习----NIO模型
  • 19.TaskExecutor与ResourceManager建立连接
  • 部署 Zabbix 企业级分布式监控
  • 2x2矩阵教程
  • 一个适合MCU的分级菜单框架
  • Docker实践:使用Docker部署blog轻量级博客系统
  • 【Java学习|黑马笔记|Day19】方法引用、异常(try...catch、自定义异常)及其练习
  • Django关于ListView通用视图的理解(Cursor解释)
  • [Python] -项目实战10- 用 Python 自动化批量重命名文件