Apache Flink:从实时数据分析到实时AI

引言

欢迎踏上这段深入了解 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 模型、系统和应用充分发挥其潜力。谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94633.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oelove奥壹新版v11.7旗舰版婚恋系统微信原生小程序源码上架容易遇到的几个坑,避免遗漏参数白屏显示等问题

oelove和 金媒我都用过一段时间,其中oelove 用的时间较多,也比较了解这个系统,这个系统比较不错的就是小程序是原生的(完全遵循微信开发者平台规则非Uniapp)开发的,原生小程序的特点就是兼容性好&#xff0…

行为模式-模板方法模式

定义:Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithms structure.(定义一个操作中的算法的框架&a…

Java集合遍历练习题

以下是10道难度递增的集合遍历练习题,涵盖List、Set、Map的各种遍历方式,包含解题思路、代码实现和输出结果: 练习题1:基础遍历 - ArrayList的for-each遍历 题目:创建一个存储5个字符串的ArrayList(元素为&…

深度学习·ZegclipClip-RC

Zegclip 获取图像的特殊编码:使用prompt tuning的技术,目的是减少过拟合和计算量。调整文本编码:使用RD关系描述符,将每一个文本对应的[cls] token和图像对应的[cls] token作哈密顿积,最后文本[cls]token形式化任务 文…

Taro 扩展 API 深度解析与实战指南

Taro 扩展 API 深度解析与实战指南 Taro 作为一款优秀的多端开发框架,提供了一系列强大的扩展 API,这些 API 极大地提升了开发效率和应用的可维护性。本文将深入解析 Taro 的扩展 API,并根据其功能特性进行分类讲解,帮助开发者更…

容器之王--Docker的部署及基本操作演练

1.2 部署docker 1.2.1 容器工作方法1.2.2 部署第一个容器 官方站点:https://docs.docker.com/ 1.2.2.1 配置软件仓库 ]# cd /etc/yum.repos.d ]# vim docker.repo [docker] name docker-ce baseurl https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/sta…

VFTO与局部放电-高压设备绝缘系统的双重挑战与防护策略

目录 引言VFTO的定义与形成机理VFTO对高压设备绝缘系统的影响局部放电的危害与机制VFTO与局部放电的关联性分析检测与监测技术防护与抑制措施未来技术发展趋势结论与展望引言 在现代电力系统中,超快速暂态过电压(Very Fast Transient Overvoltage, VFTO&…

Windows下Rust编码实现MP4点播服务器

Rust编码可以实现众多简洁、可靠、高效的应用,但语法逻辑要求严格,尤其是依赖库的选择调用,需要耐心坚持“推敲”。借助DeepSeek并反复编程调试和问答改进,可以最终得到完整有效的Rust编码。下面分享Windows下Rust编码实现MP4点播…

ubuntu-相关指令

1、串口1.1确认在系统中检查设备是否正常加载,在终端输入以下命令:way1:ll /dev | grep ttyUSB(ll是LL的小写) way2:ll /dev | grep ttyACM way3:ll /dev | grep ttyCH343USB&#…

docker容器临时文件去除,服务器容量空间

概述: 接到告警提醒,服务器容量不足,去查看了一下,发现确实100g左右容量已基本用完;分析: 1)查看根目录下哪些文件夹占用容量较大 使用命令“ du -ah --max-depth1 / ” 查看目标目录下所有文件…

损耗对信号质量的影响

损耗通常分为介质损耗与导体损耗:介质损耗:介质被施加电场后介质内部带电粒子在外加电场的作用力下进行微小移动介质损耗与频率成正比导体损耗:导体由于存在电阻,在有电流流过时产生的热量造成的损耗为导体损耗。同时,…

【42】【OpenCV C++】 计算图像某一列像素方差 或 某一行像素的方差;

文章目录1 要使用到的函数 和 原理1.1 cv::meanStdDev 函数详解——计算均值和标准差1 .2 方差的通俗解释2 代码实现3 问题3.1 入口参数const cv::Mat& img 和 const cv::Mat img区别项目要求:C OPenCV 中 图像img ,当 string ROIdirection “H”时,…

元图 CAD 插件化革命:突破效率瓶颈,重构智能协作新范式

在建筑、机械、机电等工程领域,传统CAD软件的功能固化与场景割裂已成为效率提升的瓶颈。设计师常面临“通用工具难适配专业需求”、“跨平台协作效率低下”、“数据孤岛阻碍创新”等痛点。元图CAD凭借“场景插件化“核心技术,以模块化能力突破行业桎梏&a…

T:归并排序

归并排序.逆序对简介.归并排序.习题.逆序对简介 \;\;\;\;\;\;\;\;简单介绍一下归并排序的原理&#xff0c;逆序对的基本概念&#xff0c;然后收集相关的练习。 直接用一个基础问题来引入。 因此知道了: \;\;\;\;\;\;\;\;逆序对就是一对数满足 i<j&&nums[i]>nu…

三极管三种基本放大电路:共射、共集、共基放大电路

文章目录一、共集放大电路1.静态分析2.动态分析二、共基放大电路1.静态分析2.动态分析总结如何判断共射、共集、共基放大电路&#xff1f; 电路的输入回路与输出回路以发射极为公共端的电路称为共射放大电路。 电路的输入回路与输出回路以集电极为公共端的电路称为共集放大电路…

Function AI 助力用户自主开发 MCP 服务,一键上云高效部署

作者&#xff1a;靖苏 在 AI 与云原生协同创新的浪潮下&#xff0c;多模型、多场景智能应用日益普及。开发者面临的首要挑战&#xff0c;是如何实现模型之间、服务之间的高效协同&#xff0c;以及如何便捷地将自主研发能力拓展到云端&#xff0c;形成灵活可扩展的智能服务。MC…

c++编译环境安装(gcc、cmake)

一、gcc下载 下载地址&#xff1a;https://ftp.gnu.org/gnu/gcc/ 选择想要下载的版本&#xff0c;然后解压&#xff0c;查看 contrib/download_prerequisites 中的依赖。 以我下载的 gcc-7.3.0 为例&#xff0c; 二、安装依赖包 【gmp】 https://ftp.gnu.org/gnu/gmp/ 【is…

基于贝叶斯的营销组合模型实战案例(PyMC实践)

文章出自&#xff1a;基于营销预算优化的媒体投入分配研究 本篇技术亮点在于结合了广告饱和度和累积效应&#xff0c;通过数学模型和数值优化方法&#xff0c;精确计算电视与数字媒体的最佳预算分配比例&#xff0c;实现增量销售最大化。该方法适合有多渠道广告投放需求、预算…

react_05create-react-app脚手架详细解析(export)

脚手架是什么&#xff1f; 是一种工具:快速生成项目的工程化结构&#xff0c;让项目从搭建到开发&#xff0c;到部署&#xff0c;整个流程变得快速和便捷。 安装过程: 1.安装node,安装完成后验证版本,出现对应版本就表示成功 node --version npm --version2.React脚手架默认是使…

Uncaught TypeError: Illegal invocation

报错信息Uncaught TypeError: Illegal invocation关键代码$.operate.post(prefix "/edit", { "taskId": taskId, "taskStatus": completed });<input id"taskId" style"display: none;">[[${completeTask.taskId}]]&…