九九热视频在线观看,樱花草在线社区www中文,亚洲国产激情五月色丁香小说,天堂中文最新版,中文字幕一区二区三区日韩精品


 

微頭條丨實時湖倉一體在騰訊的落地實踐
發(fā)布時間:2023-06-28 09:29:16 文章來源:dbaplus社群
一、湖倉一體技術(shù)誕生的背景和現(xiàn)狀1.湖倉的演進(jìn)1)數(shù)據(jù)倉庫(90s)需要
一、湖倉一體技術(shù)誕生的背景和現(xiàn)狀1.湖倉的演進(jìn)1)數(shù)據(jù)倉庫(90s)

需要進(jìn)行數(shù)據(jù)處理的公司在湖倉演進(jìn)的架構(gòu)選擇上都十分相似。起初,首選方式是數(shù)倉架構(gòu),比如teradata 、greenplum或Oracle等。通常數(shù)據(jù)處理的流程是把一些業(yè)務(wù)數(shù)據(jù)庫,如Transactional Database等,通過ETL的方式加載到Data Warehouse中,再在前端接入一些報表或者BI的工具去展示。

自Bill Inmon提出數(shù)倉概念以來,從90年代的美國到國內(nèi),數(shù)倉架構(gòu)一直是一個比較經(jīng)典的架構(gòu),它可以高效處理結(jié)構(gòu)化的數(shù)據(jù),而且性能好、速度快。尤其是teradata,它是存算一體的架構(gòu)。

但是隨著業(yè)務(wù)類型增多,我們需要擴(kuò)展更多的業(yè)務(wù)場景,如數(shù)據(jù)科學(xué)或機(jī)器科學(xué)領(lǐng)域等。數(shù)據(jù)類型和數(shù)量也隨之增多,結(jié)構(gòu)化數(shù)據(jù)在互聯(lián)網(wǎng)領(lǐng)域只占很小的一部分,還有很多半結(jié)構(gòu)化、非結(jié)構(gòu)化的埋點日志和音視頻數(shù)據(jù)等。


(資料圖)

我們的數(shù)倉已經(jīng)無法處理更多數(shù)據(jù),一些新技術(shù),尤其是開源等多個領(lǐng)域的大數(shù)據(jù)技術(shù)開始涌現(xiàn)。

2)數(shù)據(jù)湖——數(shù)倉兩層架構(gòu)(10s)

我們逐漸將架構(gòu)劃分為數(shù)倉和數(shù)據(jù)庫的雙層架構(gòu),把數(shù)據(jù)先加載到數(shù)據(jù)湖中,通常我們會選擇Hadoop數(shù)據(jù)庫作為自建數(shù)據(jù)湖。如果要做高效的查詢或者報表的輸出,我們會對數(shù)據(jù)再加工,放入高性能的數(shù)倉中,如ClickHouse或Doris等。

大概從2010年開始,隨著Hadoop的盛行,絕大多數(shù)互聯(lián)網(wǎng)公司都在用這樣的架構(gòu)。大家如果使用過Hadoop,相信也能感知到它可以支持各種不同的場景,基本上能夠滿足所有業(yè)務(wù)場景。

缺點:

在效率方面存在較大缺陷,比如數(shù)據(jù)要來回導(dǎo),以ETL或者反向ETL的方式導(dǎo)進(jìn)導(dǎo)出,會出現(xiàn)多份;一致性很難保證。3)倉、湖、流——孤島式架構(gòu)(15s)

這個架構(gòu)整體偏離線處理,隨著流式框架的引入,大公司整體的數(shù)據(jù)處理架構(gòu)在2015年后就變成了倉、湖、流三種架構(gòu)。

根據(jù)不同的場景選擇不同的架構(gòu),比如我要做一些Ad-hoc的場景,我們會選擇在倉里面進(jìn)行;如果要做一些定時的報表或業(yè)務(wù)報表,則用Spark;如果想要做一些流式數(shù)據(jù)的查詢和分析,則可以用Flink之類的工具。

這個架構(gòu)存在幾個問題:

