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
英文地址,請注明出處:http://en.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}]]&…