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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

分享到

zhupb

相關(guān)推薦