“在核心的流處理領(lǐng)域內(nèi),整體總結(jié)就是精益求精?!蓖醴逄岬健J聦嵣?,從技術(shù)層面來看,當(dāng)前 Flink 已經(jīng)成為了全球流計算領(lǐng)域的標(biāo)桿,所以 2023 年 Flink 把版本更新的重點放到了深入場景、持續(xù)打磨上。比如持續(xù)完善 Flink 在批處理模式下的性能問題、功能完善性問題等,讓 Flink 成為一款對有限數(shù)據(jù)集和無限數(shù)據(jù)集都能統(tǒng)一處理的計算引擎。

具體來說,在用戶最關(guān)注且使用最多的開發(fā)語言—— Flink SQL 方面,F(xiàn)link 團(tuán)隊進(jìn)行了數(shù)百項調(diào)整或優(yōu)化。比如,今年社區(qū)推出了一項新的功能特性—— Plan Advice,它可以幫助用戶智能檢查流式 SQL。Plan Advice 會在用戶編寫完流式 SQL 后,自動檢查 SQL 可能存在的問題或風(fēng)險,并第一時間給出提示和可行的建議。目前這項功能受到了用戶的熱烈歡迎。

在 Streaming Runtime 也就是真正的 Streaming 核心架構(gòu)上,今年同樣做出了較大的升級?!癋link 最大的特點是面向狀態(tài)計算,自帶狀態(tài)存儲和狀態(tài)訪問能力,因此狀態(tài)管理、State 管理、Checkpoint、快照管理等都是 Flink 非常核心的部分,也是用戶有很強訴求的部分。雖然 Flink 定期會做全局一致性快照,但用戶希望快照頻率越快越好,且代價越小越好,可行的思路是讓系統(tǒng)在出現(xiàn)容錯的時候,盡量少的數(shù)據(jù)回放,比如做到秒級的 Checkpoint?!蓖醴灞硎尽=?jīng)過一年的努力,通用的增量 Checkpoint 能力在 Flink1.17 和 1.18 成功落地,并且達(dá)到了一個完全生產(chǎn)可用的狀態(tài)。

此外,在 Batch(批處理)引擎層面,F(xiàn)link 也做了很多性能優(yōu)化。王峰介紹稱:“Flink 作為一款流批一體的引擎,除了強大的流計算能力,我們希望它在批處理方面同樣優(yōu)秀,給用戶帶來一站式的數(shù)據(jù)計算、數(shù)據(jù)開發(fā)體驗。”

今年,F(xiàn)link 不僅基于核心的流引擎優(yōu)勢來優(yōu)化批處理場景下的執(zhí)行效率,同時也將傳統(tǒng)批處理上的優(yōu)化手段引入到了 Flink 中去。經(jīng)測試,F(xiàn)link 1.18 版本的 Batch 執(zhí)行模式在 TPC-DS 10T 數(shù)據(jù)集上的性能比 Flink 1.16 提高了 54%,基本達(dá)到了業(yè)界領(lǐng)先水平。

“這些優(yōu)化會持續(xù)下去,保障 Flink 不僅在流計算領(lǐng)域達(dá)到業(yè)界的最強水平,在批處理領(lǐng)域依然可以達(dá)到一流的引擎執(zhí)行能力。實際上今年我們已經(jīng)看到非常多的公司在分享基于 Flink 的流批一體實踐了?!蓖醴褰榻B道。

在部署架構(gòu)方面,F(xiàn)link 社區(qū)開發(fā)者也做了大量工作,以推動 Flink 在云上更好地運行。毋庸置疑的是,云原生不僅是大數(shù)據(jù)的新趨勢,也為包括 AI 的普惠提供了基礎(chǔ)。為了滿足越來越多的項目和軟件能夠更好地在云上運行并提升用戶體驗,社區(qū)開發(fā)者做了大量工作。比如支持用戶通過 API 在線、實時地進(jìn)行擴(kuò)縮容且不必重啟整個 Flink 實例。同時為了實現(xiàn)云上全程無人值守的彈性擴(kuò)縮容, Flink 社區(qū)還推出了基于 Kubernetes 的 Autoscaling 技術(shù),通過 Autoscaling 去動態(tài)地、實時地監(jiān)控整個任務(wù)的負(fù)載和延遲性,來保障用戶的彈性擴(kuò)縮容體驗。