一致性:數(shù)據(jù)分成了三路,彼此之間天然割裂,在這種割裂的情況下,一致性是一個大問題。如果大家在公司里做一些數(shù)據(jù)處理的架構(gòu)如Lambda架構(gòu)等,流和批數(shù)據(jù)的對齊是一個繞不開的問題,因為數(shù)據(jù)是多份的,本質(zhì)上仍是一致性問題。受限的進(jìn)階分析:如果我們在湖上做數(shù)據(jù)分析,我們?nèi)狈σ恍└唠A的分析能力,比如更新、快照、ACID等語義存在缺失。數(shù)據(jù)成本:每一個通路的底層存儲不同,計算也不一樣,因為計算需要對應(yīng)的存儲來決定計算的性能,所以我們需要拷貝多份數(shù)據(jù),成本也隨之上升。2.解決之道——湖倉一體

大概于20年左右提出了湖倉一體的架構(gòu),試圖用一個統(tǒng)一的湖上建倉或湖倉一體的存儲架構(gòu),解決數(shù)倉和數(shù)據(jù)庫的問題。

針對傳統(tǒng)意義的數(shù)據(jù)湖,若在對象存儲或者Hadoop上能夠構(gòu)建出具備數(shù)倉語義的一個格式,使得我們在湖上的格式有更強(qiáng)的能力去做數(shù)倉,則需要具備幾個條件:

湖上可靠的數(shù)據(jù)管理:即需要一種開放的高性能的數(shù)據(jù)組織方式。采用傳統(tǒng)方式定義表時,缺乏一種高效的表的組織方式。我們通常用 Hive表,它就是一個目錄,沒有特殊的能力。我們需要一種更高效的組織能力,兼顧一些倉的特性。支持機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué):湖倉一體的技術(shù)需要有一套開放的標(biāo)準(zhǔn)或者開放的接口。大家在用數(shù)倉的時候,會發(fā)現(xiàn)它是存算一體的數(shù)倉,存儲就是為了計算所定制。雖然性能很好,但不開放,也就是所有的生態(tài)都要建立在上面,但數(shù)據(jù)湖則是天然開放,F(xiàn)link和Spark等其他引擎都能使用這些數(shù)據(jù)。最先進(jìn)的SQL性能:若湖倉一體只是湖,那么很輕易就能辦到,但是它的性能會比較差。如果要使表具備倉的性能,比如能夠匹敵類似Snowflake或者Redshift這樣的性能,則需要一個高性能的SQL引擎,這也是Databricks做了Photon引擎的原因,有了這些,我們就可以真正在湖上構(gòu)建出一個高性能的數(shù)倉,也就是“湖倉一體”。3.三種主流開源技術(shù)

前文講述了湖倉一體技術(shù)所要具備的幾個特性,如今在開源領(lǐng)域主要有三種技術(shù)擁有這些特性,分別是:Hudi、Iceberg和Delta Lake。

它們的功能整體上比較接近,都是一種數(shù)據(jù)的組織方式,即定義了一種表的格式,這個格式主要是定義數(shù)據(jù)的組織方式,而不是確定一種數(shù)據(jù)的存儲格式。與一些純粹的數(shù)據(jù)格式或Hive表(Hive 3.0版本前)相比,它提供了ACID事務(wù)能力,這樣就具備了倉的能力,它可以提供一些事務(wù)的特性和并發(fā)能力,還可以做行級數(shù)據(jù)的修改、表結(jié)構(gòu)的修改和進(jìn)化,這些都是傳統(tǒng)大數(shù)據(jù)格式難以完成的事項。湖倉一體技術(shù)出現(xiàn)后被業(yè)界迅速采用,從21年開始就進(jìn)入了Gartner技術(shù)成熟度曲線的評估。

