搞懂QuickBI的OLAP引擎技術原理,人人都是數據分析師

搞懂QuickBI的OLAP引擎技術原理,人人都是數據分析師

來自專欄我是程序員9 人贊了文章

阿里巴巴技術專家梓澈從多方面帶您搞懂QuickBI的OLAP引擎技術原理,首先介紹了BI的國內外現狀,然後對QuickBI的定位、使用流程以及客戶案例進行詳細分析。又對OLAP引擎進行了詳細的講解,最後對未來發展方向與展望進行了深刻的總結。

直播視頻回顧

PPT下載請點擊

以下是精彩視頻內容整理:

BI產品介紹

提到BI與OLAP這兩個概念,對於很多做資料庫的技術人員來說並不陌生,目前國內外都有很多流行的BI產品,比如國外有Tableau、Microsoft Power BI、QlikView,國內有永洪BI、帆軟BI、海致BDP等等,這些都是在業界有著良好口碑的BI產品,而阿里雲的QuickBI在數據分析和數據可視化領域同樣也是一款很好的BI產品。

QuickBI

上圖是QuickBI產品的首頁,可以看到首頁中有關於QuickBI產品的介紹,比如產品特性、基本使用流程、不同版本之間的功能特性以及使用QuickBI的實戰場景和垂直的應用場景等等。除此以外還提供了幫助文檔和視頻使用教程來幫助用戶快速學習使用QuickBI產品。

QuickBI的定位

BI隨著時代的發展逐漸出現了新型BI和傳統型BI的劃分,從目前的發展程度來看,傳統型BI正在慢慢地衰退,新型BI正處於高速發展的時期。由於傳統型BI存在一些問題,這些問題也成為了它發展的瓶頸:

  • 傳統型BI百分之九十以上的工作都需要專業的IT人員來完成,包括建立底層數據倉庫、數據模型以及開發數據報表等,整個流程過於繁瑣複雜,成本較高。
  • 傳統型BI專註於傳統資料庫的分析,不具備海量數據分析的能力。
  • 傳統型BI在數據可視化方面偏弱,業務人員在做數據分析查看的時候無法針對數據結果進行二次處理,從而導致可視化方面提供的服務偏少。

相比較而言,新型BI有效的解決了上述問題,QuickBI的定位是通過提供海量數據即席分析、電子報表製作及拖拽式的可視化分析能力,讓懂業務的人自助實現數據分析,重塑數據生產的全鏈路,最終實現人人都是數據分析師。可以從以下幾點具體分析這句話的涵義:

  • 第一,產品提供了豐富的數頻接入,既包括了傳統的關係型資料庫也包括了各種大數據計算引擎服務,並為海量的數據分析提供了加速引擎,可以向用戶提供秒級的查詢速度。
  • 第二,提供了強大的數據可視化分析能力,比如可以製作類Excel電子表格,在電子表格里提供了大約三百多種常用函數,除此還提供了多種可視化儀錶板,能滿足用戶的各種可視化需求。
  • 第三,新型的BI強調的是業務主導和智能自助,IT人員只需要做底層數據準備工作,其餘工作全部由業務人員自助完成。

QuickBI使用流程

使用QuickBI進行數據分析大致分為四步:

  1. 添加數據源: BI支持多種數據源接入,主要有三種,分別是雲數據源、用戶自建的資料庫以及用戶本地文件通過touch空間上傳到平台中後提供數據分析服務。
  2. 創建數據集:與數據源建立連接以後可以對表格進行加工,將對錶的加工過程固化保存下來避免重複操作。
  3. 報表製作:整個報表製作分為兩個模塊,分別是類Excel編輯表格與具有分布可視化圖表的儀錶板,不論是電子表格還是儀錶板都可以提供強大的數據分析服務。
  4. 報表應用:在完成電子表格或儀錶板後就可以把這些電子表格或儀錶板構建成數據門戶,在數據門戶中可以無縫集成用戶想要展示的報表,所有的報表也可以用於第三方的嵌入集成,與用戶自身的平台無縫集成,除此之外還提供了多種報表功能。