在場景方面,王峰表示,為了讓更多的數(shù)據(jù)流動起來,F(xiàn)link 社區(qū)也做了非常多的嘗試,比如讓 Flink 跟 Lakehouse 的架構(gòu)協(xié)同,希望利用 Flink 強大的實時計算能力,加速 Lakehouse 的數(shù)據(jù)流動與分析。值得一提的是,今年 Flink 的兩個版本加入了許多新的 API 來實現(xiàn)對 Lakehouse 的支持;同時也增加了對 JDBC driver 的支持,用戶利用傳統(tǒng)的 BI 工具就能實現(xiàn)與 Flink 的無縫對接。

“其實 Flink 的演進(jìn)一直遵循著一個規(guī)律,即大數(shù)據(jù)行業(yè)的發(fā)展趨勢。當(dāng)前,大數(shù)據(jù)的場景正在從離線向?qū)崟r加速升級轉(zhuǎn)換。在這個大的浪潮下,F(xiàn)link 的每一項工作都在不停地被驗證?!蓖醴蹇偨Y(jié)道。

發(fā)布會現(xiàn)場,曹操出行基礎(chǔ)研發(fā)部負(fù)責(zé)人史何富分享了他們基于 Flink 的實時數(shù)倉實踐。根據(jù)介紹,目前曹操出行公司運營中有三類主要的實時數(shù)據(jù)需求。首先,管理層需要實時的數(shù)據(jù)來隨時了解公司的運營狀況;其次,運營團(tuán)隊也需要一個聚焦的工具來可視化掌握運營細(xì)節(jié);最后,算法對實時數(shù)據(jù)的要求越來越高,越實時的數(shù)據(jù)對于算法的效果越好。

“在過去的一年多里,通過基于 Flink 的流式數(shù)倉 ,曹操出行能夠生成多樣化的指標(biāo)和實時特征,并輸送給算法引擎,最終使得乘客補貼效率提高了 60%,司機效率提高了 20%。更令人振奮的是我們的毛利增長了 10 倍?!?曹操出行基礎(chǔ)研發(fā)部負(fù)責(zé)人史何富表示。

對于 Flink 的后續(xù)規(guī)劃,阿里云智能 Flink 分布式執(zhí)行負(fù)責(zé)人、Apache Flink PMC 成員、Flink 2.0 Release Manager 宋辛童表示:“我們剛剛在 10 月份推出的 1.18 版本,在明年的 2 月份和 6 月份,我們會分別推出 1.19 跟 1.20 版本,以滿足 API 遷移周期的需求。另外,我們將在明年的 10 月份推出全新的 Flink2.0 版本,將圍繞流處理的極致優(yōu)化與技術(shù)演進(jìn)、流批一體架構(gòu)演進(jìn)、用戶體驗提升三個核心方向,大力推動存算分離狀態(tài)管理、Batch 動態(tài)執(zhí)行優(yōu)化、流批統(tǒng)一 SQL 語法、流批融合計算模式、API 與配置系統(tǒng)升級等工作,期待更多的社區(qū)小伙伴們能夠加入共建!”

Apache Paimon:引領(lǐng)流式湖倉新變革

除了持續(xù)加速 Flink 的演進(jìn)外,F(xiàn)link 社區(qū)過去一年還孵化出了一個全新的項目,并且成功捐贈給了 Apache 社區(qū),它便是 Apache Paimon。

Apache Paimon  前身為 Flink Table Store,是一項流式數(shù)據(jù)湖存儲技術(shù),可以為用戶提供高吞吐、低延遲的數(shù)據(jù)攝入、流式訂閱以及實時查詢能力。

事實上,隨著 Lakehouse 成為了數(shù)據(jù)分析領(lǐng)域新的架構(gòu)趨勢,越來越多的用戶將傳統(tǒng)的基于 Hive、Hadoop 的數(shù)倉體系,轉(zhuǎn)移到 Lakehouse 架構(gòu)上。Lakehouse 架構(gòu)主要有五大優(yōu)勢:計算存儲分離、存儲冷熱分層、操作更靈活、查詢可更換以及分鐘級時效性。

“時效性是業(yè)務(wù)遷移的核心動力,而 Flink 是把時效性降低下來的核心計算引擎,有沒有可能把 Flink 融入到 Lakehouse 中去,解鎖一個全新的 Streaming House 的架構(gòu)呢?這就是 Paimon 的設(shè)計初衷。”阿里云智能開源表存儲負(fù)責(zé)人、Founder of Paimon、Flink PMC 成員李勁松表示。

