OLAP:實現高效BI分析的必備技術
“ 每個做大資料的同學,都應該聽過OLAP或者實踐過。”
什麼是OLAP多維分析,它究竟有啥作用,如今都有哪些流行的技術解決方案來實現?今天我們詳細聊一聊。
文中部分內容參考了朱凱老師的《ClickHouse原理解析》,感興趣的朋友可以買來讀一讀。
01、BI系統的演進
在聊OLAP之前,我們先把時間拉長,聊聊BI系統。
(1)傳統BI系統
上個世紀,IT技術迅猛發展,主要特徵就是線下工作的線上化。各種各樣的IT系統(比如ERP、CRM等)在各個行業落地實施。相應的,我們把這類系統稱之為聯機事務處理(OLTP)系統。
但是在企業的執行過程中,不只是有流程審批這些工作,還有很多報表統計、分析決策相關的訴求。但是早期的IT系統的資料各自獨立,互相割裂,給分析帶來了極大的困難。
為了解決這一問題,人們提出了資料倉儲的概念,把資料集中在一起,打通隔閡,並透過分層的方式處理資料(關於資料倉儲,可以回顧《資料倉儲基礎知識》,資料倉儲的核心思路維度建模,參考文章《維度建模》。文章都有著詳細的講解,這裡不展開了)。
逐步的,在數倉基礎上提供資料分析的系統慢慢發展起來。直到90年代,BI系統的概念提出來,專門指代這類分析系統。相對於OLTP系統,這類BI系統被稱為聯機分析(OLAP)系統。
傳統BI系統解決了很多問題,但是存在的瓶頸也是很多的。比如資料的分析效率底下、研發迭代緩慢等,都對應用效果產生了負面影響。
(2)現代BI系統
最近幾年,SaaS模式的興起,為BI系統帶來了新的發展機遇。例如我們熟知的GA、神策分析、友盟分析等,採取的服務模式都是SaaS化。很多中小型公司的BI系統不再依賴於數倉的搭建。
而現代BI系統背後的OLAP技術也在不斷髮展。
02、什麼是OLAP
下面我們詳細聊聊OLAP。
OLAP即聯機分析,又可以稱為多維分析,是關係型資料庫之父Edgar Frank於1993年提出的概念。它指的是透過多種不同的維度審視資料,進行深層次分析。主要的操作包括下鑽、上卷、切片、切塊等。
參考Excel的資料透視表的功能,大家就好理解這些操作了。資料透視表實現了對原始資料的各種聚合、分解、切片等操作,OLAP也是如此。可以把OLAP理解成對公司資料庫建立一個大的透視表,透過這個透視表進行各種維度的分析,這就是OLAP。
說白了,OLAP是用於我們進行分析的引擎。在很多公司的資料架構中,OLAP作為頂層分析應用層與資料儲存層的中間處理層。其核心解決的是和資料分析相關的需求。
常見的OLAP架構可以分為三類。
(1)ROLAP
第一種架構稱為ROLAP(Relational OLAP),即關係型OLAP。顧名思義,是直接使用關係模型進行構建的。因此,多維分析的操作是可以直接轉換成SQL進行查詢的。
這種架構對資料的實時處理能力要求很高。像ClickHouse、Impala、Presto都是典型的RLOAP代表。
(2)MOLAP
第二種架構稱為MOLAP(Multidimensional OLAP),即多維型OLAP。
MOLAP的出現是為了緩解ROLAP的效能問題。其核心思路是對資料預先聚合處理,以儲存空間換查詢時間的減少。典型的MOLAP包括Kylin、Druid等。
容易想到,如果維度較多,需要儲存的資料量級會有指數級地上漲。一張千萬級別的資料表,可能膨脹到需要儲存億級別的體量。
另外,由於需要進行預計算,MOLAP的資料會有一定的滯後性,不能實時進行資料分析。並且由於只保留了聚合後的結果資料,無法查詢明細資料。
(3)HOLAP
第三類架構稱為HOLAP(Hybrid OLAP),即混合架構OLAP。
這種架構可以理解成ROLAP和MOLAP的整合。
03、OLAP實現技術的演進
前面我們也陸續介紹了OLAP相關的一些技術。下面我們簡單聊聊OLAP技術的演進過程。
(1)傳統關係型資料庫階段
第一個階段稱為傳統的關係型資料庫階段。在這個階段中,OLAP主要是以Oracle、MySQL等關係型資料庫實現。
在ROLAP架構下,直接使用這些資料庫作為儲存和計算的載體;在MOLAP架構下,則藉助物化檢視的形式實現資料立方體。
該階段中,無論是ROLAP還是MOLAP,當資料體量大、維度數目多的時候,都存在嚴重的效能問題,甚至存在根本查不出結果的情況。
(2)大資料技術階段
第二個極端可以稱為大資料階段。在這個階段,主要依賴Hive等大資料技術進行實現。
以ROLAP為例,傳統的關係型資料庫被Hive和SparkSQL這類新型技術所取代。相比傳統的資料庫而言,面向海量資料的處理效能明顯提升了很多。但是在提供實時的線上查詢服務時,仍然需要幾十秒甚至數分鐘才能返回。
(3)最新階段
最近幾年,一款新的OLAP解決方案ClickHouse走進了大家的視野。其優越的查詢計算效能讓人驚歎。頭條、阿里、騰訊等大廠也紛紛進行使用。
ClickHouse是由來自俄羅斯的Yandex公司研發的(Yandex類似於中國的百度,是俄羅斯的本土搜尋引擎,佔據俄國47%的搜尋市場),是一款開源軟體。
其他一些常見的OLAP技術方案對比如下,供參考。
不同的技術,也都存在各自的優點和缺點。在目前階段,沒有哪種OLAP技術是萬能的靈丹妙藥,可以解決所有問題。大家在技術選型時,需要結合自己的業務資料特點,進行選擇。不知道未來是否有一天,能出現完美的OLAP解決方案,一統江湖。期待吧。
來自 “ 首席資料科學家 ”, 原文作者:NK冬至;原文連結:https://mp.weixin.qq.com/s/7SxMG62ZKrK9or6YtpoOpQ,如有侵權,請聯絡管理員刪除。
相關文章
- 商業智慧BI必備的特性
- 資料倉儲,資料探勘,OLAP,BI等系統技術深度建設
- web前端必備技術有哪些?Web前端
- 高效sql必殺技SQL
- OLAP分析
- 五種前端開發必備的除錯技術前端除錯
- 談元件技術(一) 必備知識. (轉)元件
- OLAP工具就是商業智慧BI嗎?
- 程式設計師必備:技術面試準備手冊程式設計師面試
- 轉轉OLAP自助分析實踐
- BI、OLAP、多維分析、CUBE 這幾個詞是什麼關係?
- golang 後端技術開發必備總結Golang後端
- 專案必備技術之單元測試
- web專案技術必備-------jQuery快速入門WebjQuery
- 百分點大資料技術團隊:BI嵌入式分析實踐大資料
- 開源BI報表及OLAP多維分析平臺OPENI(一)—DEMO演示
- VR全景技術備受關注的原因分析VR
- 平安人壽基於 Apache Doris 統一 OLAP 技術棧實踐Apache
- 技術人必備|55款軟體工具盤點
- 高效SQL語句必殺技SQL
- 乾貨!運維必知的9種高效能技術架構運維架構
- 分析高效記憶體池的實現方式記憶體
- 【實驗】利用可傳輸表空間技術實現資料的高效遷移
- 技術債! 怎樣簡潔高效的實現多個 Enum 自由轉換
- SaaS BI系統做資料分析:超乎想象的高效、便捷
- 商業智慧BI的資料建模技術
- 高效能人士面試必備技能面試
- 招商信諾人壽基於 Apache Doris 統一 OLAP 技術棧實踐Apache
- 高效的PDF文字提取技術
- 學習外掛編寫開發所必備技術
- SRE 必備知識 - Kafka 探秘之零複製技術Kafka
- 精選22個Python實用技巧,秀技能必備這份技術列表!Python
- 高效實現聚水潭·奇門售後單整合到MySQL的關鍵技術MySql
- CentOS中實現基於Docker部署BI資料分析CentOSDocker
- 3步實現財務分析資料視覺化,財務人必備!視覺化
- 我對C++中THUNK一種實現技術的分析 (轉)C++
- Apache中URLRewrite技術的實現Apache
- 深度解析Android APP加固中的必備手段——程式碼混淆技術AndroidAPP