4.湖倉一體技術(shù)的優(yōu)勢優(yōu)化數(shù)據(jù)入湖流程:相比傳統(tǒng)的成熟形態(tài),比如T+1的入倉形態(tài)或者入湖的形態(tài),它可以用T+0的高效的流式入湖形態(tài),大大降低了數(shù)據(jù)的可見時延。支持更多的分析引擎:它是開放的,所以能夠支持很多引擎。我們內(nèi)部也對接了很多不同的引擎,包括Flink、Spark 、Presto和StarRocks等。統(tǒng)一數(shù)據(jù)存儲和靈活的文件組織:采用比較靈活的文件組織方式,具備了一些額外的特性,使得流和批都可以用這種文件組織方式進(jìn)行消費。增量讀取處理能力5.湖倉一體落地場景1)加速數(shù)據(jù)入湖

下圖左側(cè)是我們一個舊的數(shù)據(jù)管道。舉個例子,要收集一些Spark的審計日志以觀察每天的情況,那么我們就可以把Spark日志都導(dǎo)入到消息隊列中。在騰訊內(nèi)部使用的是TubeMQ,然后我們有一個服務(wù)TDSort用于歸檔,把數(shù)據(jù)按照小時或者天的時間格式分類,緊接著保存至HDFS上,再啟動一個Hive的命令,把它添加到分區(qū)內(nèi)。

前面是通過流式進(jìn)入,后面是批的落盤,整體設(shè)計比較復(fù)雜。為了保證exactly-once以及保證流轉(zhuǎn)批的可見性,我們在原子性上花了很多心思,因為在原先的架構(gòu)上我們?nèi)狈κ聞?wù)的能力,所以我們通常依賴HDFS的原子性來保證可見性。

之后我們把整體架構(gòu)遷到了以數(shù)據(jù)湖格式為體系的另一套架構(gòu)中,選擇用Flink來做流式的入湖,把它寫到HDFS上,這樣整體鏈路就變得更為簡單。對于Flink寫下的數(shù)據(jù),我們主要選擇的是Iceberg,在Flink讀取把它寫到Iceberg中,下游就能直接可見。

至此,原先T+1的可見性就變成T+0,這個是最典型、最常見的一種使用方式。這也是我們內(nèi)部像廣告和視頻號等業(yè)務(wù)的主要使用方式,把小時級的數(shù)據(jù)可見性降低到分鐘級的可見性。

2)構(gòu)建CDC Pipeline

CDC在騰訊內(nèi)部不算是非常大的場景,但原本通過拉鏈表方式去構(gòu)建,會帶來一些問題:一是延遲,二是后續(xù)的處理流程非常復(fù)雜。

我們現(xiàn)在改成了另一種方式,使用Flink的CDC Connector,再加上Hudi。因為針對CDC而言,Hudi在這方面的能力比Iceberg更成熟,所以選用Hudi而不是Iceberg。

有兩種方案,一種方案是直連MySQL或PostgreSQL等類似的數(shù)據(jù)庫,另一種是通過消息隊列的方式,通常都是使用第一種方式,這也是比較常見的一種內(nèi)部形態(tài),與前面相比Flink CDC connector與MySQL直連獲取binlog。

3)近實時的流批一體架構(gòu)

在業(yè)務(wù)側(cè)使用整套湖倉一體技術(shù)后,從原先的Lambda架構(gòu)轉(zhuǎn)換成了湖倉一體的架構(gòu)。在原先的架構(gòu)中,流和批分離,流主要是用消息隊列來做流式的Pipeline的構(gòu)建,還有一條離線鏈路做數(shù)據(jù)的回補(bǔ)和對賬等。但是離線存在于HDFS上,這樣就會導(dǎo)致兩條鏈路要做同一份數(shù)據(jù)的處理。

使用湖倉一體就相當(dāng)于把它們合并,我們在ODS、DWD或者DWS層統(tǒng)一用Iceberg來進(jìn)行流式寫入。在流式寫入后,可以在每一層中做離線或者批的分析,也可以一直做流式分析,因此同一份數(shù)據(jù)既做到了流式的讀和寫,又做到了批的讀和寫,一份數(shù)據(jù)就可以適配整個場景,不需要存多份數(shù)據(jù)或者接多條ETL Pipeline。這就是我們比較典型的一個架構(gòu),騰訊視頻也是在這個架構(gòu)基礎(chǔ)上做演進(jìn)。

4)更好的Hive表

