解读 Apache Flink 的十年进化史及其未来展望:Flink 2.0 震撼来袭

实时计算框架 Apache Flink 2.0 发布!存算分离、物化表等重磅特性加持,解锁大数据处理新范式。

原文标题:Apache Flink 的过去、现在及未来

原文作者:阿里云开发者

冷月清谈:

Apache Flink 作为分布式大数据实时处理框架,已成功应用于各行业数字化转型中。随着 Flink 2.0 的发布,Flink 迈入了发展新阶段,本文将全面解读 Flink 的发展历程、技术创新以及 Flink 2.0 的亮点,展望 Flink 在 AI 时代下的应用前景,助力开发者把握大数据处理新风向。

怜星夜思:

1、Flink 2.0 相较于之前的版本有哪些突破性的提升?
2、在实际應用場景中,Flink 2.0 的新特性将如何幫助解決企業在數據處理方面遇到的問題?
3、Flink 與 Apache Paimon 的結合將如何進一步推動數據湖倉的發展?

原文内容

Apache Flink 是 Apache 软件基金会的顶级项目,是一款开源的分布式大数据实时处理框架,专为高吞吐量、低延迟的数据流处理而设计。它具备统一的流批一体处理能力,提供精确一次的状态一致性保证,越来越多的企业选择将 Apache Flink 应用于自身丰富的业务场景,如实时数仓、实时推荐、实时分析、实时大屏、实时风控等,解决实时计算的需求。Apache Flink 自诞生以来,迄今为止已覆盖海内外数千家企业的实时计算需求,涉及行业包括互联网、电商、在线教育、游戏、金融、制造业、新能源汽车等行业。

自加入 Apache 后不久,Flink就开始快速迭代其版本,引入了许多重要的特性如内存管理优化、新的API等,这些都极大地增强了系统的性能与可用性。目前 Apache Flink 社区正在积极准备 Flink 2.0,这是自 Flink 1.0 发布 8 年以来的首次大版本发布。作为一个重要的里程碑,Flink 2.0 将引入许多激动人心的功能和改进,以及一些不兼容的破坏性变更。为了促进用户和上下游项目(例如,连接器)尽早适配这些变更,提前尝试这些令人兴奋的新功能同时收集反馈,我们现在提供了 Flink 2.0 的预览版本。

重要新特性

如今,Apache Flink 已经成长为一个极为成熟的大数据处理平台,在全球范围内得到了许多大型企业的青睐,广泛应用于构建实时分析系统、ETL 流程及复杂事件处理等多种场景中。近年来,Flink 开发团队持续推动技术创新,包括但不限于基于远程存储实现的存算分离状态管理机制、物化视图的支持、批处理任务自适应执行策略等。此外,还特别值得一提的是 Paimon 与 Flink 更深层次集成所带来的全新可能性。所有上述进展均已在 Flink 2.0 预览版本中实现,欢迎各位提前尝试并给予反馈~

1. 存算分离状态管理

过去十年间 Flink 的部署模式、工作负载和硬件的架构都发生了很大的改变。我们已经从计算-存储紧密耦合的 map-reduce 时代,进入到了以 Kubernetes 容器化部署为标准的云原生世界。为了 Flink 在云原生时代的未来,我们在 Flink 2.0 中引入了基于远程存储的存算分离状态管理。

存算分离架构的引入使得 Flink 向云原生领域更进一步。新架构主要解决了以下问题:

  1. 容器化环境下计算节点受本地磁盘大小限制的问题;
  2. 由于RocksDB中LSM结构的周期性 Compaction 导致计算资源尖峰的问题;
  3. 大规模状态快速扩缩容的挑战;
  4. 原生的轻量级和快速检查点;

受限于 Flink 中现有的阻塞式同步执行模型,仅仅将状态存储扩展到从远程 DFS 读写是不够的。在 Flink 2.0 中,我们提出了异步执行模型,并为此引入了 ForStDB,这是一种分离的状态后端解决方案。

在当前预览版本下,我们使用: NexmarkQ20 完成了一个端到端的示例。 其中包括:

  • 异步化执行:完整的状态异步访问的API,以及检查点支持;
  • 异步化SQL Join算子:基于异步化状态 API实现;
  • 同步/异步混合式执行:基于混合式SQL Plan,支持同步算子与异步算子在一个作业内共存;
  • 性能:在直接写入存算分离后的远端存储的场景下,提供了不错的性能;
  • Nexmark:https://github.com/nexmark/nexmark

2. 物化表

在 Flink 1.20 中,我们以最简可行产品(Minimum Viable Product) 的形式引入了物化表功能。物化表是 Flink SQL 中的一种创新型表类型,旨在进一步简化流和批作业的数据处理流程,同时提供统一的开发体验。在即将发布的 Flink 2.0 中,我们正在增强物化表所支持的功能,包括与主流的湖格式进行集成以及生产就绪的调度器实现。

3. 批作业的自适应执行

此外,Flink 正在不断提升其自适应批处理能力。即将发布的 Flink 2.0 将具备基于作业已完成的阶段所提供的信息,对逻辑计划和物理计划进行动态优化的能力。初步支持的策略包括动态应用 Broadcast Join 以及对数据倾斜的 Join 进行优化。

4. 流式湖仓