QuickBI功能示例

上圖是QuickBI提供的類電子表格,整個電子表格提供的表格分析能力和Excel比較類似,提供了三百多種常用函數,這些函數保持了與Excel幾乎相同的使用方式,從而使熟練Excel的人員把經驗無縫銜接過來,方便用戶的使用。

此圖為儀錶板的截圖,可以看到有20餘種數據圖表類型,在整個儀錶板中可以做許多強大的數據分析的圖,提供比較豐富的可視化圖表,並且圖表之間可以實現圖表的聯動、圖表的跳轉以及圖表賺取分析等。

QuickBI客戶真實使用場景

秦絲科技

秦絲科技在業務運營中比較關注用戶的留存率和活躍率等指標,對接QuickBI之後,由技術人員完成底層數據的採集、加工和清洗處理,並將數據導出到數據分析庫,接下來由業務人員自助完成報表的開發工作,滿足了定製化報表與臨時分析兩種不同的場景。

青桔科技-貨車兄弟

與秦絲科技類似,但是不同的是青桔科技需要將製作的報表與公司自身的管理系統進行集成,解決了員工使用不同系統工作的問題。QuickBI則提供第三平台嵌入集成的功能,比較好的解決了青桔科技的需求。

OLAP引擎的流程分解

一個完整的數據建模和數據分析過程可以分成四大塊,首先需要探取數據源的元數據,利用元數據進行數據建模,生成符合規則的數據集,其次需要利用數據集結合可視化圖表進行數據分析的工作,創建出查詢模型。然後將查詢模型進行解析,生成可以匹配當前的數據源的sql語句後,發送到數據源進行數據查詢,將查詢的結果處理完成後傳輸到報表上進行可視化展現。

OLAP引擎技術架構圖

整個技術架構圖可以分為幾大塊:首先是基礎模型,主要包括元數據模型、數據集模型以及查詢模型。元數據模型是對元數基本的封裝,包含了各種元數據使用價值的屬性,如表/視圖、欄位、主鍵/外鍵、索引、分區欄位、函數和存儲過程,這些屬性可以協作用戶快速完成數據集建模工作。

數據集模型是對數據源抽象描述的模型,將物理欄位映射成抽象的維度,將物理表或視圖的映成關聯關係,並且可以使用分組、計算欄位等高級功能實現複雜的條件表達式和計算表達式。而用戶在進行數據分析過程中可以屏蔽各種物理細節,進而簡化了用戶的使用成本。

查詢模型是對數據分析抽象描述的模型,它可以把最終的查詢條件抽象成為一個查詢模型。由於查詢模型是抽象的,基本無法被數據源識別,因此在進行數據查詢時會將查詢模型轉換為數據源可識別的查詢語句。查詢流程具體包括介面層、路由層和查詢引擎層,介面層提供了數據查詢表達式(DQX)與數據許可權表達式(DAX)兩種表達式。路由層主要用於並發控制、路由策略以及數據的封裝和異常校驗等。

整個QuickBI提供了普通查詢引擎與加速引擎兩種,這兩種引擎功能比較類似,都是將查詢模型轉化為數據源可識別的查詢語句,並在運行中針對各種高級計算的規則對查詢結果進行進一步處理。它們最大的區別是底層執行框架存在差異,普通查詢可以通過自營的分散式執行框架與底層數據源進行對接,而加速查詢則引入了MPP計算框架,與大數據系統進行對接,依靠MPP框架本身的性能實現海量數據的集成響應。

OLAP引擎數據源

數據源可以簡單分為幾類:包括SQL類數據源,可將其進一步劃分為關係資料庫與分析型資料庫,其次還有NoSQL類資料庫、大數據離線計算系統以及API類數據源,最後一種是文件類數據源。