回到湖倉一體的本質(zhì),即使我們不需要上述的特性,相比傳統(tǒng)的Hive表,它也帶來了很多新的特性和能力。用于取代離線的場景化,也會有更好的效果。

數(shù)據(jù)治理:

支持表結(jié)構(gòu)進(jìn)化:Hive的其中一個特性就是分區(qū),在建表的時候就需要指定分區(qū)字段,同時在查詢時也必須加上分區(qū)的過濾條件,否則它有可能去查所有的分區(qū),造成大量數(shù)據(jù)的誤讀取。分區(qū)一旦定下來就很難變動,但I(xiàn)ceberg是隱式的分區(qū),通過它的表達(dá)式來做分區(qū)的映射和轉(zhuǎn)換,就可以對分區(qū)做出調(diào)整,比如原先是按月來分區(qū),你可以把它更改成按天分區(qū)。支持行級數(shù)據(jù)的修正:原先Hive表的一個常見思路是用覆蓋寫的方式,要做數(shù)據(jù)修正時就要覆蓋一個分區(qū),但你可能只有一行數(shù)據(jù)需要調(diào)整。湖倉一體的格式提供了行級的修正能力。提供兩種修正,一種是Copy On Write的修正,還有一種是Merge On Read的修正,降低了修正的代價,大大提高了它的實時性。

數(shù)據(jù)查詢:

ACID能力:Hive依靠HDFS的原子性來保證它的可見性。比如你Insert到多個分區(qū)時,Insert涉及到跨多目錄復(fù)制,則無法原子性,這時你一邊 Insert一邊去查詢的時候就會讀到臟數(shù)據(jù),Iceberg、Hudi都是通過快照機(jī)制進(jìn)行查詢,快照只有被commit了以后才可見,所以這時并發(fā)地讀和寫數(shù)據(jù),不會出現(xiàn)任何問題。高效的data skipping能力:像這種新的表格式,它會增加一些額外的能力,比如z-ordering的data skipping的能力,使得你能更高效地做多維數(shù)據(jù)分析。即使沒有實時的需求,只想替換Hive表,那么用湖倉一體這些新的表格式也能給你帶來更好的效果。二、湖倉一體技術(shù)現(xiàn)存的問題1.湖倉一體內(nèi)核的性能

隨著湖倉一體實踐的逐漸深入,尤其是當(dāng)單鏈路的數(shù)據(jù)量達(dá)到分鐘級,每日達(dá)到萬億規(guī)模時,湖倉一體的性能問題就要格外重視。

1)數(shù)據(jù)治理問題海量小文件:我們主要用Iceberg,它每次commit時都會生成大量文件,你要求的commit時間越短,它的小文件就會越多,幾天過去,這張表的小文件數(shù)可能達(dá)到幾百萬,甚至上千萬,這個時候再去查詢,Query Plan就會跑不動,變得非常慢。Query Plan時延:Iceberg保存了多副本,每一次commit都會產(chǎn)生一個元數(shù)據(jù)的快照,快照里面包含了很多信息,元數(shù)據(jù)的數(shù)量將越來越大。如果未做一些元數(shù)據(jù)的清理或者合并,那么只是生成執(zhí)行計劃就需要大量耗時。我們內(nèi)部的廣告系統(tǒng)在使用,它是一個復(fù)雜類型,大概有幾千列的表結(jié)構(gòu)的查詢和嵌套類型的復(fù)雜字段。Iceberg未優(yōu)化的時候,Query Plan甚至要十幾分鐘。2)查詢性能問題平衡讀寫性能:寫和讀的對于性能的要求不同,如何能夠平衡寫和讀是非常重要的一個問題。發(fā)揮極速性能:Iceberg和Hudi很多高階的特性,比如索引之類,我們內(nèi)部也進(jìn)行了大量建設(shè)。3)流批一體

批處理希望能夠有更多的數(shù)據(jù)塊聚合在一起讀取,做到更多樣、更大的吞吐,流則需要更快的響應(yīng)。

2.湖倉一體技術(shù)的實時性限制