以 Apache Flink 和 Apache Paimon 的集成为代表的流式湖仓架构将湖仓范式中统一的数据存储、开放格式和成本效益扩展到了实时领域。即将发布的 Flink 2.0 在 Flink 和 Paimon 的集成方面迈出了重要一步:Flink 和 Paimon 社区正在密切合作,充分结合彼此的优势以及核心功能,带来了诸多重要改进,包括但不限于:使用 Paimon 丰富的合并引擎进行 SQL 执行计划优化、大幅提升 Lookup-Join 的性能、支持 Flink 物化表、以及对自适应批处理和推测执行的支持。

更多有关 Flink 2.0 预览版本内容,欢迎跳转学习观看~

https://developer.aliyun.com/article/1629262

Flink Forward Asia 2024 上海站

随着 Apache Flink 2.0 的预览版发布,Flink 正式迈入了其发展历程中的下一个重要里程碑。这将是自 Flink 1.0 推出以来历经8年的首次重大版本更新。在 Apache Flink 诞生 10 周年之际,有一个绝佳的机会为广大开发者分享 Flink 最近 10 年在技术和生态上的演进历程和关键成果,并基于当前 AI 时代下的新场景,展望未来 10 年 Flink 新的发展方向和规划。同时大会将带您全面了解 Flink 2.0 版本,还可以同业界大佬共同探讨 Apache Flink 的过去、现在及未来,以及其在实际应用中的潜力。


The Past, Present, and Future of Apache Flink阿里云智能开源大数据平台负责人王峰老师会分享从Apache Flink 的诞生到成为流计算领域的事实标准,回顾过去十年间Apache Flink的发展历程,不仅包含了Flink 在技术革新与生态建设方面取得的关键成就,还会探讨AI新时代背景下,Flink 如何适应不断变化的需求,并预测未来十年内它可能采取的发展路径及目标设定。 

即将发布的 Flink 2.0 版本,是自 2016 年 Flink 1.0 发布以来,该框架经历的最大规模更新之一。《Apache Flink 2.0: Streaming into the Future宋辛童、梅源和李麟三位阿里云智能技术专家将共同聚焦并将深入解析这一里程碑式版本所带来的技术创新点,以及这些变化对当前大数据处理乃至人工智能领域可能产生的长远影响。

在阿里巴巴集团及其他多个行业已成功实施应用的高效的数据湖仓系统,是通过结合Apache flink构建的顶级项目。《Paimon 1.0: Unified Lake Format for Data + AI》李劲松老师将详细介绍今年刚毕业为 Apache 顶级项目的 Paimon。此外,来自淘天、vivo 及抖音等企业的嘉宾还将分享各自基于 Paimon+Flink 架构的实际案例,展示如何加速实现数据湖内的实时流动与分析能力。

在《Fluss: Next-Gen Streaming Storage for Streaming Analytics》这一主题中,伍翀老师将介绍一种专为流分析设计的新一代存储解决方案——Fluss。重点讨论 Fluss 如何有效解决当前流存储方案中存在的挑战,并详细介绍其核心功能特点、适用场景及其带来的优势。同时也会探讨 Fluss 与现有湖存储技术之间的整合可能性及其后续发展蓝图。

“AI时代下的大数据技术未来路在何方?”

对话嘉宾将基于各自的研究背景与实践经验,就如何更好地融合AI与大数据处理技术、应对行业新趋势等问题进行深度对话。而这样的探讨,会为您带来什么样的思考与应用呢?

如果您想要深入了解大数据技术,想要学习更多 Apache Flink 的相关知识,即将于 11 月 29 至 30 日上海举行的 Flink Forward Asia 2024大会将为大家提供一个绝佳的机会!

更多精彩请点击 阅读原文 进入官网即刻报名参会吧!

Flink 2.0 大幅提升了流式处理的性能,在吞吐量和延迟方面都有显著优化。同时,它改进了用户体验,提供了更直观的 API 和更完善的文档。此外,Flink 2.0 增强了对 Kubernetes 和云原生环境的支持,使其在部署和管理上更加灵活。

物化表可以簡化流和批處理任務的數據處理流程,提高開發效率。企業可以利用此特性建立統一的數據處理管道,靈活應對不同類型的數據處理任務。

Flink 2.0 在存算分离、物化表、批作业自适应执行等方面实现了突破性提升。存算分离架构解决了容器化环境下计算资源受限、LSM 结构下的 Compaction 导致资源尖峰等问题,为云原生时代的大数据处理奠定基础。物化表简化了流和批作业的数据处理流程,提供了统一的开发体验。批作业自适应执行基于作业已完成阶段的信息,动态优化逻辑和物理计划,提升执行效率。

存算分离架构將有助於企業應對云原生環境下的挑戰,例如計算資源受限和 Compaction 導致的資源尖峰等,從而確保穩定高效的數據處理運算。

批處理任務自適應執行可以根據作業執行期間收集的資訊,動態優化邏輯和物理計畫,從而提升批處理任務的效能,幫助企業優化資源使用和縮短處理時間。

Flink 2.0 的一大突破是引入了异步执行模型,允许计算和状态存储解耦,提高了效率和扩展性。此外,物化表和批作业自适应执行等新特性丰富了 Flink 的功能,使其能够处理更多类型的用例并简化开发流程。

這種結合使 Flink 能夠利用 Paimon 的優勢進行 SQL 執行計畫優化、提升 Lookup-Join 的效能、支援 Flink 物化表、以及對自適應批處理和推測執行的支援,進一步增強 Flink 的數據處理能力。

Flink 與 Apache Paimon 的結合將帶來流式湖倉架構,將湖倉範式擴展到實時領域,提供統一的數據存儲、開放格式和成本效益。