主流OLAP系统对比总结
聯(lián)機(jī)分析處理OLAP是一種軟件技術(shù),它使分析人員能夠迅速、一致、交互地從各個(gè)方面觀察信息,以達(dá)到深入理解數(shù)據(jù)的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特征。
OLTP和OLAP的區(qū)別
參考:
從大數(shù)據(jù)談起1:OLTP和OLAP的設(shè)計(jì)區(qū)別
從大數(shù)據(jù)談起2:分片和分層-GavinGuo-51CTO博客
聯(lián)機(jī)事務(wù)處理OLTP(On-line Transaction Processing)
聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)
?
多維分析中的常用操作:
下面介紹數(shù)據(jù)立方體中最常見的五大操作:切片,切塊,旋轉(zhuǎn),上卷,下鉆。
?
下鉆(Drill-down):在維的不同層次間的變化,從上層降到下一層,或者說是將匯總數(shù)據(jù)拆分到更細(xì)節(jié)的數(shù)據(jù),比如通過對(duì)2010年第二季度的總銷售數(shù)據(jù)進(jìn)行鉆取來查看2010年第二季度4、5、6每個(gè)月的消費(fèi)數(shù)據(jù),如上圖;當(dāng)然也可以鉆取浙江省來查看杭州市、寧波市、溫州市……這些城市的銷售數(shù)據(jù)。
上卷(Roll-up):鉆取的逆操作,即從細(xì)粒度數(shù)據(jù)向高層的聚合,如將江蘇省、上海市和浙江省的銷售數(shù)據(jù)進(jìn)行匯總來查看江浙滬地區(qū)的銷售數(shù)據(jù),如上圖。
切片(Slice):選擇維中特定的值進(jìn)行分析,比如只選擇電子產(chǎn)品的銷售數(shù)據(jù),或者2010年第二季度的數(shù)據(jù)。
切塊(Dice):選擇維中特定區(qū)間的數(shù)據(jù)或者某批特定值進(jìn)行分析,比如選擇2010年第一季度到2010年第二季度的銷售數(shù)據(jù),或者是電子產(chǎn)品和日用品的銷售數(shù)據(jù)。
旋轉(zhuǎn)(Pivot):即維的位置的互換,就像是二維表的行列轉(zhuǎn)換,如圖中通過旋轉(zhuǎn)實(shí)現(xiàn)產(chǎn)品維和地域維的互換。
?
在調(diào)研了市面上主流的開源OLAP引擎后發(fā)現(xiàn),目前還沒有一個(gè)系統(tǒng)能夠滿足各種場(chǎng)景的查詢需求。其本質(zhì)原因是,沒有一個(gè)系統(tǒng)能同時(shí)在數(shù)據(jù)量、性能、和靈活性三個(gè)方面做到完美,每個(gè)系統(tǒng)在設(shè)計(jì)時(shí)都需要在這三者間做出取舍。
例如:
MPP架構(gòu)的系統(tǒng)(Presto/Impala/SparkSQL/Drill等)有很好的數(shù)據(jù)量和靈活性支持,但是對(duì)響應(yīng)時(shí)間是沒有保證的。當(dāng)數(shù)據(jù)量和計(jì)算復(fù)雜度增加后,響應(yīng)時(shí)間會(huì)變慢,從秒級(jí)到分鐘級(jí),甚至小時(shí)級(jí)都有可能。
MPP即大規(guī)模并行處理(Massively Parallel Processor )。 在數(shù)據(jù)庫非共享集群中,每個(gè)節(jié)點(diǎn)都有獨(dú)立的磁盤存儲(chǔ)系統(tǒng)和內(nèi)存系統(tǒng),業(yè)務(wù)數(shù)據(jù)根據(jù)數(shù)據(jù)庫模型和應(yīng)用特點(diǎn)劃分到各個(gè)節(jié)點(diǎn)上,每臺(tái)數(shù)據(jù)節(jié)點(diǎn)通過專用網(wǎng)絡(luò)或者商業(yè)通用網(wǎng)絡(luò)互相連接,彼此協(xié)同計(jì)算,作為整體提供數(shù)據(jù) 庫服務(wù)。非共享數(shù)據(jù)庫集群有完全的可伸縮性、高可用、高性能、優(yōu)秀的性價(jià)比、資源共享等優(yōu)勢(shì)。缺點(diǎn):性能不穩(wěn)定
搜索引擎架構(gòu)的系統(tǒng)(Elasticsearch等)相對(duì)比MPP系統(tǒng),在入庫時(shí)將數(shù)據(jù)轉(zhuǎn)換為倒排索引,采用Scatter-Gather計(jì)算模型,犧牲了靈活性換取很好的性能,在搜索類查詢上能做到亞秒級(jí)響應(yīng)。但是對(duì)于掃描聚合為主的查詢,隨著處理數(shù)據(jù)量的增加,響應(yīng)時(shí)間也會(huì)退化到分鐘級(jí)。
缺點(diǎn):性能不穩(wěn)定
預(yù)計(jì)算系統(tǒng)(Druid/Kylin等)則在入庫時(shí)對(duì)數(shù)據(jù)進(jìn)行預(yù)聚合,進(jìn)一步犧牲靈活性換取性能,以實(shí)現(xiàn)對(duì)超大數(shù)據(jù)集的秒級(jí)響應(yīng)。
缺點(diǎn):不太靈活
MPP和搜索引擎系統(tǒng)無法滿足超大數(shù)據(jù)集下的性能要求,因此很自然地會(huì)考慮預(yù)計(jì)算系統(tǒng)。而Druid主要面向的是實(shí)時(shí)Timeseries數(shù)據(jù),我們雖然也有類似的場(chǎng)景,但主流的分析還是面向數(shù)倉中按天生產(chǎn)的結(jié)構(gòu)化表,因此Kylin的MOLAP Cube方案是最適合作為大數(shù)據(jù)量時(shí)候的引擎。
?
?
下面列舉了三個(gè)olap系統(tǒng)
ImPala
?
Druid
Druid是廣告分析公司Metamarkets開發(fā)的一個(gè)用于大數(shù)據(jù)實(shí)時(shí)查詢和分析的分布式實(shí)時(shí)處理系統(tǒng),主要用于廣告分析,互聯(lián)網(wǎng)廣告系統(tǒng)監(jiān)控、度量和網(wǎng)絡(luò)監(jiān)控。
特點(diǎn):
1. 快速的交互式查詢——Druid的低延遲數(shù)據(jù)攝取架構(gòu)允許事件在它們創(chuàng)建后毫秒內(nèi)可被查詢到。
2. 高可用性——Druid的數(shù)據(jù)在系統(tǒng)更新時(shí)依然可用,規(guī)模的擴(kuò)大和縮小都不會(huì)造成數(shù)據(jù)丟失;
3. 可擴(kuò)展——Druid已實(shí)現(xiàn)每天能夠處理數(shù)十億事件和TB級(jí)數(shù)據(jù)。
4. 為分析而設(shè)計(jì)——Druid是為OLAP工作流的探索性分析而構(gòu)建,它支持各種過濾、聚合和查詢。
應(yīng)用場(chǎng)景:
1. 需要實(shí)時(shí)查詢分析時(shí);
2. 具有大量數(shù)據(jù)時(shí),如每天數(shù)億事件的新增、每天數(shù)10T數(shù)據(jù)的增加;
3. 需要一個(gè)高可用、高容錯(cuò)、高性能數(shù)據(jù)庫時(shí)。
4. 需要交互式聚合和快速探究大量數(shù)據(jù)時(shí)
架構(gòu)圖:
Druid官網(wǎng)?Druid | About Druid
Druid:一個(gè)用于大數(shù)據(jù)實(shí)時(shí)處理的開源分布式系統(tǒng)
?
Presto
Presto是Facebook開發(fā)的分布式大數(shù)據(jù)SQL查詢引擎,專門進(jìn)行快速數(shù)據(jù)分析。
特點(diǎn):
1. 可以將多個(gè)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行合并,可以跨越整個(gè)組織進(jìn)行分析。
2. 直接從HDFS讀取數(shù)據(jù),在使用前不需要大量的ETL操作。
查詢?cè)?#xff1a;
1. 完全基于內(nèi)存的并行計(jì)算
2. 流水線
3. 本地化計(jì)算
4. 動(dòng)態(tài)編譯執(zhí)行計(jì)劃
5. 小心使用內(nèi)存和數(shù)據(jù)結(jié)構(gòu)
6. 類BlinkDB的近似查詢
7. GC控制
?
?
Kylin
?
?
Apache Kylin最初由eBay開發(fā)并貢獻(xiàn)至開源社區(qū)的分布式分析引擎,提供
Hadoop之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù)。
特點(diǎn):
1. 用戶為百億以上數(shù)據(jù)集定義數(shù)據(jù)模型并構(gòu)建立方體
2. 亞秒級(jí)的查詢速度,同時(shí)支持高并發(fā)
3. 為Hadoop提供標(biāo)準(zhǔn)SQL支持大部分查詢功能
4. 提供與BI工具,如Tableau的整合能力
5. 友好的web界面以管理,監(jiān)控和使用立方體
6. 項(xiàng)目及立方體級(jí)別的訪問控制安全
總結(jié)
以上是生活随笔為你收集整理的主流OLAP系统对比总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的开发工具有哪些,Pytho
- 下一篇: 分享功能生成小程序二维码