前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink 1.17发布后数据开发领域需要关注的一些点

Flink 1.17发布后数据开发领域需要关注的一些点

作者头像
王知无-import_bigdata
发布2023-04-07 18:56:48
1.2K0
发布2023-04-07 18:56:48
举报
文章被收录于专栏:大数据成神之路

Flink1.17前几天刚刚发布。我们简单聊一下几个主要的更新:

Batch部分

Batch部分这次有三个比较重要的FLIP:

  1. Streaming Warehouse API: FLIP-282在Flink SQL 中引入了新的 Delete 和 Update API,它们可以在 Batch 模式下工作。在此基础上,外部存储系统比如 Flink Table Store 可以通过这些新的 API 实现行级删除和更新。同时对 ALTER TABLE 语法进行了增强,包括 ADD/MODIFY/DROP 列、主键和 watermark 的能力,这些增强使得用户更容易维护元数据。

  1. Batch 性能优化: 在 Flink 1.17 中,批处理作业的执行在性能、稳定性和可用性方面都得到了显着改进。就性能而言,通过策略优化和算子优化,如新的 join-reorder 算法和自适应的本地哈希聚合优化、Hive 聚合函数改进以及混合 shuffle 模式优化,这些改进带来了 26% 的 TPC-DS 性能提升。就稳定性而言,Flink 1.17 预测执行可以支持所有算子,自适应的批处理调度可以更好的应对数据倾斜场景。就可用性而言,批处理作业所需的调优工作已经大大减少。自适应的批处理调度已经默认开启,混合 shuffle 模式现在可以兼容预测执行和自适应批处理调度,同时所需的各种配置都进行了简化。

  1. SQL Client/Gateway: Apache Flink 1.17 支持了 SQL Client 的 gateway 模式,允许用户将 SQL 提交给远端的 SQL Gateway。同时,用户可以在 SQL Client 中使用 SQL 语句来管理作业,包括查询作业信息和停止正在运行的作业等。这表示 SQL Client/Gateway 已经演进为一个作业管理、提交工具。

第二和第三点是当前对大家开发影响最大的,Flink Batch的能力现在已经比较完善和稳定,很多离线导数的批任务很多大厂已经从原来的类似DataX这样的工具切换到Flink Batch SQL。例如下面的2个场景:

  1. 需要给维表中导入历史数据,Hive->Hbase或者Hive->Redis,Flink Batch SQL可能是比较好的选择,另外Flink Batch任务可以和调度系统配合实现维度表的天级更新;

  1. 你的维度表数据需要比较复杂的关联或者加工逻辑。现在你可以把这个逻辑写在Flink Batch SQL里,然后调度运行。抛弃掉原来需要在离线 任务中处理好,后面挂一个导数任务的场景。

以上2个场景在一些大厂已经开始做强制要求。

至于Streaming Warehouse API,离开发者还暂时较远,可以等功能再继续完善,并且周边的批流一体生态更加完善后在考虑接触。

而且,今天Flink Table Store宣布项目独立运作,并且用Apache Paimon的名字进入到了Apache孵化器,这个后面我们在关注,大家不用着急去跟风。

Streaming部分

这部分涉及到的主要改动如下:

  1. Streaming SQL 语义增强: 非确定性操作可能会导致不正确的结果或异常,这在 Streaming SQL 中是一个极具挑战性的话题。Flink 1.17 修复了不正确的优化计划和功能问题,并且引入了实验性功能 PLAN_ADVICE,PLAN_ADVICE 可以为 SQL 用户提供潜在的正确性风险提示和 SQL 优化建议。

  1. Checkpoint 改进: 通用增量 Checkpoint(GIC)增强了 Checkpoint 的速度和稳定性,Unaligned Checkpoint (UC) 在作业反压时的稳定性也在 Flink 1.17 中提高至生产可用级别。此外,该版本新引入一个 REST API 使得用户可以触发自定义 Checkpoint 类型的 Checkpoint。

  1. Watermark 对齐完善: 高效的 watermark 处理直接影响 event time 作业的执行效率,在 Flink 1.17 中, FLIP-217通过对 Source 算子内部的 split 进行数据对齐发射,完善了 watermark 对齐功能。这一改进使得 Source 中 watermark 进度更加协调,从而减轻了下游算子的缓存过多数据,增强了流作业执行的整体效率。

  1. StateBackend 升级: 此次发布将 FRocksDB的版本升级到了6.20.3-ververica-2.0,对 RocksDBStateBackend 带来了许多改进。例如在 slot 之间共享内存,支持 Apple Silicon 芯片组,如 Mac M1。Flink 1.17 版本还提供了参数扩大 TaskManager 的 slot 之间共享内存的范围,提升了 TaskManager 中 slot 内存使用不均匀时的效率。

这部分没有什么好说的,Flink Streaming的能力现在大家有目共睹,针对高流量,高RPS环境下的如Checkpoint和StateBackend的增强和优化一直是各大公司投入的重点。

可以预见到的是,实时计算和真正实现批流一体的场景(之前的各大公司分享的所谓批流一体就是个噱头)在2023年还会继续大踏步向前,这个对开发者提出了不小的要求,赶紧把已经比较完善的功能掌握掉,数据开发领域是这几年各开发领域中发展最快,成果最多的领域之一。

大家加加油,不要被时代抛弃了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据技术与架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Batch部分
  • Streaming部分
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档