拋開內(nèi)核,無論是Iceberg還是Hudi,本質(zhì)上都是海量文件的組織方式,無法擺脫存儲的限制,我們通常會把它存到內(nèi)部的HDFS上,云上則會存到對象存儲中。但對象存儲也有它的限制,吞吐量較大,但延遲會較高。

如果需要流讀,我們通常在構(gòu)建實時鏈路的時候,會選擇消息隊列,它的存儲模型完全不同,是低延遲高響應(yīng),順序讀寫。它的存儲能力決定了計算,流式計算的訪問方式和離線計算的訪問方式不同。

這個時候就會出現(xiàn)兩個問題:

如何平衡流式的訪問和批的訪問?既能做到高性能和高效,又能做到低成本?傳統(tǒng)的Iceberg和Hudi,實現(xiàn)分鐘級已經(jīng)接近極限,如果繼續(xù)加速該如何優(yōu)化?三、騰訊在湖倉一體上的工作1.內(nèi)核優(yōu)化1)功能優(yōu)化大寬表支持:主要針對廣告,因為廣告需要不斷加入新的特征,隨著添加的特征越來越多,表就會變得越來越寬。同時,它原來使用PB的格式,所以它有很多嵌套,現(xiàn)在把它轉(zhuǎn)成Iceberg,就變成了一個極大的寬表,無論對于寫入還是查詢,都極具挑戰(zhàn)??缭床樵冎С郑阂驗閮?nèi)部有舊表、新表以及不同的系統(tǒng),所以需要實現(xiàn)跨源以及高性能的查詢。流轉(zhuǎn)批:我們絕大多數(shù)的鏈路仍是批,為使在流式寫入時下游能夠具有批的可見性,我們增加了Watermark機(jī)制來進(jìn)行流轉(zhuǎn)批。流式寫入支持去重、增量讀取、流量控制:我們不斷改進(jìn)流式寫入能力,尤其是對于在Iceberg上做CDC的寫入,部分列的更新等,做了很多改進(jìn)。2)性能優(yōu)化元數(shù)據(jù)讀取加速, 引入Alluxio:引入Alluxio,把元數(shù)據(jù)緩存在Alluxio上,加速它的訪問,對并行的元數(shù)據(jù)的Query Plan、壓縮格式等也做了一些調(diào)整,實現(xiàn)加速;復(fù)雜類型列剪支優(yōu)化, 基于列信息任務(wù)切分優(yōu)化;V2表layout改進(jìn)與合并加速;向量化,Async-IO,CBO等查詢加速。

總體來看,設(shè)計出這些特性后,測試數(shù)據(jù)顯示,我們內(nèi)部的TDW與Spark相比,性能大大提升。

2.二級索引

Snowflake或者Redshift之所以那么快,很重要的一點是因為它有索引,但我們傳統(tǒng)的Hive表幾乎沒有索引。Iceberg具備了構(gòu)建索引的能力,也具有ACID能力,而且它的表結(jié)構(gòu)也更復(fù)雜,所以我們能夠構(gòu)建索引。

具體成果:1)引入一個索引框架;2)構(gòu)建了不同類型的索引。

我們做的是全局索引,針對每個Data File生成對應(yīng)的Index File。Index file與datafile綁定,內(nèi)部有一套系統(tǒng)會異步更新或者生成Index。我們選擇Puffin作為存儲的格式,它是Iceberg定義的一種Index的存儲格式。我們也改造了一定的語法,使得它能夠支持索引的生成。

整體完成后,我們有一個點查的場景,bloom filter就比較適合點查的場景,速度與原來相比有一個數(shù)量級的提升。

3.流批一體的實時湖倉架構(gòu)

我們在使用湖倉一體技術(shù)的時候,流式的性能已無法實現(xiàn)突破,因為受制于底層的存儲,使用HDFS或者對賬存儲則缺乏更低的延時,所以我們也在參考社區(qū)的方案。

Flink社區(qū)提供了一個Flink Table Store的方案,把流存儲和批存儲融合為一體,現(xiàn)在改了名字,叫做Paimon,我們參考其做了類似的方案。在這個方案中,流和批選擇了不同的存儲,流選擇使用消息隊列,批則是底層使用數(shù)據(jù)湖的格式,封裝在一起就成為了流批表。有了流批表,則能夠?qū)ν馓峁┙y(tǒng)一的流和批的讀寫接口。

