CarbonData是什么

CarbonData是一種新型的Apache Hadoop本地文件格式,使用先進(jìn)的列式存儲(chǔ)、索引、壓縮和編碼技術(shù),以提高計(jì)算效率,有助于加速超過(guò)PB數(shù)量級(jí)的數(shù)據(jù)查詢,可用于更快的交互查詢。同時(shí),CarbonData也是一種將數(shù)據(jù)源與Spark集成的高性能分析引擎。

圖1 CarbonData基本架構(gòu)

CarbonData

使用CarbonData的目的是對(duì) 大數(shù)據(jù) 即席查詢提供超快速響應(yīng)。CarbonData是一個(gè)OLAP引擎,采用類似于RDBMS中的表來(lái)存儲(chǔ)數(shù)據(jù)。用戶可將大量(10TB以上)的數(shù)據(jù)導(dǎo)入以CarbonData格式創(chuàng)建的表中,CarbonData將以壓縮的多維索引列格式自動(dòng)組織和存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)被加載到CarbonData后,就可以執(zhí)行即席查詢,CarbonData將對(duì)數(shù)據(jù)查詢提供秒級(jí)響應(yīng)。

CarbonData將數(shù)據(jù)源集成到Spark生態(tài)系統(tǒng),用戶可使用Spark SQL執(zhí)行數(shù)據(jù)查詢和分析,也可以使用Spark提供的第三方工具ThriftServer連接到Spark SQL。

CarbonData特性

SQL功能:CarbonData與Spark SQL完全兼容,支持所有可以直接在Spark SQL上運(yùn)行的SQL查詢操作。

簡(jiǎn)單的Table 數(shù)據(jù)集 定義:CarbonData支持易于使用的DDL(數(shù)據(jù)定義語(yǔ)言)語(yǔ)句來(lái)定義和創(chuàng)建數(shù)據(jù)集。CarbonData DDL十分靈活、易于使用,并且足夠強(qiáng)大,可以定義復(fù)雜類型的Table。

便捷的 數(shù)據(jù)管理 :CarbonData為數(shù)據(jù)加載和維護(hù)提供多種數(shù)據(jù)管理功能,支持加載歷史數(shù)據(jù)以及增量加載新數(shù)據(jù)。CarbonData加載的數(shù)據(jù)可以基于加載時(shí)間進(jìn)行刪除,也可以撤銷特定的數(shù)據(jù)加載操作。

CarbonData文件格式是HDFS中的列式存儲(chǔ)格式。該格式具有許多新型列存儲(chǔ)文件的特性。例如,分割表,壓縮模式等。

CarbonData獨(dú)有的特點(diǎn)

伴隨索引的數(shù)據(jù)存儲(chǔ):由于在查詢中設(shè)置了過(guò)濾器,可以顯著加快查詢性能,減少I/O掃描次數(shù)和CPU資源占用。CarbonData索引由多個(gè)級(jí)別的索引組成,處理框架可以利用這個(gè)索引來(lái)減少需要安排和處理的任務(wù),也可以通過(guò)在任務(wù)掃描中以更精細(xì)的單元(稱為blocklet)進(jìn)行skip掃描來(lái)代替對(duì)整個(gè)文件的掃描。

可選擇的數(shù)據(jù)編碼:通過(guò)支持高效的數(shù)據(jù)壓縮和全局編碼方案,可基于壓縮/編碼數(shù)據(jù)進(jìn)行查詢,在將結(jié)果返回給用戶之前,才將編碼轉(zhuǎn)化為實(shí)際數(shù)據(jù),這被稱為“延遲物化”。

支持一種數(shù)據(jù)格式應(yīng)用于多種用例場(chǎng)景:例如交互式OLAP-style查詢,順序訪問(wèn)(big scan),隨機(jī)訪問(wèn)(narrow scan)。

CarbonData關(guān)鍵技術(shù)和優(yōu)勢(shì)

快速查詢響應(yīng):高性能查詢是CarbonData關(guān)鍵技術(shù)的優(yōu)勢(shì)之一。CarbonData查詢速度大約是Spark SQL查詢的10倍。CarbonData使用的專用數(shù)據(jù)格式圍繞高性能查詢進(jìn)行設(shè)計(jì),其中包括多種索引技術(shù)、全局字典編碼和多次的Push down優(yōu)化,從而對(duì)TB級(jí)數(shù)據(jù)查詢進(jìn)行最快響應(yīng)。

高效率數(shù)據(jù)壓縮:CarbonData使用輕量級(jí)壓縮和重量級(jí)壓縮的組合壓縮算法壓縮數(shù)據(jù),可以減少60%~80%數(shù)據(jù)存儲(chǔ)空間,大大節(jié)省硬件存儲(chǔ)成本。