国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

大數(shù)據(jù)預(yù)聚合OLAP技術(shù)及應(yīng)用場(chǎng)景探究

2017-10-23 13:00連城
無線互聯(lián)科技 2017年19期
關(guān)鍵詞:應(yīng)用場(chǎng)景大數(shù)據(jù)

連城

摘 要:隨著業(yè)務(wù)的不斷發(fā)展,人們已不滿足于大數(shù)據(jù)技術(shù)提供的海量存儲(chǔ)與離線分析能力,希望能支持聯(lián)機(jī)分析處理(OLAP)場(chǎng)景。然而在海量數(shù)據(jù)條件下,對(duì)OLAP緯度、指標(biāo)數(shù)量、查詢的并發(fā)度及響應(yīng)時(shí)間都有較高的要求。傳統(tǒng)的RMDBS或SQL on Hadoop能力有限,不能有效支撐。以Druid和Kylin為代表的預(yù)聚合技術(shù)的出現(xiàn),在較大程度上滿足了大數(shù)據(jù)OLAP場(chǎng)景的需求。文章在簡(jiǎn)述OLAP技術(shù)發(fā)展的基礎(chǔ)上,分析這類預(yù)聚合技術(shù)的系統(tǒng)特點(diǎn)及應(yīng)用場(chǎng)景。

關(guān)鍵詞:大數(shù)據(jù);OLAP;預(yù)聚合;應(yīng)用場(chǎng)景

近年來,開源大數(shù)據(jù)技術(shù)逐漸占領(lǐng)了數(shù)據(jù)分析的市場(chǎng)。Hadoop生態(tài)圈的分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)和HBase作為主流的海量數(shù)據(jù)存儲(chǔ)、Hive作為主流SQL數(shù)據(jù)分析引擎,逐步蠶食傳統(tǒng)分析型關(guān)系數(shù)據(jù)庫的市場(chǎng)。為解決MapReduce低效問題,出現(xiàn)了以內(nèi)存為中心的計(jì)算引擎配合Hadoop的方式,諸如SparkSQL,Impala,Presto等SQL on Hadoop。它們的出現(xiàn)使得數(shù)據(jù)分析擺脫了對(duì)傳統(tǒng)關(guān)系型數(shù)據(jù)庫的依賴,一次分析數(shù)據(jù)量也增加到TB或PB級(jí),支持任意緯度和指標(biāo)。但是響應(yīng)時(shí)間上就從秒到分鐘不等,量大會(huì)到小時(shí)。為了滿足大數(shù)據(jù)聯(lián)機(jī)分析處理(On-Line Analytical Processing,OLAP)場(chǎng)景的需求,出現(xiàn)了以Druid和Kylin為代表的預(yù)聚合技術(shù)。通過對(duì)其系統(tǒng)特點(diǎn)的分析,借鑒解決大量聚合后結(jié)果存放,查詢的并發(fā)度高、響應(yīng)時(shí)間短,預(yù)聚合時(shí)效性高等一系列大數(shù)據(jù)OLAP問題的思路。通過對(duì)其應(yīng)用場(chǎng)景的探討,可為將來引入該類技術(shù)提供參考。

1 OLAP技術(shù)發(fā)展簡(jiǎn)史

OLAP是共享多維信息的、針對(duì)特定問題的聯(lián)機(jī)數(shù)據(jù)訪問和分析的快速軟件技術(shù)。按照其實(shí)現(xiàn)方式不同,可以分為ROLAP(Relational)、MOLAP(Multidimensional)和HOLAP(Hybrid)3種類型。其中,ROLAP采用關(guān)系表存儲(chǔ)維信息和事實(shí)數(shù)據(jù);MOLAP則采用多維數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)維信息和事實(shí)數(shù)據(jù);而HOLAP稱其為混合OLAP,該方法結(jié)合了ROLAP和MOLAP技術(shù)。無論是何種OLAP,都需要存儲(chǔ)和計(jì)算平臺(tái)的支持[1]。

1.1 傳統(tǒng)RMDBS技術(shù)