當(dāng)然,為了實現(xiàn)這一構(gòu)想,F(xiàn)link 團(tuán)隊同樣經(jīng)歷了不小的挑戰(zhàn)。其中最大的挑戰(zhàn)源于“湖格式”,流技術(shù)以及流當(dāng)中產(chǎn)生的大量更新,對湖存儲格式帶來了非常巨大的挑戰(zhàn)。

“首先 Iceberg 是一個架構(gòu)簡單、生態(tài)開放的優(yōu)秀湖存儲格式,早在 2020 年,我們就在試圖把 Flink 融入 Iceberg 當(dāng)中,讓  Iceberg  具備了流讀、流寫的能力。但是逐漸我們發(fā)現(xiàn), Iceberg 整體還是面向離線設(shè)計的,它必須保持簡潔的架構(gòu)設(shè)計來面向各類計算引擎,而這給我們對它做內(nèi)核改進(jìn)帶來了極大的阻礙。”李勁松解釋道。

在 Flink+ Iceberg 的探索碰壁之后,F(xiàn)link 團(tuán)隊開始思考 Flink+Hudi 的集成。Flink 接入之后,把 Hudi 的時延從 Spark 更新的小時級降低到了十分鐘級。但是再往下,又遇到了新的阻礙,因為 Hudi 本身是面向 Spark,面向批計算設(shè)計的,它的架構(gòu)不符合流計算以及更新的需求。

“在總結(jié)了 Flink+Iceberg 與 Flink+Hudi 這兩套架構(gòu)的經(jīng)驗之后,我們重新設(shè)計了一套全新的流式數(shù)據(jù)湖架構(gòu),也就是 Flink+Paimon?!崩顒潘杀硎?。

Flink+Paimon 具有湖存儲 +LSM 原生的設(shè)計,專為流更新而構(gòu)建。Paimon 與 Flink、 Spark 都有良好的兼容性,并支持強大的流讀流寫功能,從而能夠真正將延遲降低至 1-5 分鐘。

“Apache Paimon 是一個流批一體的湖存儲格式,它只是一個格式,把數(shù)據(jù)存儲在的 OSS 或者 HDFS 上。然后基于這樣的湖格式,通過我們推出的 Flink CDC 就能實現(xiàn)一鍵入湖,也能通過 Flink、Spark 來流寫、批寫到 Paimon 中去,后面 Paimon 也將支持各種主流開源引擎的讀以及 Flink、Spark 的流讀?!崩顒潘裳a充道。

“隨著 Paimon 的版本迭代,你可以看到非常巨大的進(jìn)步,目前 Paimon 社區(qū)已經(jīng)有了 120 個來自各行各業(yè)的 Contributors,Star 數(shù)也達(dá)到了 1500+,越來越多的企業(yè)開始應(yīng)用 Paimon 并且分享 Paimon 相關(guān)的實踐?!?/p>

發(fā)布會上,同程旅行分享了他們基于 Paimon 的數(shù)據(jù)湖實踐。據(jù)介紹,目前同程旅行已將 80% 的 Hudi 湖倉切換至 Paimon,涵蓋了 500 多個任務(wù)和十多個基于 Paimon 的實時鏈路場景,處理大約 100TB 的數(shù)據(jù)量,整體數(shù)據(jù)條數(shù)達(dá)到約 1000 億。

同程旅行大數(shù)據(jù)專家、Apache Hudi & Paimon Contributor 吳祥平表示,同程旅行基于 Paimon 做了架構(gòu)升級之后,ODS 層同步效率提高了約 30%,寫入速度提升約 3 倍,部分查詢速度甚至提升了 7 倍;利用 Tag 的能力,在導(dǎo)出場景節(jié)省了約 40% 的存儲空間;通過中間數(shù)據(jù)的可復(fù)用性,指標(biāo)開發(fā)人員的工作效率提高了 約 50%。

此外,在汽車服務(wù)領(lǐng)域,汽車之家同樣成功將 Paimon 應(yīng)用于運營分析和報表等場景,不僅帶來了極大的便利,同時也幫助業(yè)務(wù)取得了顯著的收益。

