Amazon Managed Service for Apache Flink 1.19 - Managed Service for Apache Flink
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Managed Service for Apache Flink(Amazon MSF)之前称为 Amazon Kinesis Data Analytics for Apache Flink。

Amazon Managed Service for Apache Flink 1.19

现在,Managed Service for Apache Flink Studio 支持 Apache Flink 1.19.1 版本。本节向您介绍 Managed Service for Apache Flink 支持 Apache Flink 1.19.1 后引入的关键新功能和更改。

注意

如果您使用的是早期支持的 Apache Flink 版本,并且想要将现有应用程序升级到 Apache Flink 1.19.1,则可以使用就地升级 Apache Flink 版本来实现。有关更多信息,请参阅 使用 Apache Flink 的就地版本升级。通过就地版本升级,您可以针对单个 ARN 在 Apache Flink 版本中保持应用程序的可追溯性,包括快照、日志、指标、标签、Flink 配置等。

Apache Flink 1.19.1 在 SQL API 中引入各种改进,例如命名参数、自定义源并行度以及各种 Flink 操作员的不同状态 TTL。

支持的功能和相关文档
支持的功能 描述 Apache Flink 文档参考
SQL API:支持使用 SQL 提示配置不同的状态 TTL 用户现在可以在流常规联接和组聚合上配置状态 TTL。 FLIP-373:使用 SQL 提示配置不同的状态 TTL
SQL API:支持函数和调用过程的命名参数 用户现在可以在函数中使用命名参数,而不必依赖参数的顺序。 FLIP-378:支持函数和调用过程的命名参数
SQL API:为 SQL 源设置并行度 用户现在可以为 SQL 源指定并行度。 FLIP-367:支持为表/SQL 源设置并行度
SQL API:支持会话窗口 TVF 用户现在可以使用会话窗口表值函数。 FLINK-24024:支持会话窗口 TVF
SQL API:窗口 TVF 聚合支持更改日志输入 用户现在可以对更改日志输入进行窗口聚合。 FLINK-20281:窗口聚合支持更改日志流输入

支持 Python 3.11

Flink 现在支持 Python 3.11,与 Python 3.10 相比,后者的速度提高了 10-60%。有关详细信息,请参阅 Python 3.11 中的新增功能 FLINK-33030:添加 python 3.11 支持
为 TwophaseCommiting 接收器提供指标 用户可以在提交接收器的两个阶段中查看有关提交者状态的统计信息。 FLIP-371:为在 TwoPhaseCommittingSink 中创建提交者提供初始化上下文

用于作业重新启动和检查点的跟踪报告程序

用户现在可以监控检查点持续时间和恢复趋势的相关跟踪。在 Amazon Managed Service for Apache Flink 中,我们默认启用 slf4j 跟踪报告程序,因此用户可以通过应用程序 CloudWatch Logs 监控检查点和作业跟踪。 FLIP-384:引入 TraceReporter 并用它来创建检查点和恢复跟踪
注意

您可以通过提交支持案例来选择加入以下功能:

选择加入功能和相关文档
选择加入功能 描述 Apache Flink 文档参考
支持在源处理待办事项时使用更大的检查点间隔 这是一项选择加入功能,因为用户必须根据自己的特定作业要求调整配置。 FLIP-309:支持在源处理待办事项时使用更大的检查点间隔
将 System.out 和 System.err 重定向到 Java 日志 这是一项选择加入功能。在 Amazon Managed Service for Apache Flink 上,默认行为是忽略 System.out 和 System.err 的输出,因为生产中的最佳实践是使用原生 Java 日志记录程序。 FLIP-390:支持将 System.out 和 System.err 重定向到日志或丢弃

有关 Apache Flink 1.19.1 发布文档,请参阅 Apache Flink 文档 v1.19.1

日志跟踪报告程序默认处于启用状态

Apache Flink 1.19.1 引入了检查点和恢复跟踪,使用户能够更好地调试检查点和作业恢复问题。在 Amazon Managed Service for Apache Flink 中,这些跟踪记录到 CloudWatch 日志流中,允许用户分解作业初始化所花费的时间,并记录检查点的历史大小。

默认重新启动策略目前为指数延迟

在 Apache Flink 1.19.1 中,指数延迟重新启动策略有了显著改进。在 Flink 1.19.1 及更高版本的 Amazon Managed Service for Apache Flink 中,Flink 作业默认使用指数延迟重新启动策略。这意味着用户作业可以更快地从暂时错误中恢复,但如果作业重新启动持续进行,则不会使外部系统过载。

向后移植的错误修复

Amazon Managed Service for Apache Flink 向后移植 Flink 社区针对关键问题的修复。这意味着运行时与 Apache Flink 1.19.1 发布版本不同。以下是我们向后移植的错误修复列表:

向后移植的错误修复
Apache Flink JIRA 链接 描述
FLINK-35531 此修复解决了 1.17.0 中引入的导致写入 HDFS 速度变慢的性能下降问题。
FLINK-35157 此修复解决了当带有水印对齐的源遇到已完成的子任务时 Flink 作业卡住的问题。
FLINK-34252 此修复解决了水印生成中导致错误“空闲”水印状态的问题。
FLINK-34252 此修复通过减少系统调用来解决水印生成期间的性能回归问题。
FLINK-33936 此修复解决了在 Table API 上进行小批量聚合期间出现重复记录的问题。
FLINK-35498 此修复解决了在 Table API UDF 中定义命名参数时参数名称冲突的问题。
FLINK-33192 此修复解决了由于计时器清理不当而导致窗口操作员出现状态内存泄漏的问题。
FLINK-35069 此修复解决了 Flink 作业在窗口结束期间触发计时器时卡住的问题。
FLINK-35832 此修复解决了 IFNULL 返回错误结果时的问题。
FLINK-35886 此修复解决了将反压的任务视为空闲时出现的问题。
组件 版本
Java 11(推荐使用)
Python

3.11

Kinesis Data Analytics Flink 运行时(aws-kinesisanalytics-runtime) 1.2.0
连接器 有关可用连接器的信息,请参阅 Apache Flink 连接器
Apache Beam(仅限 Beam 应用程序)

从 2.61.0 版本开始。有关更多信息,请参阅 Flink 版本兼容性

Amazon Managed Service for Apache Flink Studio

Studio 利用 Apache Zeppelin 笔记本为开发、调试代码和运行 Apache Flink 流处理应用程序提供单一界面开发体验。Zeppelin 的 Flink 解释器需要升级才能启用对 Flink 1.19 的支持。这项工作由 Zeppelin 社区计划,我们将在完成后更新这些注意事项。您可以继续将 Flink 1.15 与 Amazon Managed Service for Apache Flink Studio 结合使用。有关更多信息,请参阅创建 Studio 笔记本