諸如Oracle,DB2,MySQL,Postgresql等傳統(tǒng)RMDBS(關(guān)系型數(shù)據(jù)庫系統(tǒng))技術(shù),都是使用關(guān)系表存儲(chǔ)維信息和事實(shí)數(shù)據(jù),屬于ROLAP類型。傳統(tǒng)關(guān)系型數(shù)據(jù)庫一般同時(shí)具備存儲(chǔ)和計(jì)算能力,相對(duì)于大數(shù)據(jù)計(jì)算與存儲(chǔ)分離,是一種緊湊的架構(gòu)。數(shù)據(jù)量級(jí)方面一般小于百(千)萬行級(jí);緯度和指標(biāo)數(shù)量一般小于10個(gè);查詢響應(yīng)時(shí)間一般是毫秒到秒,量大會(huì)到分鐘。當(dāng)然上述條件會(huì)因?yàn)閿?shù)據(jù)庫配置及自身特性有所不同,比如DB2這種分布式能力較強(qiáng)的分析類關(guān)系數(shù)據(jù)庫,其OLAP分析條件會(huì)更好。

1.2 并行計(jì)算SQL on Hadoop技術(shù)

大數(shù)據(jù)處理方式簡(jiǎn)單來說就是:計(jì)算+存儲(chǔ)。諸如Hive,SparkSQL,Impala,Presto等都是基于Hadoop存儲(chǔ)(準(zhǔn)確來說應(yīng)是HDFS)之上的計(jì)算引擎。從基于磁盤的MapReduce到基于內(nèi)存的Spark,以及類似MPP架構(gòu)的Impala和Presto。每次新型計(jì)算引擎的出現(xiàn),在保證高擴(kuò)展性、并行計(jì)算能力為前提,不斷縮短查詢響應(yīng)時(shí)間、提高并發(fā)度。數(shù)據(jù)量級(jí)方面一般介于百(千)萬行級(jí)和億行級(jí)之間;緯度和指標(biāo)數(shù)量一般無限制;查詢響應(yīng)時(shí)間一般是秒到分鐘,量大會(huì)到小時(shí)。當(dāng)然上述條件會(huì)因?yàn)镠adoop集群規(guī)模配置及引擎特性有所不同。SQL on Hadoop本質(zhì)上還是使用關(guān)系表存儲(chǔ)維信息和事實(shí)數(shù)據(jù),屬于ROLAP類型。

1.3 預(yù)聚合OLAP on Hadoop技術(shù)

SQL on Hadoop以ROLAP的方式支持聯(lián)機(jī)分析處理,在縮短查詢響應(yīng)時(shí)間、提高并發(fā)度方面已近極限。為了在大數(shù)據(jù)環(huán)境下,支持更快查詢響應(yīng)和并發(fā)度,方法就是基于多維數(shù)據(jù)構(gòu)建Cube模型,通過大量的預(yù)聚集計(jì)算,實(shí)現(xiàn)生成支持多維分析的Cube,并在此基礎(chǔ)上支持以下鉆、上卷、切片、切塊、旋轉(zhuǎn)等操作的MOLAP。其優(yōu)點(diǎn)就是通過數(shù)據(jù)的深加工(預(yù)聚集計(jì)算、索引、壓縮、緩存等),換取高的OLAP性能;缺點(diǎn)是數(shù)據(jù)預(yù)處理環(huán)節(jié)多,處理周期長(zhǎng),數(shù)據(jù)維度不宜過高,數(shù)據(jù)冗余多[2]。以Druid和Kylin為代表的預(yù)聚合技術(shù),均屬于MOLAP類型,也被稱作OLAP on Hadoop。數(shù)據(jù)量級(jí)方面一般介于億行級(jí)和百(千)億行級(jí)之間;緯度數(shù)量建議小等于15個(gè);指標(biāo)數(shù)量一般無限制;查詢響應(yīng)時(shí)間一般是毫秒到秒。

2 系統(tǒng)特點(diǎn)分析