汽車之家大數(shù)據(jù)計算平臺負(fù)責(zé)人邸星星表示,通過與 Flink CDC 深度合作,汽車之家實現(xiàn)了流式讀取,將數(shù)據(jù)寫入 Paimon,并使用 Flink 再次消費 Paimon 的增量數(shù)據(jù),從而將整個 Pipeline 打造成一個實時智能化的系統(tǒng)。

同樣,得益于對 Flink+Paimon 的結(jié)合使用,在保證數(shù)據(jù)一致性的基礎(chǔ)上,實現(xiàn)了架構(gòu)簡化,主機資源相較于之前減少了約 50%,同時在數(shù)據(jù)訂正、實時批量分析以及中間結(jié)果實時查詢等方面都獲得了很好的支持。

從以上案例中,不難看出 Paimon 在實現(xiàn)流批一體方面發(fā)揮了重要作用。它成功地將流計算和批計算這兩種不同的計算模式融合到了一起,與 Flink 的流批一體計算和存儲能力相結(jié)合,打造出一個真正融合流和批的架構(gòu)。Paimon 最常見的應(yīng)用場景是數(shù)據(jù)實時入湖,而在這個過程中,F(xiàn)link CDC 與 Paimon 的結(jié)合能夠?qū)崿F(xiàn)極簡的入湖鏈路,使入湖操作達(dá)到全量與增量一體化的狀態(tài)。這種組合為構(gòu)建實時數(shù)據(jù)倉庫、實時分析系統(tǒng)等提供了強有力的支持。

Flink CDC 3.0 實時數(shù)據(jù)集成框架發(fā)布,并宣布捐贈 Apache 基金會

Flink CDC 是一款基于 Flink 打造的一系列數(shù)據(jù)庫的連接器,主要用于幫助 Flink 去讀取隱藏在業(yè)務(wù)數(shù)據(jù)庫里的增量變更日志。目前 Flink CDC 支持十多種主流的數(shù)據(jù)源,同時又能跟 Flink SQL 無縫鏈接,讓用戶通過 SQL 就能構(gòu)建豐富的應(yīng)用形態(tài)。

據(jù)悉,通過捕獲數(shù)據(jù)變更,F(xiàn)link CDC 能夠?qū)崟r地將數(shù)據(jù)變更傳輸?shù)侥繕?biāo)系統(tǒng),從而實現(xiàn)近實時的數(shù)據(jù)處理。這種處理方式大大縮短了數(shù)據(jù)處理的時延,能夠?qū)?shù)據(jù)處理的時效性從天級別降低到分鐘級別,從而顯著提升業(yè)務(wù)價值。

在發(fā)布會上,阿里云智能 Flink SQL、Flink CDC 負(fù)責(zé)人伍翀表示,F(xiàn)link CDC 在 2023 年發(fā)展非常迅速。在生態(tài)方面,新增了對 IBM DB2 和 Vitess 這兩個新 Connector 的支持,并且將增量快照讀取的能力擴(kuò)充到了更多的數(shù)據(jù)源;在引擎能力方面,提供了非常多的高級特性,比如動態(tài)加表、自動縮容、異步分片、指定位點等,還支持了 At-Least-Once 讀取模式,并且還具備了橫跨 Flink 1.14 到 1.18 五大版本的兼容能力。

Flink CDC 從誕生至今,已經(jīng)有三年多的時間。一開始它的定位是做一系列數(shù)據(jù)庫、數(shù)據(jù)源的連接器,但是隨著 Flink CDC 在業(yè)界的廣泛應(yīng)用,F(xiàn)link 團(tuán)隊逐漸發(fā)現(xiàn)最初的產(chǎn)品定位無法去 cover 更多的業(yè)務(wù)場景。

“如果它只是一個數(shù)據(jù)庫的連接器,用戶如果要搭建一個數(shù)據(jù)集成的解決方案,還是需要去做很多的拼裝工作,或者遇到一些條件限制。所以我們希望 Flink CDC 它不僅僅是去做數(shù)據(jù)庫的連接器,還能夠去連接更多的數(shù)據(jù)源,包括消息隊列數(shù)據(jù)庫、數(shù)據(jù)湖、文件格式、SaaS 服務(wù)等等。更進(jìn)一步,我們希望把它打造成一個能夠打通數(shù)據(jù)源、數(shù)據(jù)管道、結(jié)果目標(biāo)的端到端的實時數(shù)據(jù)集成解決方案和工具。而這也就是我們今天要正式發(fā)布的 Flink CDC 3.0 實時數(shù)據(jù)集成框架。”伍翀表示。