我們主要是對接Flink的場景,寫的時候我們會雙寫到LogStore和Filestore這兩個系統(tǒng)中,根據(jù)不同的場景讀不同的系統(tǒng)。如果是流式則讀LogStore,批則讀Filestore。

優(yōu)點:

引擎和表的流批一體,降低業(yè)務(wù)架構(gòu)復(fù)雜度:存儲在形態(tài)上可以看成近似的統(tǒng)一體,未來也希望能實現(xiàn)真正的統(tǒng)一。屏蔽流批差異,統(tǒng)一SQL操作:我們把Flink和流批對接后,就可以在Flink上提供流和批的處理能力,只需要使用同一套引擎。提升時效性,兼顧流式和湖倉:因為流寫到了消息隊列中,所以流的性能提高,速度加快,能實現(xiàn)秒級的時效性。4.自動數(shù)據(jù)治理

我們引入了自動數(shù)據(jù)治理的概念,它與傳統(tǒng)的數(shù)據(jù)治理方式的區(qū)別在于它基于事件驅(qū)動,而不是基于時間定時完成。其具備以下能力:

做文件的聚合,包括排序聚合和zordering聚合;可以做行級或者列級的生命周期的管理;自動的索引、緩存和排序等。

具體的運(yùn)作步驟:它會在Iceberg的存儲中收集一些事件,根據(jù)事件分析當(dāng)前要進(jìn)行的操作,然后根據(jù)規(guī)則來生成這些操作。

1)小文件合并

在做小文件合并時,如何生成這些規(guī)則?

傳統(tǒng)意義上的小文件合并,通常來會設(shè)定一個時間點,比如每隔一小時或者每隔一天做一次,但這樣會產(chǎn)生很多無效的作業(yè)。若你的寫入很快,那么可能會有大量的堆積,若你寫入很慢,那么就可能有很多無效的合并操作。

我們通過收集每一次commit后寫入的增量,求均方差,判斷當(dāng)前是否達(dá)到閾值。若未到閾值,我們會逐步更新它的均方差。如果達(dá)到閾值,就會觸發(fā)一個小文件的合并操作,根據(jù)事件來驅(qū)動。這樣的形式會比先前的方式更能節(jié)省資源,效率也更高。

2)自動重分布優(yōu)化

現(xiàn)在社區(qū)也有,但我們更早開始,它主要是能夠做到加速多維查詢,把相關(guān)的record歸類放在一起。我們會通過事件收集相關(guān)性極高常被查詢的列,自動給用戶推薦可以重排列的數(shù)據(jù),并詢問是否需要重排列。當(dāng)用戶決定重排列,數(shù)據(jù)就會進(jìn)行增量,做后續(xù)的重排列,這樣就能提高數(shù)據(jù)整體的有效過濾率。

3)自動索引

我們對Iceberg引入了一個索引框架,支持bloom filter 和 bitmap的構(gòu)建,但是用戶并不知道如何使用索引。所以我們提供了自動索引的構(gòu)建能力,會根據(jù)查詢的信息分析出哪些列的用戶查詢頻度較高,接下來我們會優(yōu)先在這些列上構(gòu)建索引。同時,我們選擇了根據(jù)分區(qū)的增量來加theta sketch的方式來做增量的索引,而不是每次都做全表索引的重構(gòu)。構(gòu)建索引后,Iceberg的常用性能會出現(xiàn)一個大的躍升。

四、后續(xù)規(guī)劃

我們希望湖倉建設(shè)從原先的準(zhǔn)實時湖倉向?qū)崟r湖倉的架構(gòu)邁進(jìn),也希望湖倉一體架構(gòu)在經(jīng)過元數(shù)據(jù)、緩存和索引的優(yōu)化后,能夠解決交互式查詢和流的所有場景問題,用一套存儲應(yīng)對所有的場景。這是我們現(xiàn)在在做的事情,也是未來的目標(biāo)。

Q&A