目前開源MOLAP多維數(shù)據(jù)分析工具,包括Kylin,Druid,Pinot等。其中Kylin和Druid是使用比較廣泛的OLAP on Hadoop。

2.1 實(shí)時(shí)多維分析OLAP引擎—Kylin

Kylin全稱叫作Apache Kylin,是Apache開源軟件基金會(huì)里的頂級(jí)項(xiàng)目,用了Hadoop生態(tài)圈里面多個(gè)組件。通過Hive批量、Kafka實(shí)時(shí)導(dǎo)入數(shù)據(jù),預(yù)計(jì)算支持MapReduce,Spark,Streaming方式。當(dāng)整個(gè)計(jì)算結(jié)束之后,所有的分析應(yīng)用、查詢應(yīng)用、挖掘應(yīng)用會(huì)像數(shù)據(jù)庫一樣,通過標(biāo)準(zhǔn)的SQL訪問。Kylin系統(tǒng)會(huì)非常精準(zhǔn)地知道查詢結(jié)果在哪里,馬上可以把這個(gè)結(jié)果反饋。這點(diǎn)是通過其構(gòu)建的Cube立方體,將某個(gè)條件(作為Key)的結(jié)果(作為Value)放在HBase中。Kylin的查詢引擎會(huì)將SQL條件翻譯為對(duì)應(yīng)Cube的頂點(diǎn)(HBase的Key)并取得結(jié)果返回。由于Kylin使用HBase存儲(chǔ)預(yù)聚合結(jié)果,在查詢時(shí)間和并發(fā)度上都有很好的表現(xiàn)。

Kylin主要特點(diǎn)如下:標(biāo)準(zhǔn)的SQL接口;支持超大數(shù)據(jù)集;亞秒級(jí)響應(yīng);可伸縮性和高吞吐率;BI及可視化工具集成[3]。

Kylin必須預(yù)先定義模型用于描述Cube,由于是預(yù)計(jì)算模型內(nèi)所有緯度的組合,作為key并存儲(chǔ)到HBase這類快速存儲(chǔ)。如果模型緯度太多則存儲(chǔ)膨脹度相當(dāng)恐怖。

2.2 實(shí)時(shí)探索查詢OLAP引擎—Druid

Druid是一個(gè)開源、分布式的列存儲(chǔ),適用于實(shí)時(shí)數(shù)據(jù)分析的存儲(chǔ)系統(tǒng),能夠快速聚合、靈活過濾、毫秒級(jí)查詢和低延遲數(shù)據(jù)導(dǎo)入。最初由美國(guó)廣告技術(shù)公司MetaMarkets開源,后作者獨(dú)立Imply.io公司商業(yè)運(yùn)作,其設(shè)計(jì)的適用場(chǎng)景是對(duì)PB級(jí)數(shù)據(jù)的快速聚合查詢[4]。為了做到毫秒級(jí)的查詢響應(yīng),Druid的核心思想是對(duì)數(shù)據(jù)的索引和預(yù)聚合,并載入內(nèi)存快速查詢。為了支持實(shí)時(shí)分析,在預(yù)聚合模型方面僅支持時(shí)序模型,數(shù)據(jù)是不可變的。Druid集群采用無共享的架構(gòu),同時(shí)依賴Zookeeper,MetadataStore(一個(gè)關(guān)系型數(shù)據(jù)庫),Deep Storage(HDFS等文件系統(tǒng))3個(gè)外部服務(wù)。

Druid具有如下技術(shù)特點(diǎn):數(shù)據(jù)吞吐量大;支持流式數(shù)據(jù)攝入和實(shí)時(shí);查詢靈活且快。然而,Druid對(duì)SQL的支持不友好,而且不支持Join,僅提供了一個(gè)Lookup功能,滿足維表的星型關(guān)聯(lián)。

3 應(yīng)用場(chǎng)景

