本文为您介绍2024年05月29日发布的实时计算Flink版的重大功能变更和主要缺陷修复。
概述
2024年5月29日正式对外发布实时计算Flink版的新版本,包含平台升级、引擎更新、连接器更新、性能优化以及缺陷修复。
平台侧
本次平台功能更新聚焦于增强系统的稳定性和运维能力,并提升了易用性。
为保证您作业运行的稳定性,我们对同城高可用功能进行了优化。支持将已有的单可用区CU类型项目空间转换为跨可用区CU类型项目空间,无需新建项目空间并进行作业迁移,极大地简化了启用同城高可用的流程。
支持在作业资源配置专家模式下设置算子的状态TTL,能更精细地调整不同算子的状态TTL,实现用更少的资源获取更高的稳定性效果。
支持通过实时计算Flink版VS Code插件,实现本地Flink作业开发、部署及上线全流程,并支持快速从线上同步作业。
除此之外,我们也对数据血缘、运维页面等部分进行了进一步的优化。
引擎侧
引擎侧正式对外发布VVR 8.0.7,该版本是基于Apache Flink 1.17.2的企业级Flink引擎,主要包含以下变更:
在实时湖仓方面,Paimon连接器SDK升级,支持Paimon数据湖格式0.9版本。
在SQL增强方面,您可以使用算子状态生命周期(TTL)Hints单独为双流联接算子和分组聚合算子设定TTL,更精准的控制各个算子的状态大小;您可以使用命名参数来实现自定义函数,提升开发效率,降低维护成本。
在连接器方面,本版本MongoDB连接器结束公测,正式进入生产阶段,它提供了完整的CDC源表、维表和结果表能力,相关技术解读请参见MongoDB CDC的设计与实现。另外本版本还重点提升了MySQL CDC和Redis连接器相关能力:
MySQL CDC:
支持通过op_type虚拟列获取数据操作类型,使得下游能够获得该变化数据的操作类型(+I、+/-U、-D),借此功能,您可灵活地根据具体的操作类型设计业务逻辑和数据清理策略。
优化了以Decimal类型作为主键的MySQL表的读取性能,并实现了大容量表的SourceRecord(数据变更记录)并行处理,以提升处理效率。
支持Source复用功能,开启Source复用功能后,Flink会尝试合并同一作业内某些配置项(库名、表名和server-id除外)均相同的MySQL CDC源表,以减轻MySQL服务器的连接和监听压力。
在开启sink.ignore-null-when-update参数时,会进行攒批执行,数倍提升了处理性能。
Redis:Redis作为维表和结果表时,当Key的数据类型为HashMap时,支持多种非主键Key格式的DDL定义,方便您更好地理解;支持设置Key的前缀和分隔符,满足Redis数据治理要求。
在元数据管理方面,MySQL视图作为数据库中的一种逻辑结构,本身无法进行实际的数据读写。为避免数据操作错误,新创建的MySQL Catalog中将不再展示视图信息。
在安全方面,本版本对开启Kerberos的Hive集群的兼容范围扩展至Hadoop 2.x版本;对日志中连接器的连接配置等敏感信息进行了隐藏屏蔽。
在缺陷修复方面,本版本重点修复了ClickHouse结果表shardWrite参数未生效与在极端情况下作业快照无法生成等问题,旨在提高系统的稳定性和可靠性。
该版本主要特性详情及相关文档详见下方表格,我们将在全网进行分步骤的灰度,灰度完毕后,欢迎您将作业使用的引擎升级至此版本,具体操作请参见作业引擎版本升级。期待您的使用体验反馈!
主要功能介绍
特性 | 详情 | 相关文档 |
同城高可用功能优化 | 支持项目空间类型(单可用区和跨可用区)互相切换。 | |
血缘关系功能优化 | 字段级别血缘关系支持通过字段名称进行搜索,多个结果时支持按上下键进行切换,方便您快速定位并查看字段血缘信息。 | |
作业运维页面新增创建人字段 | 您可以在作业运维页面,单击右侧的配置自定义列表展示,添加创建人字段。通过创建人字段,能够准确过滤作业列表,当作业出现问题时可以快速确认作业的创建人,提升协作效率。
| 无 |
权限管理功能优化 | 创建工作空间的身份(主账号、RAM用户、RAM角色等)默认具有项目空间下owner角色权限。 | |
SQL作业有状态启动时状态兼容性检测行为优化 | 选择从最新状态启动作业时,Flink系统会检测作业变化。当检测到作业发生变化时,建议单击状态兼容性检测旁的点击检测检查兼容性,并依据兼容性结果后决定后续行为。 | |
上线VS Code本地开发插件 | 为您打通了本地Flink作业开发全流程,帮助您在本地轻松完成Flink作业的开发、部署及上线,包括SQL、JAR和Python作业,并支持快速从线上同步作业。 | |
支持算子粒度的TTL设置 | 在只有某些算子需要设置较大TTL的场景下,为整个作业设置统一的TTL可能会导致State膨胀,造成资源损耗。您可以通过以下任意一种方式设置算子TTL,更精准的控制各个算子的状态大小,节约大状态作业的使用资源。
| |
支持通过命名参数实现自定义函数 | 可以提升开发效率,降低维护成本。 | |
MySQL CDC连接器能力增强 |
| |
Redis连接器能力增强 |
| |
MQ支持攒批读取 | 可以有效提高处理效率并降低资源成本。 | |
MySQL Catalog中不再支持查看视图 | MySQL视图作为数据库中的一种逻辑结构,本身并不存储数据。因此自该版本起,新创建的MySQL Catalog都无法查看视图信息。 | |
增强了对Hive Kerberos集群的支持 | 对开启Kerberos的Hive集群兼容性范围扩展至Hadoop 2.x。 | |
Iceberg Connector SDK版本升级 | 支持读写Apache Iceberg 1.5。 |
主要缺陷修复
修复了实时计算引擎VVR 8.0.5和VVR 8.0.6版本Hologres连接器Where条件下推导致的数据正确性问题。
修复了SLS连接器在Failover期间,SLS源表仍然在消费位点提交而导致数据丢失问题。
修复了同时设置有TTL的mapState和无TTL的valueState时出现的valueState状态丢失问题。
修复了动态CEP中反序列化WithinType.PREVIOUS_AND_CURRENT结果不一致问题。
修复了控制台监控页面与Flink UI页面的currentEmitEventTimeLag 汇报数据不一致问题。
修复了Apache Flink 1.17.2版本的所有缺陷,详情请参见Apache Flink 1.17.2 Release Announcement。