Apache Flink社区很高兴地宣布Apache Flink 1.7.0。最新版本包括超过420个已解决的问题以及Flink的一些令人兴奋的新增内容,我们将在本文的以下部分中对其进行描述。请查看完整的更新日志以获取更多详细信息。
Flink 1.7.0与以前使用@Public注释注释的API的1.xy版本API兼容。该版本现已上市,我们鼓励大家下载该版本并查看更新的文档。通过Flink邮件列表或JIRA的反馈一如既往地非常感谢!
您可以在Flink项目站点上的更新下载页面上找到二进制文件。
- Flink 1.7.0 - 扩展流处理的范围
- 新功能和改进
- 发行说明
- 贡献者名单
Flink 1.7.0 - 扩展流处理的范围
在Flink 1.7.0中,我们更接近实现快速数据处理和以无缝方式为Flink社区构建数据密集型应用程序的目标。我们的最新版本包括一些令人兴奋的新功能和改进,例如对Scala 2.12的支持,一次性S3文件接收器,复杂事件处理与流SQL的集成以及我们在下面解释的更多功能。
新功能和改进
Apache Flink中的Scala 2.12支持(FLINK-7811):Apache Flink 1.7.0是第一个完全支持Scala 2.12的版本。这允许用户使用较新的Scala版本编写Flink应用程序并利用Scala 2.12生态系统。
状态演进(FLINK-9376):在许多情况下,由于需求的变化,长期运行的Flink应用程序需要在其生命周期内发展。在不失去当前应用程序进度状态的情况下更改用户状态是应用程序发展的关键要求。使用Flink 1.7.0,社区添加了状态演变,允许您灵活地调整长时间运行的应用程序的用户状态模式,同时保持与以前保存点的兼容性。通过状态演变,可以在状态模式中添加或删除列,以便更改应用程序部署后应用程序捕获的业务功能。现在,使用Avro生成时,状态模式演变现在可以立即使用作为用户状态的类,这意味着可以根据Avro的规范来演变国家的架构。虽然Avro类型是Flink 1.7中唯一支持模式演变的内置类型,但社区仍在继续致力于在未来的Flink版本中进一步扩展对其他类型的支持。
完全一次S3 StreamingFileSink(FLINK-9752):Flink 1.6.0中引入的StreamingFileSink现在已经扩展到支持写入S3文件系统,只需一次处理保证。使用此功能允许用户构建写入S3的一次性端到端管道。
MATCH RECOGNIZE Streaming SQL支持(FLINK-6935):这是Apache Flink 1.7.0的一个重要补充,它为Flink SQL 提供了MATCH RECOGNIZE标准的初始支持。此功能结合了复杂事件处理(CEP)和SQL,可以轻松地对数据流进行模式匹配,从而实现一整套新的用例。此功能目前处于测试阶段,因此我们欢迎社区提供任何反馈和建议。未来的迭代和改进。
流式SQL中的时态表和时间连接(FLINK-9712):时态表是Apache Flink中的一个新概念,它为表的更改历史提供(参数化)视图,并在特定时间点返回表的内容。例如,我们可以使用具有历史货币汇率的表格。随着时间的推移,这种表格不断增长/发展,并且增加了新的更新汇率。时态表是一种视图,可以将这些汇率的实际状态返回到任何给定的时间点。使用这样的表,可以使用正确的汇率将不同货币的订单流转换为通用货币。时间联接允许使用不断变化/更新的表来进行内存和计算有效的流数据连接。处理时间或事件时间,
Streaming SQL的其他功能:除了上面提到的主要功能外,Flink的Table&SQL API已经扩展到更多用例。以下内置函数被添加到API:TO_BASE64,LOG2,LTRIM,REPEAT,REPLACE,COSH ,SINH,TANH SQL Client现在支持在环境文件和CLI会话中定义视图。此外,CLI中添加了基本的SQL语句自动完成功能。社区添加了一个Elasticsearch 6表接收器,允许存储动态表的更新结果。
版本化REST API(FLINK-7551):从Flink 1.7.0开始,REST API已经过版本化。这保证了Flink REST API的稳定性,因此可以在Flink中针对稳定的API开发第三方应用程序。因此,未来的Flink升级不需要更改现有的第三方集成。
Kafka 2.0连接器(FLINK-10598):Apache Flink 1.7.0继续添加更多连接器,使其更容易与更多外部系统进行交互。在此版本中,社区添加了Kafka 2.0连接器,该连接器允许通过一次性保证读取和写入Kafka 2.0。
本地恢复(FLINK-9635):Apache Flink 1.7.0通过扩展Flink的调度来完成本地恢复功能,以便在恢复时考虑以前的部署位置。如果启用了本地恢复,Flink将保留最新检查点的本地副本任务运行的机器。通过将任务调度到以前的位置,Flink将通过从本地磁盘读取检查点状态来最小化恢复状态的网络流量。此功能大大提高了恢复速度。
删除Flink的传统模式(FLINK-10392):Apache Flink 1.7.0标志着Flip-6工作已完全完成并且与传统模式达到功能奇偶校验的版本。因此,此版本删除了对传统模式的支持。
发行说明
如果您计划将Flink设置升级到Flink 1.7,请查看发行说明。
https://ci.apache.org/projects/flink/flink-docs-release-1.7/
贡献者名单
我们要感谢所有社区成员为此版本做出贡献。特殊学分将由以下成员参与1.7.0版本的发布(根据git):
Aitozi, Alex Arkhipov, Alexander Koltsov, Alexey Trenikhin, Alice, Alice Yan, Aljoscha Krettek, Andrei Poluliakh, Andrey Zagrebin, Ashwin Sinha, Barisa Obradovic, Ben La Monica, Benoit Meriaux, Bowen Li, Chesnay Schepler, Christophe Jolif, Congxian Qiu, Craig Foster, David Anderson, Dawid Wysakowicz, Dian Fu, Diego Carvallo, Dimitris Palyvos, Eugen Yushin, Fabian Hueske, Florian Schmidt, Gary Yao, Guibo Pan, Hequn Cheng, Hiroaki Yoshida, Igal Shilman, JIN SUN, Jamie Grier, Jayant Ameta, Jeff Zhang, Jeffrey Chung, Jicaar, Jin Sun, Joe Malt, Johannes Dillmann, Jun Zhang, Kostas Kloudas, Krzysztof Białek, Lakshmi Gururaja Rao, Liu Biao, Mahesh Senniappan, Manuel Hoffmann, Mark Cho, Max Feng, Mike Pedersen, Mododo, Nico Kruber, Oleksandr Nitavskyi, Osman Şamil AKÇELİK, Patrick Lucas, Paul Lam, Piotr Nowojski, Rick Hofstede, Rong R, Rong Rong, Sayat Satybaldiyev, Sebastian Klemke, Seth Wiesman, Shimin Yang, Shuyi Chen, Stefan Richter, Stephan Ewen, Stephen Jason, Thomas Weise, Till Rohrmann, Timo Walther, Tzu-Li “tison” Chen, Tzu-Li (Gordon) Tai, Tzu-Li Chen, Wosin, Xingcan Cui, Xpray, Xue Yu, Yangze Guo, Ying Xu, Yun Tang, Zhijiang, blues Zheng, hequn8128, ifndef-SleePy, jerryjzhang, jrthe42, jyc.jia, kkolman, lihongli, linjun, linzhaoming, liurenjie1024, liuxianjiao, lrl, lsy, lzqdename, maqingxiang, maqingxiang-it, minwenjun, shuai-xu, sihuazhou, snuyanzin, wind, xuewei.linxuewei, xueyu, xuqianjin, yanghua, yangshimin, zhijiang, 谢磊, 陈梓立