Druid和Kylin都是使用預(yù)聚合技術(shù),以空間換時(shí)間。不同的是Druid預(yù)計(jì)算最大維度組合,然后通過對(duì)維度做索引。當(dāng)查詢請(qǐng)求來的時(shí)候,再后發(fā)地根據(jù)剛才做的緯度索引,定位到最細(xì)粒度的數(shù)據(jù),然后把這些數(shù)據(jù)撈出來。優(yōu)點(diǎn)是索引帶來額外的空間可控(估計(jì)要50%以上,但比Kylin要?。┣宜惴ńy(tǒng)一,不用預(yù)建模型。缺點(diǎn)就是撈出來的數(shù)據(jù)默認(rèn)是近似值,目前只能在有限范圍內(nèi)(可配置)精確查詢,代價(jià)就是耗資源。Kylin是預(yù)計(jì)算模型內(nèi)所有緯度的組合,業(yè)務(wù)必須能被預(yù)先定義為Cube模型,且模型緯度不能太多。但優(yōu)點(diǎn)是支持排重,精確度有保證。

簡(jiǎn)單來說,Kylin更適合有15個(gè)左右固定的分析維度,特別是有Join的復(fù)雜場(chǎng)景,比如:銷售、市場(chǎng)、管理等商務(wù)報(bào)表,預(yù)算決算,經(jīng)濟(jì)報(bào)表等;Druid適合時(shí)序類實(shí)時(shí)分析場(chǎng)景,比如:廣告點(diǎn)擊、運(yùn)維監(jiān)控、安全事件等數(shù)據(jù)分析。

4 結(jié)語

如果數(shù)據(jù)量級(jí)巨大又對(duì)查詢響應(yīng)時(shí)間有秒級(jí)要求,就要結(jié)合場(chǎng)景考慮使用Druid或Kylin這種MOLAP類型的大數(shù)據(jù)預(yù)聚合技術(shù)。通過在數(shù)據(jù)接入的時(shí)候,根據(jù)指定預(yù)聚合的指標(biāo)進(jìn)行聚合運(yùn)算,并使用快速存儲(chǔ)保存聚合結(jié)果,以滿足大數(shù)據(jù)OLAP查詢需求。數(shù)據(jù)在聚合的過程中會(huì)丟失指標(biāo)對(duì)應(yīng)的列值信息,可結(jié)合ROLAP類型的并行計(jì)算SQL on Hadoop技術(shù)解決??梢灶A(yù)見大數(shù)據(jù)HOLAP類型會(huì)將明細(xì)數(shù)據(jù)以ROLAP的形式存放,更加方便靈活,而高度聚合的數(shù)據(jù)以MOLAP的形式展現(xiàn),更適合于高效的分析處理。相信大數(shù)據(jù)預(yù)聚合OLAP技術(shù)作為大數(shù)據(jù)解決方案中重要的組成部分,將發(fā)揮更大的作用。

[參考文獻(xiàn)]

[1]宋杰,郭朝鵬,王智,等.大數(shù)據(jù)分析的分布式MOLAP 技術(shù)[J].軟件學(xué)報(bào),2014(4):731-752.

[2]杜小勇,陳躍國(guó),覃雄派.大數(shù)據(jù)與OLAP系統(tǒng)[J].大數(shù)據(jù),2015(1):48-60.

[3]Apache Kylin核心團(tuán)隊(duì).Apache Kylin權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2017.

[4]歐陽辰,劉麒贇,張海雷,等.Druid實(shí)時(shí)大數(shù)據(jù)分析原理與實(shí)踐[M].北京:電子工業(yè)出版社,2017.

猜你喜歡
應(yīng)用場(chǎng)景大數(shù)據(jù)
云計(jì)算在運(yùn)營(yíng)商業(yè)務(wù)系統(tǒng)中的應(yīng)用研究
淺談北方移動(dòng)微管微纜技術(shù)應(yīng)用場(chǎng)景
室內(nèi)外布線用新型光纜技術(shù)規(guī)范應(yīng)用研究
大數(shù)據(jù)環(huán)境下基于移動(dòng)客戶端的傳統(tǒng)媒體轉(zhuǎn)型思路