據(jù)悉,F(xiàn)link CDC 3.0 實時數(shù)據(jù)集成框架是基于 Apache Flink 的內(nèi)核之上去構(gòu)建的。在引擎層,F(xiàn)link CDC 3.0 開放了很多高級特性,包括實時同步、整庫同步、分庫分表合并等等;在連接層,F(xiàn)link CDC 3.0 已經(jīng)支持了 MySQL、StarRocks、Doris 的同步鏈路,Paimon、kafaka、MongoDB 等同步鏈路也已經(jīng)在計劃中;在接入層 Flink CDC 3.0 提供了一套 YAML + CLI 的 API 方式,以此來簡化用戶開發(fā)實時數(shù)據(jù)集成的成本。

“Flink CDC 3.0 實時數(shù)據(jù)集成框架的發(fā)布,是 Flink CDC 在技術(shù)上的一次里程碑突破,而在這背后,離不開社區(qū)的力量、開源的力量,所以我們希望能夠利用技術(shù)去回饋開源。”伍翀表示。

隨后,在發(fā)布會現(xiàn)場,阿里巴巴正式宣布將捐贈 Flink CDC 到 Apache Flink 和 Apache 軟件基金會。

從引進(jìn)來到走出去,全球化視野下的開源生態(tài)

不止于技術(shù)層面的持續(xù)創(chuàng)新與碩果累累,近年來 Apache Flink 在國際化生態(tài)社區(qū)構(gòu)建方面同樣令人矚目。

在中國,F(xiàn)link 中文社區(qū)成為了最活躍的技術(shù)社區(qū)之一。在 Flink 中文社區(qū)五周年之際,社區(qū)開發(fā)者們共同見證了 750 篇技術(shù)文章的累計發(fā)布,吸引了 111 個公司和 351 位開發(fā)者的積極參與,這些文章累計獲得了高達(dá) 235 萬的閱讀量,凸顯了 Flink 全球化社區(qū)技術(shù)布道的中國力量。

放眼世界,目前 Flink 已經(jīng)成為 Apache 基金會最活躍的頂級項目之一,F(xiàn)link 的社區(qū)成員覆蓋到歐洲、北美、東南亞各地,涵蓋了學(xué)術(shù)界、工業(yè)界、開源社區(qū)等各個領(lǐng)域。作為其中的主導(dǎo)者,阿里巴巴國際化社區(qū)的管理也得到日益增強。根據(jù)統(tǒng)計,阿里巴巴培養(yǎng)了 70% 以上的 Flink 項目管理委員會(PMC)成員和提交者(Committor)。

值得一提的是,今年 6 月,F(xiàn)link 憑借其在實時大數(shù)據(jù)領(lǐng)域的技術(shù)創(chuàng)新和全球影響力,被數(shù)據(jù)庫國際頂級會議 SIGMOD 授予 SIGMOD System Award 2023 大獎。過往獲得該獎項的均為全球數(shù)據(jù)庫領(lǐng)域的明星項目,如 Apache Spark、Postgres 和 BerkeleyDB 等。

從國外引入到中國,再到華人貢獻(xiàn)推動 Flink 開源技術(shù)全球化,華人開發(fā)者在這個過程中正在扮演著越來越重要的角色。他們不僅在開源項目的開發(fā)中發(fā)揮了重要作用,還積極參與到各種開源社區(qū)的活動中,共同推動技術(shù)的發(fā)展和創(chuàng)新。而這些華人開發(fā)者的貢獻(xiàn)則對 Apache Flink 生態(tài)系統(tǒng)的成長和發(fā)展起到了關(guān)鍵作用。

Apache Flink 全球化視野的開源生態(tài)已經(jīng)成為其持續(xù)繁榮的重要力量。在這個生態(tài)中,各種技術(shù)、文化和思想得到了充分的交流和融合,為其創(chuàng)新帶來了巨大的推動力。我們也有理由相信,未來在這片具備全球視野的開源沃土之上,將會有越來越多的開發(fā)者加入,共同為實時計算的未來貢獻(xiàn)自己的力量。(付秋偉)

分享到

zhupb

相關(guān)推薦