Q1:前面提及CDC的構(gòu)建,是按照整庫入倉還是按表的方式來進(jìn)行?

A1:我們騰訊這邊的量不算大,我們內(nèi)部主要還是以append方式入湖,CDC則仍是按表的方式來,沒有做太多的優(yōu)化,也沒有涉及整庫的方式。

Q2:您提到小文件合并,具體的優(yōu)化是指要另起一個旁路作業(yè),還是指將這部分的功能并入到寫入的流程里?

A2:我們采取離線和異步的方式,因為如果并入到寫入的流程,會對整體寫入造成拖垮或者堆積效應(yīng),所以根據(jù)我們內(nèi)部的實踐以及單鏈路1000多億的日均寫入的經(jīng)驗,同步寫入和合并的這種方案并不可行,所以我們做的是異步方案。

Q3:有些場景會選擇Hudi,另外一些場景選擇Iceberg,請問Iceberg和Hudi的選型依據(jù)是什么?

A3:我們八成以上的場景都選擇了Iceberg,因為我們投身及使用Iceberg社區(qū)的時間較早,所以對Iceberg的的整體把控會更好。只有涉及CDC的場景,我們才會用Hudi,因為Iceberg當(dāng)前的CDC能力不夠成熟,但我們也在探索和建設(shè)Iceberg的CDC能力,包括全局索引的能力、部分列的更新能力等,也是為了全鏈路CDC所做的優(yōu)化。如果未來Iceberg具備這樣的能力,我們應(yīng)該會統(tǒng)一使用Iceberg,因為維護(hù)多套系統(tǒng)會增加維護(hù)的成本。其實這兩個技術(shù)沒有太大差別,只需選擇一種即可,實際上社區(qū)的演進(jìn)最終都會趨同。

Q4:Iceberg上有Spark和Flink等多個引擎,假如我建了一個Iceberg表,可以用Spark和Flink兩種引擎同時訪問底層的表嗎?

A4:可以。因為它有所謂的事務(wù)的語義。這也取決于你的鎖如何實現(xiàn),默認(rèn)使用比如HiveLock等可以做隔離,所以能夠多引擎地去寫,但會有一定的沖突概率。但針對讀而言,因為Iceberg生成的每一個副本都是只讀的,所以多引擎去讀沒有任何問題。

Q5:數(shù)據(jù)湖在應(yīng)用側(cè)的使用場景有哪些?

A5:數(shù)據(jù)湖從20年初引入到現(xiàn)在,在騰訊內(nèi)部每年至少有10倍以上的規(guī)模增長,所以現(xiàn)在幾乎所有的業(yè)務(wù)線都在使用。最大的業(yè)務(wù)線一般是視頻號或者廣告之類,也有其他的業(yè)務(wù),基本上所有的業(yè)務(wù)都在用數(shù)據(jù)湖,無論是用于加速數(shù)據(jù)的可見性、構(gòu)建CDC還是用Iceberg替代Hive表的低效查詢,都會帶來一定的性能提升,這些場景前文有所提及。

作者介紹

邵賽賽,前騰訊實時湖倉團(tuán)隊負(fù)責(zé)人,現(xiàn)Co-Founder & CTO of Datastrato。Apache基金會成員,Apache Spark Inlong Livy PMC成員,曾就職于Hortonworks、Intel,10年的大數(shù)據(jù)從業(yè)經(jīng)驗,專注于分布式流批計算引擎的研發(fā)和優(yōu)化。

關(guān)鍵詞:

最近更新

