引言
欢迎踏上这段深入了解 Apache Flink 演进历程的旅程,Apache Flink 是一项重新定义了实时数据处理的技术。本博客文章基于王峰(阿里云开放数据平台负责人、Apache Flink Committer)在 2025 年 Flink Forward Asia 新加坡大会上的演讲内容编辑而成,深入探讨了企业如何利用 Apache Flink 从传统的实时数据分析转向尖端的实时 AI 应用。我们将探索 Flink 十年的发展历程、它在现代数据架构中的关键作用、与湖仓环境的协同效应,以及它在赋能实时 AI 智能体和应用方面的变革潜力。
01
Apache Flink 的十年发展历程
Apache Flink 的非凡旅程始于 2009 年,当时名为 Stratosphere,是德国柏林工业大学的一个研究项目。五年后,核心团队成立了dataArtisans 公司,并将该项目贡献给 Apache 软件基金会,重命名为 Flink。又过了五年,阿里巴巴收购了 dataArtisans,将其更名为 Ververica,并投入大量资源推动 Flink 成为实时数据分析中流处理的事实标准。创新仍在继续,最近的项目包括用于实时数据集成的 Flink CDC(变更数据捕获)和 Apache Paimon——一种源自 Flink 社区、现已成为独立 Apache 项目的实时数据湖格式。Flink 2.0 的正式发布为社区开启了新篇章,为下一个十年的进步奠定了基础。
从技术角度来看,Flink 在现代数据架构和生态系统中占据着核心地位。
它充当着骨干,驱动实时数据流从操作系统流向分析系统。Flink 高效地从数据库和消息队列中捕获各种实时事件,执行复杂的流处理,然后无缝地将结果同步到数据湖和数据仓库。在过去十年中,Apache Flink 的架构已演进为完全云原生,简化了开发者在云环境中的部署。因此,包括阿里云在内的大多数云供应商现在都提供 Apache Flink 的托管服务,使全球企业更容易使用该技术。
02
Apache Flink 在现代数据生态系统中的作用和湖仓集成
Apache Flink 在现代数据架构中的核心作用不容否认。它作为关键纽带,实现从操作数据系统到分析系统的实时数据流。Flink 的能力扩展到从数据库和消息队列捕获各种实时事件,执行复杂的流处理,然后将处理后的数据与数据湖和数据仓库无缝同步。这种集成对于寻求从不断演变的数据流中获得即时洞察的企业至关重要。
数据架构中最重要的进步之一是湖仓的兴起。这种新一代数据平台结合了数据湖和数据仓库的最佳特性,既提供了灵活性,又具备结构化数据管理能力。虽然湖仓架构上的许多工作负载仍以离线或批处理模式运行,但在湖仓环境中对实时数据分析的日益增长的需求突显了一个关键需求。这正是 Apache Flink 变得不可或缺的地方。通过将Flink的流处理技术与湖仓架构集成,企业可以实现端到端的实时解决方案。
当前主流的数据湖格式 Iceberg 虽然功能强大,但由于其面向批处理的特性,并非天然为实时操作而设计。为了解决这一问题,Flink 社区在 2022 年孵化了 Apache Paimon(原名Flink Table Store)。Paimon 专门为湖仓架构中的实时数据更新而设计,是一种纯粹面向流的格式。Apache Flink 和 Apache Paimon 的协同作用创造了一个新范式:流式湖仓(Streaming Lakehouse)。这种基于流技术构建的架构实现了端到端的实时数据管道,具有分钟级的时效性,为企业提供了前所未有的敏捷性和响应能力。
03
使用 Apache Flink 释放实时数据价值
Apache Flink 的快速增长和广泛采用,使其成为全球流处理的事实标准,这不仅仅归因于其优秀的技术设计和持续创新。从根本上说,Flink 释放了实时数据的真正价值,使企业能够显著提高业务效率并做出实时业务决策。例如,在各个行业中,管理层和营销团队现在可以通过由 Apache Flink 持续更新的实时 BI 报告和仪表板做出即时业务决策。电商公司可以在 Flink 上构建实时推荐系统,向客户推送相关产品,增加参与度和交易量。金融系统利用 Flink 进行实时欺诈检测,展示了其在众多用例中的多功能性。
阿里巴巴作为 Apache Flink 的主要贡献者和最大用户之一,提供了一个令人信服的例子,说明如何使用 Flink 及其生态系统构建实时数据平台。自 2016 年以来,阿里巴巴一直基于 Apache Flink 构建其统一的流数据平台,将其所有业务和数据应用从离线升级到实时分析。
这包括天猫、淘宝、全球速卖通和 Lazada 等全球电商巨头,以及菜鸟等物流运营和在线旅游服务。在双十一全球网购节等高峰活动期间,阿里巴巴的流数据平台运行在数百万个 CPU 核心上,每秒处理数十亿条记录。为了支持如此庞大的实时工作负载,阿里巴巴的流处理团队开发了 Apache Flink 的增强版本,称为 Flash,这是一个下一代向量化流处理引擎。该引擎与 Apache Flink 100% 兼容,但提供了显著更快的性能,通过使用向量化模型用 C++ 重写核心组件来实现,同时保持相同的 API 和分布式运行时框架。
为了将这种尖端流技术的好处扩展到阿里巴巴集团之外,整个流数据平台被迁移到阿里云,提供名为实时计算(RTC)的 Apache Flink 托管服务。
RTC 是一个全面的一站式实时数据平台,包括 Web SQL 界面、元服务、在线调试以及云中 Flink 作业的操作和管理工具,所有这些都由核心 Flash 引擎提供支持。迄今为止,RTC 为10多个国家和地区的 1000 多个全球客户提供服务,运行着 10000 多个 Flink 作业,为阿里云上无数行业客户的实时业务决策提供驱动力。
04
Apache Flink 的未来:赋能实时 AI
虽然 Apache Flink 已经牢固确立了其作为全球实时数据分析事实标准的地位,但其未来远远超出了这一领域。在当前的人工智能时代,Flink 准备为 AI 系统和应用提供实时能力。众所周知,计算能力、模型算法和数据是推动 AI 技术演进的三大基础支柱。
其中,数据发挥着特别关键的作用。规模定律表明,AI 模型随着参数数量的增加而变得更加强大,现代AI模型正在规模上增长,变得多模态,并要求用于训练的数据集越来越大。然而,在线公共数据的供应是有限的。未来的进步将更少依赖于数量,更多依赖于数据质量和新鲜度。
正如前面讨论所强调的,数据越新鲜,其价值就越高,这一原则在 AI 世界中尤其成立。考虑一下 AI 系统或智能体缺乏实时或新鲜数据的后果。例如,客户服务聊天机器人如果没有客户档案、订单或查询上下文的最新信息,就难以提供准确的答案。类似地,推荐系统如果无法获得客户行为、行动或兴趣的实时洞察,就无法提供相关建议。这些例子清楚地表明,实时能力是有效 AI 系统的固有特征。
在未来,所有 AI 应用都需要是实时的,为客户提供即时和动态的体验。
Apache Flink 独特地定位于使当前的生成式AI系统实时化。
以航空公司客户服务聊天机器人为例。如果乘客的行李丢失,没有实时数据的传统聊天机器人可能无法提供准确信息。然而,通过在 AI 系统背后构建由Flink驱动的强大流数据平台,可以收集来自各种来源的实时数据并输入到 AI 中,确保聊天机器人始终保持更新并能够提供精确答案。这展示了 Flink 如何能够转换生成式AI系统,增强用户体验和准确性。
05
事件驱动 AI 智能体:下一个前沿
AI领域另一个快速兴起的趋势是 AI 智能体或智能体 AI(Agentic AI)的崛起。虽然存在许多类型的 AI 智能体,但它们基本上可以分为两种主要类型:对话式 AI 智能体和事件驱动 AI 智能体。对话式 AI 智能体,如 AI 编程工具、聊天BI和深度研究助手,通常由人类用户主动触发,用户与它们互动以提问和接收答案。相比之下,事件驱动 AI 智能体由系统触发,对来自汽车、手机、机器、PC 或服务器等各种来源发出的实时事件做出反应。这些智能体提供全面的智能洞察并采取及时行动,以反应模式而非主动模式运行。例子包括欺诈检测智能体、情感分析智能体和 AI 运维智能体。
考虑一个具体的用例:直播带货。
在这种流行的电商趋势中,观众发送源源不断的消息、评论和问题,在屏幕上快速刷新。主播几乎不可能跟上或阅读所有这些消息,更不用说从观众反馈中获得洞察了。然而,通过部署由 Flink 驱动的情感分析智能体,主播可以获得实时、全面的仪表板。这个仪表板不仅会显示传统的统计报告,如按地点和年龄划分的观众人口统计,还会提供实时情感分析,指示观众偏好、讨论话题,甚至提供动态建议。这种实时反馈循环使主播能够动态调整策略,吸引更多观众注意力并推动更多交易。
构建这种事件驱动 AI 智能体需要强大的分布式运行时框架。
除了核心 AI 模型、MCP 协议和通用工具外,这些智能体还需要强大的能力来持续处理大规模事件、高效的事件收集以及跨多个事件的强大状态管理或 AI 记忆。此外,这些在线分布式系统的可靠性和容错性至关重要。鉴于 Apache Flink 作为成功的事件驱动数据处理器的优势,它是构建事件驱动AI智能体实时运行时框架的理想选择。
为了简化在 Apache Flink 上开发事件驱动AI智能体,来自阿里巴巴、Confluent、Ververica 和 LinkedIn 的开发者共同发起了一个名为 Flink Agents 的开源项目。
该项目旨在在 Apache Flink 之上建立一个智能体 AI 框架,专门针对事件驱动AI智能体量身定制。该框架提供 Java 和 Python API,支持构建 AI 智能体的静态工作流和 ReAct 模式。利用 Flink 丰富的连接器和强大的 CDC 流处理能力,Flink Agents 使开发者可以轻松收集和处理实时事件,为用户提供即时洞察和建议。Flink 固有的有状态流计算引擎,具有强大的内置状态后端和状态管理系统,作为跨多个事件的强大 AI 记忆,进一步巩固了其在这一领域的作用。
06
Flink 与生成式 AI:深度集成
在讨论的最后部分,我们探索将强大的AI能力,特别是生成式 AI,集成到 Apache Flink 中的激动人心的集成。Flink 现在可以为客户执行实时语义分析,为智能数据处理开辟了新的可能性。让我们考虑一个具体的用例:电商平台上的产品审核。每个产品在上架前都必须经过严格的审核以确保合规。传统上,这涉及编写 Flink SQL 来连接产品发布流与合规规则表,并使用字符串匹配函数检查产品标题中的禁用关键词。这种基于规则的方法虽然有效,但有其局限性。
在当前的 AI 时代,越来越倾向于智能的、基于语义的解决方案。通过将生成式AI能力,特别是大语言模型(LLM),集成到 Apache Flink 中,Flink 用户可以前所未有地轻松执行实时语义分析。幸运的是,Flink 2.0 引入了一个名为 Flink SQL 中的 AI 函数的新功能。
这个功能允许 Flink 用户直接在 Flink SQL 语句中调用AI语言模型服务并执行向量搜索,与传统的 SQL 数据处理并行。这意味着开发者可以使用 Flink SQL 创建或定义 AI 模型,指定模型名称、端点、API 密钥和系统提示等选项。将支持与 OpenAI 协议兼容的模型。
然后,开发者可以直接在传统 Flink SQL 中调用这些 AI 模型服务进行实时流推理。即使对于 RAG(检索增强生成)解决方案,开发者也可以在 SQL 语句中方便地以实时模式执行嵌入和向量搜索。这种新的 Flink AI SQL 能力无缝结合了传统关系代数与生成式 AI,实现了结构化和非结构化数据的实时语义分析。回到我们的产品审核示例,使用新的 Flink AI 解决方案,我们可以用更先进的方式解决同样的问题。通过创建复杂模型并在 Flink SQL 中使用 AI 函数ML_predict,我们可以对产品标题进行语义分析以检查合规性。这种 AI 驱动的、基于语义的解决方案提供了优于传统基于规则方法的结果和更好的体验,甚至可以检测到标题中没有明确禁用关键词的不合规产品。
07
结论与展望
总之,Apache Flink 不仅在实时数据分析方面蓬勃发展,而且正在成为当前 AI 系统和应用实时基础设施的关键组件。虽然今天的大多数 AI 模型都是离线训练并在数天、数周甚至数月内缓慢更新,但未来有着不同的前景。我相信在未来,大多数强大的 AI 模型将实时训练和更新,使 AI 系统能够像人类一样持续学习。在那时,Apache Flink 作为实时计算引擎,将在 AI 世界中发挥更加重要的作用,使 AI 模型、系统和应用充分发挥其潜力。谢谢。