OLAP引擎數據建模

從上圖可以看到用戶資料庫提供了數據源的接入,通過MetadataCrawter抽取出用戶資料庫中的元數據,然後構建出需要的元數據模型,在元數據模型里提供了幾種不同的屬性。通過CubeAutoBuilder將元數據模型自動轉化為數據集模型,數據集模型描述了整個數據集涉及到的維度、度量、層次、成員以及關聯模型。在數據模型中用戶除了可以使用元數據模型智能構建的數據集以外,還可以自行進行建模操作。通過構建關聯模型可以實現單表模型、新型模型或者雪花模型。整個資料庫模型最後以xml格式進行存儲,可以通過CubeXmlGenerator把數據模型轉化為xml存儲格式,相反也可以通過CubeXmlGenerator把xml格式轉化為數據集。

OLAP引擎數據查詢和路由

前面提到整個接入層包括DQX與DAX,數據查詢的第一個過程是接收DQX與DAX,並對這兩種表達式進行重組、整形和優化,最終整合成有一個統一的查詢模型。智能路由按照用戶級別分成多個隊列,每個隊列都有一定的數量限制,如果用戶的產品引擎達到上限,那麼就需要在隊列中進行等待,否則就可以把它放到RunningPool中。然後通過RoutingPolicy判斷一個產品到底屬於哪一個查詢引擎,這裡提供了兩種不同的查詢引擎,包括普通查詢引擎與極速查詢引擎,不同的查詢引擎走不同的計算框架,最終把計算的查詢結果轉換為RewRsult數據格式。

查詢模型進入查詢引擎後會對查詢模型進行轉化,把查詢模型轉化為抽象語法樹,然後再將語法樹轉化為試退為各種數據源的SQL語句,將SQL語句放入緩衝管理模塊進行判斷,如果執行結果存在於緩衝管理模塊,直接在緩衝管理模塊讀出結果。如果不存在,就將數據源的SQL語句轉化為查詢任務,再將查詢任務分到分散式框架裡面。分散式框架主要負責與底層數據源的對接,把相應的SQL語句放入數據源內執行並獲取查詢結果再返還給查詢引擎,從而生成一個查詢結果集,查詢結果集會進行數據轉換,最後會根據查詢結果集進行內存凈化處理。

加速引擎與查詢引擎大多類似,唯一的區別在於底層框架的執行,查詢引擎是QPI自主研發的一個分布執行框架,而加速引擎則引入了MPP引擎框架,通過MPP框架可以實現針對大數據的秒級查詢響應。

未來探索方向

未來的探索方向大致可以分為四個方面:

  • 數據分析:擴展更多數據源,豐富更多的可視化圖表和布局模式,給用戶更好的體驗;其次要有監控預警功能、提升OLAP多維分析功能以及大數據處理能力和效率。
  • 數據管理:加強元數據的管理,同時提供數據輕量級ETL並實現數據線上線下的打通。
  • 集成融合:有兩種與用戶第三方平台的集成方式分別是報表的嵌入集成與OPEN API,通過這兩種方式可以實現QPI產品與用戶的自由的系統和平台達到無縫的集成融合。
  • 智能:在數據分析智能方面,結合數據挖掘和機器學習內置各種場景化的演算法模型;在產品智能方面,結合自然語言、語音識別等技術提升產品易用性。

大家如果有任何需求與諮詢可以點擊鏈接提交:

market.tianchi.aliyun.com

本文作者:雲跡九州

原文鏈接

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

本文為雲棲社區原創內容,未經允許不得轉載。


推薦閱讀:

給妹子講python-S02E17Pandas簡單數據合併
2018數據分析學習計劃
自學數據分析的計劃
數據分析師分哪些方向
Python數據分析流程(以藥店銷售數據為例)

TAG:數據分析 | 數據分析師 | 數據挖掘 |