熱門推薦HOT

  • 邂逅東風(fēng)天龍燃?xì)廛?高效可靠創(chuàng)富忙
    邂逅東風(fēng)天龍燃?xì)廛?高效可靠創(chuàng)

    近期,隨著天燃?xì)鈨r格持續(xù)下降以及經(jīng)濟(jì)回暖大趨勢,天然氣重卡以絕對性價比成為卡友們的心之所向。今年以來,天然氣重卡市場銷售火爆,東風(fēng)

  • 以技術(shù)和實力支持巴哈大賽 東風(fēng)商用車助力汽車產(chǎn)業(yè)蓬勃發(fā)展
    以技術(shù)和實力支持巴哈大賽 東風(fēng)

    近日,第七屆中國汽車工程學(xué)會巴哈大賽(簡稱巴哈大賽)在湖北襄陽落下帷幕。該項賽事是繼中國大學(xué)生方程式汽車大賽(FSC)成功舉辦之后,中國

  • “整車+后市場”一體化解決方案,東風(fēng)商用車以可靠推動“疆煤外運(yùn)”
    “整車+后市場”一體化解決方案

    近年來,受國際能源價格大幅上漲影響,發(fā)揮壓艙石作用的新疆煤炭抓住契機(jī),融入到全國統(tǒng)一大市場,有效緩解了國內(nèi)能源供應(yīng)偏緊形勢。隨之而

  • 一切源于可靠 東風(fēng)商用車潛心客戶價值,賦能行業(yè)向上
    一切源于可靠 東風(fēng)商用車潛心客

    近日,備受矚目的東風(fēng)天龍GX上市發(fā)布會暨東風(fēng)天龍中國卡車駕駛員大賽(第6季)暨東風(fēng)陽光杯(第2屆)全國商用車維修技能競賽總決賽在車城十堰隆

  • 數(shù)字場景再創(chuàng)佳績 東風(fēng)商用車以數(shù)字化轉(zhuǎn)型助力商用車行業(yè)高質(zhì)量發(fā)展
    數(shù)字場景再創(chuàng)佳績 東風(fēng)商用車以

    隨著科技進(jìn)步,新一輪產(chǎn)業(yè)變革蓬勃興起。數(shù)字化發(fā)展,是互聯(lián)網(wǎng)時代向大數(shù)據(jù)時代、后數(shù)據(jù)時代的必由之路,抓住數(shù)字經(jīng)濟(jì)的發(fā)展新機(jī)遇,是實現(xiàn)

  • 中國夢·郵政情 東風(fēng)商用車攜手國家郵政局致敬最美快遞員
    中國夢·郵政情 東風(fēng)商用車攜手

    5月19日,由國家郵政局、中華全國總工會指導(dǎo),中國郵政快遞報社主辦的第五屆中國夢·郵政情 尋找最美快遞員活動揭曉發(fā)布會在北京國際會議

  • 2023款輕卡家族燃情上市 慶鈴五十鈴助力克拉瑪依
    2023款輕卡家族燃情上市 慶鈴五

    明月出天山,蒼茫云海間。5月21日,耀世登場·擎鈴未來慶鈴五十鈴2023款ELF輕卡家族在克拉瑪依煥新上市。憑借智能、效能、全能的產(chǎn)品優(yōu)勢,

  • 百公里油耗27L,東風(fēng)天龍GX全場景接力實測圓滿收官
    百公里油耗27L,東風(fēng)天龍GX全場

    2023年5月15日,國產(chǎn)高端重卡東風(fēng)天龍GX全場景干線接力實測圓滿收官。歷時6天,途徑成都-恩施-潛山-上海-武漢-十堰,全場景驗證盆地、高原

  • 為了卡友“高興而來” 東風(fēng)天龍GX油耗飚低擔(dān)國產(chǎn)高端重任
    為了卡友“高興而來” 東風(fēng)天龍

    5月10日,東風(fēng)天龍GX成都-上海-十堰全場景干線實測拉開序幕,本次實測的重頭戲,不僅在于東風(fēng)天龍GX的全方位展示,更是圍繞著百公里油耗的

  • 數(shù)字轉(zhuǎn)型,勇摘桂冠!東風(fēng)商用車榮獲國資委首屆國企數(shù)字創(chuàng)新場景專業(yè)賽一等獎
    數(shù)字轉(zhuǎn)型,勇摘桂冠!東風(fēng)商用車

    近日,由國家互聯(lián)網(wǎng)信息辦公室、國家發(fā)展和改革委員會、工業(yè)和信息化部、國務(wù)院國有資產(chǎn)監(jiān)督管理委員會、福建省人民政府等共同主辦的第六屆

猜你喜歡LOVE