華為深耕Apache社區(qū),CarbonData成為首個(gè)中國(guó)公司貢獻(xiàn)的頂級(jí)項(xiàng)目
美國(guó)時(shí)間2017年4月19日,Apache軟件基金會(huì)宣布,華為貢獻(xiàn)給Apache社區(qū)的開源項(xiàng)目CarbonData從Apache孵化器畢業(yè),正式成為Apache***項(xiàng)目(TLP)。Apache® CarbonData™也成為***由中國(guó)公司貢獻(xiàn)給Apache基金會(huì),并成為***項(xiàng)目的開源項(xiàng)目。
隨著數(shù)字化時(shí)代的到來,企業(yè)生產(chǎn)和應(yīng)用的數(shù)據(jù)與日俱增,業(yè)務(wù)驅(qū)動(dòng)下的數(shù)據(jù)分析靈活性要求也越來越高。但是,企業(yè)不同場(chǎng)景下的數(shù)據(jù)分業(yè)務(wù)系統(tǒng)而構(gòu)建,不同的業(yè)務(wù)場(chǎng)景使用不同的數(shù)據(jù)存儲(chǔ)格式。這種數(shù)據(jù)存儲(chǔ)方式導(dǎo)致數(shù)據(jù)冗余嚴(yán)重,同時(shí)也阻礙了企業(yè)的數(shù)字化轉(zhuǎn)型。因此,企業(yè)在建設(shè)大數(shù)據(jù)平臺(tái)時(shí),希望能夠建設(shè)統(tǒng)一數(shù)據(jù)存儲(chǔ),用一份數(shù)據(jù)支持多種使用場(chǎng)景,從而減少數(shù)據(jù)孤島和冗余,通過數(shù)據(jù)共享產(chǎn)生更大價(jià)值。同時(shí),這種數(shù)據(jù)存儲(chǔ)還需要滿足高效、易集成、易開發(fā)、易擴(kuò)展以及開放性生態(tài)等需求。
華為FusionInsight大數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)針對(duì)用戶的訴求,從2013年開始調(diào)研分析業(yè)界大數(shù)據(jù)方案,發(fā)現(xiàn)每種技術(shù)都只能解決某種場(chǎng)景的訴求,不能同時(shí)滿足上述的所有訴求。于是,華為FusionInsight大數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)開發(fā)了CarbonData項(xiàng)目,針對(duì)當(dāng)前大數(shù)據(jù)領(lǐng)域分析場(chǎng)景需求各異而導(dǎo)致的存儲(chǔ)冗余問題,CarbonData提供了一種新的融合數(shù)據(jù)存儲(chǔ)方案,以一份數(shù)據(jù)同時(shí)支持“交互式分析、詳單查詢、任意維度組合的過濾查詢等”多種大數(shù)據(jù)應(yīng)用場(chǎng)景,并通過豐富的索引技術(shù)、字典編碼、列存等特性提升了IO掃描和計(jì)算性能,實(shí)現(xiàn)百億數(shù)據(jù)級(jí)秒級(jí)響應(yīng),與大數(shù)據(jù)生態(tài)Apache Hadoop、Apache Spark等無縫集成。
Apache CarbonData主要有下面一些特點(diǎn):
列式存儲(chǔ):高效的列式數(shù)據(jù)組織,可以實(shí)現(xiàn)列裁剪和過濾下壓,使OLAP查詢性能更高。同時(shí),CarbonData針對(duì)明細(xì)數(shù)據(jù)查詢實(shí)現(xiàn)了深度優(yōu)化,在需要返回所有列的場(chǎng)景下性能優(yōu)于其他列存方案。
豐富的索引支持:支持全局多維索引、文件索引、Min/Max、倒排索引等多種索引技術(shù),從表級(jí),文件級(jí),列級(jí)等多個(gè)層級(jí)逐級(jí)快速定位數(shù)據(jù),大幅提升性能。
全局字典編碼:除了常見的Delta、RLE、BitPacking等編碼外,CarbonData應(yīng)用了全局字典編碼來實(shí)現(xiàn)免解碼的計(jì)算,計(jì)算框架可以直接使用經(jīng)過編碼的數(shù)據(jù)來做聚合,排序等計(jì)算,這對(duì)需要做跨節(jié)點(diǎn)數(shù)據(jù)交換的業(yè)務(wù)來說性能提升非常明顯(3倍以上)。
自適應(yīng)類型轉(zhuǎn)換:CarbonData針對(duì)分析型應(yīng)用中大量使用的數(shù)值類型(Double/Decimal/Numeric/BigInt)實(shí)現(xiàn)存儲(chǔ)內(nèi)數(shù)據(jù)類型轉(zhuǎn)換,配合列式數(shù)據(jù)壓縮,使得壓縮非常高效,數(shù)據(jù)壓縮率基于應(yīng)用場(chǎng)景不同一般壓縮比在2到8之間。
標(biāo)準(zhǔn)SQL和API:在SparkSQL基礎(chǔ)上,支持標(biāo)準(zhǔn)SQL99/2003;支持?jǐn)?shù)據(jù)批量更新、刪除,適用于OLAP場(chǎng)景下數(shù)據(jù)的周期性刷新,例如拉鏈表更新、維表數(shù)據(jù)同步。提供JDBC/ODBC連接,支持與BI工具無縫對(duì)接;兼容Spark DataFrame/DataSet,支持復(fù)雜分析應(yīng)用。
數(shù)據(jù)生態(tài)集成:支持與Hadoop、Spark等大數(shù)據(jù)生態(tài)系統(tǒng)集成,支持和商業(yè)BI工具無縫對(duì)接。既滿足傳統(tǒng)數(shù)倉、數(shù)據(jù)集市、BI應(yīng)用要求,也提供大數(shù)據(jù)生態(tài)豐富多樣的API支持,覆蓋從GB級(jí)到EB級(jí)應(yīng)用。
基于華為“源于開源、強(qiáng)于開源、回饋開源”的戰(zhàn)略,華為FusionInsight大數(shù)據(jù)團(tuán)隊(duì)開發(fā)出CarbonData后,就積極向社區(qū)進(jìn)行回饋。2015年,華為向社區(qū)貢獻(xiàn)了CarbonData的代碼;2016年6月,CarbonData全票通過進(jìn)入Apache孵化器;2017年4月,經(jīng)過來自華為、Intel、Talend、eBay、Inmobi、Knoldus、Habib Bank、交通銀行、上汽、攜程、丁香園、阿里、美團(tuán)、樂視、滴滴等公司資深架構(gòu)師和開發(fā)人員的努力,CarbonData經(jīng)過不到一年的時(shí)間,畢業(yè)成為Apache***項(xiàng)目。這標(biāo)志著CarbonData項(xiàng)目完全依照Apache way開源方式運(yùn)作,并完成社區(qū)多樣化工作。而對(duì)華為公司FusionInsight大數(shù)據(jù)團(tuán)隊(duì)而言,這標(biāo)志著華為對(duì)Apache開源社區(qū),不僅能夠貢獻(xiàn)代碼和提案,也能夠貢獻(xiàn)***開源項(xiàng)目,華為對(duì)Apache社區(qū)的開源貢獻(xiàn),已經(jīng)跨入了一個(gè)新的高度。這也是華為“源于開源、強(qiáng)于開源、回饋開源”戰(zhàn)略的成功實(shí)踐。