从BI到OLAP,数据仓库最终到底能干什么?
數(shù)據(jù)應(yīng)用,是真正體現(xiàn)數(shù)倉價(jià)值的部分,包括且又不局限于 數(shù)據(jù)可視化、BI、OLAP、即席查詢,實(shí)時(shí)大屏,用戶畫像,推薦系統(tǒng),數(shù)據(jù)分析,數(shù)據(jù)挖掘,人臉識別,風(fēng)控反欺詐等等。
數(shù)據(jù)倉庫架構(gòu)圖
本文側(cè)重于數(shù)據(jù)應(yīng)用之BI可視化和OLAP。
一
BI可視化工具
1.1
BI現(xiàn)狀
大數(shù)據(jù)時(shí)代商業(yè)智能(BI)和數(shù)據(jù)可視化訴求更為強(qiáng)烈,淘寶大屏更是風(fēng)靡全球!數(shù)據(jù)可視化是大數(shù)據(jù)『最后一公里』。
BI喚醒沉睡的數(shù)據(jù)。
傳統(tǒng)型BI力求大而全的統(tǒng)一綜合型報(bào)表和分析平臺,側(cè)重傳統(tǒng)式報(bào)表開發(fā),儼然一把屠龍刀。現(xiàn)互聯(lián)網(wǎng)公司快速迭代的業(yè)務(wù)發(fā)展,需要的卻是倚天劍,促使自助式BI和敏捷BI得以迅速發(fā)展。
時(shí)代召喚,傳統(tǒng)BI巨頭也逐漸向自助式BI和云BI轉(zhuǎn)型。一時(shí)間,BI數(shù)據(jù)可視化已呈現(xiàn)出"百家爭鳴,群雄爭霸"的態(tài)勢!
1.2
BI分類
統(tǒng)看業(yè)界可視化BI工具可大致分為:開源bi,商業(yè)bi,和傳統(tǒng)重bi工具。
業(yè)界目前比較流行的開源bi工具有Superset、metabase、Redash、Cboard、Spagobi等,商業(yè)bi工具有帆軟FineBI、tableau、PowerBI、等,傳統(tǒng)企業(yè)、傳統(tǒng)數(shù)倉,大多依然沿用重bi產(chǎn)品,如Congos、BIEE、BO、MicroStrategydeng等。
?
詳細(xì)每一款bi工具,我們前面文章有詳細(xì)介紹。如果你感興趣,或正在調(diào)研開BI工具選型,可移步:大數(shù)據(jù)可視化BI工具,嘔血總結(jié),通幽洞微(點(diǎn)擊鏈接即可跳轉(zhuǎn))
二
OLAP基本操作和類型
OLAP,On-Line Analytical Processing,在線分析處理,主要用于支持企業(yè)決策管理分析。區(qū)別于OLTP,On-Line Transaction Processing,聯(lián)機(jī)事務(wù)處理。
OLAP的優(yōu)勢:豐富的數(shù)據(jù)展現(xiàn)方式、高效的數(shù)據(jù)查詢以及多視角多層次的數(shù)據(jù)分析。
數(shù)據(jù)倉庫與OLAP的關(guān)系是互補(bǔ)的,現(xiàn)代OLAP系統(tǒng)一般以數(shù)據(jù)倉庫作為基礎(chǔ),即從數(shù)據(jù)倉庫中抽取詳細(xì)數(shù)據(jù)的一個(gè)子集并經(jīng)過必要的聚集存儲到OLAP存儲器中供前端分析工具讀取。
2.1
OLAP基本操作
OLAP的多維分析操作包括:鉆取(Drill-down)、上卷(Roll-up)、切片(Slice)、切塊(Dice)以及旋轉(zhuǎn)(Pivot)。
★鉆取:維的層次變化,從粗粒度到細(xì)粒度,匯總數(shù)據(jù)下鉆到明細(xì)數(shù)據(jù)。如通過季度銷售數(shù)據(jù)鉆取每個(gè)月的銷售數(shù)據(jù)
★上卷:鉆取的逆,向上鉆取。從細(xì)粒度到粗粒度,細(xì)粒度數(shù)據(jù)到不同維層級的匯總。eg. 通過每個(gè)月的銷售數(shù)據(jù)匯總季度、年銷售數(shù)據(jù)
★切片:特定維數(shù)據(jù)(剩余維兩個(gè))。eg. ?只選電子產(chǎn)品銷售數(shù)據(jù)
★切塊:維區(qū)間數(shù)據(jù)(剩余維三個(gè))。eg. 第一季度到第二季度銷售數(shù)據(jù)
★旋轉(zhuǎn):維位置互換(數(shù)據(jù)行列互換),通過旋轉(zhuǎn)可以得到不同視角的數(shù)據(jù)。
2.2
OLAP分類
OLAP按存儲器的數(shù)據(jù)存儲格式分為ROLAP(Relational OLAP)、MOLAP(Multi-dimensional OLAP)和 HOLAP(Hybrid OLAP)。
?
-
MOLAP,基于多維數(shù)組的存儲模型,也是OLAP最初的形態(tài),特點(diǎn)是對數(shù)據(jù)進(jìn)行預(yù)計(jì)算,以空間換效率,明細(xì)和聚合數(shù)據(jù)都保存在cube中。但生成cube需要大量時(shí)間和空間。
-
ROLAP,完全基于關(guān)系模型進(jìn)行存儲數(shù)據(jù),不需要預(yù)計(jì)算,按需即時(shí)查詢。明細(xì)和匯總數(shù)據(jù)都保存在關(guān)系型數(shù)據(jù)庫事實(shí)表中。
-
HOLAP,混合模型,細(xì)節(jié)數(shù)據(jù)以ROLAP存放,聚合數(shù)據(jù)以MOLAP存放。這種方式相對靈活,且更加高效。可按企業(yè)業(yè)務(wù)場景和數(shù)據(jù)粒度進(jìn)行取舍,沒有最好,只有最適合。
三
OLAP數(shù)據(jù)庫選型
在大數(shù)據(jù)數(shù)倉架構(gòu)中,離線以Hive為主,實(shí)時(shí)計(jì)算一般是Spark+Flink配合,消息隊(duì)列Kafka一家獨(dú)大,后起之秀Pulsar想要做出超越難度很大,Hbase、Redis和MySQL都在特定場景下有一席之地。
唯獨(dú)在OLAP領(lǐng)域,百家爭鳴,各有所長。
OLAP引擎/工具/數(shù)據(jù)庫,技術(shù)選型可有很多選擇,傳統(tǒng)公司大多以Congos、Oracle、MicroStrategy等OLAP產(chǎn)品,互聯(lián)網(wǎng)公司則普遍強(qiáng)勢擁抱開源,如
Presto,Druid ,Impala,SparkSQL,AnalyticDB,(Hbase)Phoenix,kudu, Kylin,Greenplum,Clickhouse, Hawq, ?Drill,ES等
在數(shù)據(jù)架構(gòu)時(shí),可以說目前沒有一個(gè)引擎能在數(shù)據(jù)量,靈活程度和性能上(吞吐和并發(fā))做到完美,用戶需要根據(jù)自己的業(yè)務(wù)場景進(jìn)行選型。
開源技術(shù)選型,MOLAP可選Kylin、Druid,ROLAP可選Presto、impala等
Presto
Presto?是由 Facebook 開源的大數(shù)據(jù)分布式 SQL 查詢引擎,基于內(nèi)存的低延遲高并發(fā)并行計(jì)算(mpp),適用于交互式分析查詢。
首先我們先來看一下Presto官方的介紹:
-
本身并不存儲數(shù)據(jù),但是可以接入多種數(shù)據(jù)源,包括Hive、RDBMS(Mysql、Oracle、Tidb等)、Kafka、MongoDB、Redis等
-
完全支持ANSI SQL標(biāo)準(zhǔn),用戶可以直接使用?ANSI SQL 進(jìn)行數(shù)據(jù)查詢和計(jì)算
-
可以混合多個(gè)catalog進(jìn)行join查詢和計(jì)算,支持跨數(shù)據(jù)源的級聯(lián)查詢
-
基于PipeLine進(jìn)行設(shè)計(jì)的,流水管道式數(shù)據(jù)處理,支持?jǐn)?shù)據(jù)規(guī)模GB~PB,計(jì)算中拿出一部分放在內(nèi)存、計(jì)算、拋出、再拿。
-
SQL on Hadoop:彌補(bǔ)Hive的效率性能和靈活性的不足,Presto和Spark SQL、Impala有很多異曲同工之處。
presto架構(gòu)(master+slaver模式):
?
Presto應(yīng)用場景:
Druid?
Druid是一個(gè)用于大數(shù)據(jù)實(shí)時(shí)查詢和分析的高容錯(cuò)、高性能開源分布式系統(tǒng),用于解決如何在大規(guī)模數(shù)據(jù)集下進(jìn)行快速的、交互式的查詢和分析。
數(shù)據(jù)可以實(shí)時(shí)攝入,進(jìn)入到Druid后立即可查,同時(shí)數(shù)據(jù)是幾乎是不可變。通常是基于時(shí)序的事實(shí)事件,事實(shí)發(fā)生后進(jìn)入Druid,外部系統(tǒng)就可以對該事實(shí)進(jìn)行查詢。
Druid架構(gòu)
基本特點(diǎn)
Apache Druid?具有以下特點(diǎn):
-
亞秒級 OLAP 查詢,包括多維過濾、Ad-hoc 的屬性分組、快速聚合數(shù)據(jù)等等。
-
實(shí)時(shí)的數(shù)據(jù)消費(fèi),真正做到數(shù)據(jù)攝入實(shí)時(shí)、查詢結(jié)果實(shí)時(shí)。
-
高效的多租戶能力,最高可以做到幾千用戶同時(shí)在線查詢。
-
擴(kuò)展性強(qiáng),支持 PB 級數(shù)據(jù)、千億級事件快速處理,支持每秒數(shù)千查詢并發(fā)。
-
極高的高可用保障,支持滾動升級。
應(yīng)用場景
實(shí)時(shí)數(shù)據(jù)分析是 Apache Druid 最典型的使用場景。該場景涵蓋的面很廣,例如:
-
實(shí)時(shí)指標(biāo)監(jiān)控
-
推薦模型
-
廣告平臺
-
搜索模型
Druid也有很多不足需要注意,由于druid屬于時(shí)間存儲,刪除操作比較繁瑣,且不支持查詢條件刪除數(shù)據(jù),只能根據(jù)時(shí)間范圍刪除數(shù)據(jù)。Druid能接受的數(shù)據(jù)的格式相對簡單,比如不能處理嵌套結(jié)構(gòu)的數(shù)據(jù)。
Druid案例
知乎:技術(shù)選型上,知乎根據(jù)不同業(yè)務(wù)場景選擇了HBase 和 Redis 作為實(shí)時(shí)指標(biāo)的存儲引擎,在OLAP選型上,知乎選擇了Druid。
?
?
OPPO:而OPPO根據(jù)自身不同的業(yè)務(wù)場景,報(bào)表層選擇了Druid,標(biāo)簽選擇了ES,接口層選擇了Hbase。
?
Kylin
Apache Kylin?是一個(gè)開源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),最初由eBay Inc. 開發(fā)并貢獻(xiàn)至開源社區(qū)。它能在亞秒內(nèi)查詢巨大的Hive表。
?
kylin特性:
-
可擴(kuò)展超快olap引擎,Hadoop/Spark上百億數(shù)據(jù)規(guī)模
-
提供 Hadoop ANSI SQL 接口
-
交互式查詢能力,用戶可以與Hadoop數(shù)據(jù)進(jìn)行亞秒級交互
-
百億以上數(shù)據(jù)集構(gòu)建多維立方體(MOLAP CUBE)
-
與BI工具無縫整合,如Tableau,PowerBI/Excel,MSTR,QlikSense,Hue和SuperSet
kylin生態(tài)圈:
?
?
Clickhouse
Clickhouse是一個(gè)用于在線分析處理(OLAP)的列式數(shù)據(jù)庫管理系統(tǒng)(DBMS)。
是由俄羅斯的Yandex公司為了Yandex Metrica網(wǎng)絡(luò)分析服務(wù)而開發(fā)。它支持分析實(shí)時(shí)更新的數(shù)據(jù),Clickhouse以高性能著稱。
先看一下官方定義:
ClickHouse is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).
場景特征:
-
大多數(shù)是讀請求
-
數(shù)據(jù)總是以相當(dāng)大的批(> 1000 rows)進(jìn)行寫入
-
不修改已添加的數(shù)據(jù)
-
每次查詢都從數(shù)據(jù)庫中讀取大量的行,但是同時(shí)又僅需要少量的列
-
寬表,即每個(gè)表包含著大量的列
-
較少的查詢(通常每臺服務(wù)器每秒數(shù)百個(gè)查詢或更少)
-
對于簡單查詢,允許延遲大約50毫秒
-
列中的數(shù)據(jù)相對較小:數(shù)字和短字符串(例如,每個(gè)URL 60個(gè)字節(jié))
-
處理單個(gè)查詢時(shí)需要高吞吐量(每個(gè)服務(wù)器每秒高達(dá)數(shù)十億行)
-
事務(wù)不是必須的
-
對數(shù)據(jù)一致性要求低
-
每一個(gè)查詢除了一個(gè)大表外都很小
-
查詢結(jié)果明顯小于源數(shù)據(jù),換句話說,數(shù)據(jù)被過濾或聚合后能夠被盛放在單臺服務(wù)器的內(nèi)存中
clickhouse自身限制:
-
不支持真正的刪除/更新支持 不支持事務(wù)
-
不支持二級索引
-
有限的SQL支持,join實(shí)現(xiàn)與眾不同
-
不支持窗口功能
-
元數(shù)據(jù)管理需要人工干預(yù)維護(hù)
ClickHouse開源的出現(xiàn)讓許多想做大數(shù)據(jù)并且想做大數(shù)據(jù)分析的很多公司和企業(yè)耳目一新。ClickHouse 正是以不依賴Hadoop 生態(tài)、安裝和維護(hù)簡單、查詢速度快、可以支持SQL等特點(diǎn)在大數(shù)據(jù)分析領(lǐng)域披荊斬棘越走越遠(yuǎn)。
ADB(AnalyticDB for MySQL)
分析型數(shù)據(jù)庫MySQL版(AnalyticDB for MySQL),是阿里巴巴自主研發(fā)的海量數(shù)據(jù)實(shí)時(shí)高并發(fā)在線分析(Realtime OLAP)云計(jì)算服務(wù),使得您可以在毫秒級針對千億級數(shù)據(jù)進(jìn)行即時(shí)的多維分析透視和業(yè)務(wù)探索。
adb優(yōu)勢和特性
-
超大規(guī)模:極致彈性輕松擴(kuò)展至PB級規(guī)模
-
簡單易用:全面兼容MySQL協(xié)議和BI工具
-
實(shí)時(shí)化分析:通過實(shí)時(shí)同步,報(bào)表延時(shí)1分鐘內(nèi)
-
查詢速度快:傳統(tǒng)關(guān)系型數(shù)據(jù)庫的5-10倍性能
基于adb實(shí)時(shí)數(shù)倉架構(gòu)
轉(zhuǎn)存失敗重新上傳取消
?
通過數(shù)據(jù)傳輸服務(wù)DTS(Data Transmission Service),您可以將RDS for MySQL同步到AnalyticDB for MySQL,幫助您快速構(gòu)建企業(yè)內(nèi)部BI、交互查詢、實(shí)時(shí)報(bào)表等系統(tǒng)。
adb數(shù)據(jù)化鏈路架構(gòu)
四
數(shù)據(jù)挖掘
分類、聚類、預(yù)測、關(guān)聯(lián)
本文不多做介紹,對于這一塊,后面會專門寫一篇文章介紹。
結(jié)束語
-
對于數(shù)據(jù)架構(gòu),不管是數(shù)據(jù)倉庫、數(shù)據(jù)湖,還是數(shù)據(jù)中臺,數(shù)據(jù)應(yīng)用才是數(shù)據(jù)價(jià)值體現(xiàn)所在
-
對于可視化BI工具,通幽洞微,建議熟練掌握2-3款即可,理解工具思想和實(shí)現(xiàn)方式
-
對于OLAP數(shù)據(jù)庫,沒有一個(gè)引擎能同時(shí)在數(shù)據(jù)量、性能、和靈活性三個(gè)方面做到完美,每個(gè)系統(tǒng)在設(shè)計(jì)時(shí)都需要在這三者間做出取舍。
總結(jié)
以上是生活随笔為你收集整理的从BI到OLAP,数据仓库最终到底能干什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员如果想安身立命 什么情况????
- 下一篇: 从招行数据架构调整,详解企业急需的数据中