應用Tableau、Vertica的視覺化大資料分析框架
作者:張璽
大資料分析、企業BI、資料視覺化等話題在罈子裡日趨火熱,新的技術,架構也層出不窮,今天藉此文跟大家分享一款大資料下的聯機分析(ROLAP)解決方案,它應用了當前主流的資料視覺化工具Tableau及列儲存資料庫Vertica, 採用了IBM Platform Analytics資料採集框架和資料ETL(Extract, transform, load)框架完成對原始資料的採集和處理,提供可用於資料視覺化處理的資料倉庫,完成對業務資料的視覺化分析。
資料視覺化工具-Tableau
Tableau主要是面向企業資料提供視覺化服務, 企業運用Tableau授權的資料視覺化軟體對資料進行處理和展示。
Tableau目前有三大軟體產品:Tableau Desktop、Tableau Server以及Tableau Public。其中Tableau Desktop是一款PC桌面作業系統上(只支援windows系統)的資料視覺化分析軟體。Tableau Server則是完全面向企業的商業智慧應用平臺,基於企業伺服器和web網頁,使用者使用瀏覽器進行分析和操作,還可以將資料釋出到Tableau Server與同事進行協作,實現了視覺化的資料互動。而Tableau Public是完全免費的,不過使用者只能將自己運用Tableau Public製作的視覺化作品釋出到網路上即Tableau Public社群,而不能儲存在本地,每個Tableau Public使用者都可以檢視和分享,而且Tableau Public所能支援的接入資料來源的型別和大小都有所限制,所以Tableau Public更像是Tableau Desktop的公共網路版,重在體驗和分享。
Tableau 與SPSS、Matlab、Excel等軟體的區別
Spss、Matlab、Excel是幾個大家比 較熟知的資料分析軟體,也都能進行資料的視覺化。但Tableau Desktop可以說是一款完全的資料視覺化軟體,而Spss、Matlab、Excel則各有側重。Tableau Desktop與之的區別是,Spss作為三大統計分析軟體,比較偏重於統計分析,使用者需要一定的數理統計基礎,雖然其也是功能強大且操作簡單友好,但 其輸出的圖表在與辦公軟體的相容性及互動方面有所欠缺,而Tableau Desktop專注的是結構化資料的快速視覺化,使用者可以快速構建美觀有效的資料視覺化作品,並構建互動介面(通過釋出到Server),但只是輔助分 析,輔助人們進行視覺化的思考,並沒有像Spss那樣強大的統計分析功能。Matlab的功能更加強大,但需要較為深厚的程式設計基礎,比較適合科學方面的可 視化專案。Excel是最流行最常用的資料分析、資料繪圖軟體,但因其大量糟糕的圖表設計案例從而在視覺化領域廣受詬病,而Tableau Desktop不僅圖表美觀,而且更加智慧,可以自動地進行視覺化形式的選擇,而且Excel作為一款電子表格工具,其不適用大型資料集。
總之,快速、易用、視覺化還是Tabeleau Desktop最大的特點,其能滿足大多數企業、政府機構資料分析和展示的需要以及部分大學、研究機構視覺化專案的要求,而且特別適合於企業,畢竟Tableau自己的定位也是業務分析和商業智慧。
列儲存式的資料庫-Vertica
Veritica作為列儲存資料庫,提供了比傳統行式儲存資料庫更快的查詢操作。Vertica不僅僅按列式儲存資料,還主動地根據列資料的特點和查詢的要求選用最佳的演算法對資料進行培續和壓縮,這就大大降低磁碟I/O消耗。
在Vertica中,每列資料式獨立地儲存在連續的硬碟儲存塊中。這與傳統行式資料庫按行的順序來連續儲存資料有根本的不同。 Veritica支援延遲物化技術。對於大多數的分析查詢而言,往往只需要獲取所有列資料的一個子集。Veritca列式優化器和執行引擎可以在列式儲存中跳過無關的列,從而節省了大量的I/O資源消耗。
從實際情況上來看,基於行儲存的資料庫更適合OLTP(聯機事務處理系統),而基於列儲存的資料庫更適合OLAP(聯機分析處理系統),比如資料倉庫。除此之外,由於同一列必定是同一型別大小,基於列儲存的資料庫更容易使用高效的儲存方式,與之相比較,基於行儲存的資料庫則只能採用隨機方式處理列值了。
資料採集與ETL整合架構
資料採集與資料加工(ETL)應用了IBM Platform Analytics(以下簡稱PA)開放式框架,它整合vertica和tableau,實現了從資料採集,資料分析到最終視覺化的完整解決方案,其架構如圖3所示:
Platform Analytics通過Analytics Data Collectors 進行原始資料的採集,並將採集到的資料寫入資料庫,存放在原始資料表中,Analytics Data Collectors被部署在一臺主機上,一個Analytics Data Collectors包括不同的資料採集器,我們稱之為dataloader。不同的dataloader負責採集不同型別的資料,這些loader 可以分為events loader,polling loader和database loader。events loader通過對log檔案的解析,polling loader通過與系統API的互動定期採集實時資料,database loader則採集資料庫中已經儲存的資料。這些資料通過通過plc(platform loader controller)對dataloader進行管理,plc作為loader的主程序負責各個loader的定期排程。與此同時,還有一個wsm程序負責HA控制,檢測plc的執行狀況,在發現plc停止工作的情況下,wsm會自動重啟plc,保證資料的及時採集。
除了單節點的PA node,PA node還採用了failover機制,一個loader可以被部署在多臺主機上,一旦某臺機子宕機,plc會以此被執行在下一個指定的host上。
原始資料寫入到資料庫後,Platform Analytics Server會排程ETL對資料進行Extract、Transform和Load,生成最終可用來資料分析的分析資料,這些分析資料存放在以RPT 開頭的表中,不同的ETL根據自己特有的業務邏輯對原始資料有價值的資訊進行提取和聚合。
在Platform Analytics Server上,每個ETL被定義為不同的task,在PA Console上,可以對這些task 的執行週期進行配置,定期排程這些task完成原始資料的Roll Up、Drill Down、Slice、Dice、Filter等操作。與此同時,Platform Server端還提供其他的功能,比如,資料的清洗,資料延遲的檢測,使用者資料的合併以及對資料庫表中重複的資料進行刪除操作。
最終的資料通過視覺化工具Tableau Server展現,終端使用者可以通過瀏覽器訪問Workbook,對Workbook進行條件查詢和資料篩選來檢視符合條件的業務資料,可以通過定義Email Notification定時收到系統事件的反饋。
Platform 通過以上的過程,完成資料的採集,加工及視覺化展現,終端使用者可以通過Web 瀏覽器方便瀏覽Workbook,也可以通過與LSF的其他第三方產品(比如PAC)整合,方便使用者定製和瀏覽Workbook。
結束語
PA目前利用自身提供的資料採集和ETL處理,以及與Tableau和Vertica的整合能夠快速相應業務變化的需求,並滿足當前的系統性能需求。下一步需要考慮的方向是:在日益增長的資料需求下,如何與其他開源框架的整合,進一步提高資料分析的效率,比如利用ELK來替代現有元件分析系統日誌以及採用Spark框架並行處理ETL, 來降低資料週轉時間,提高系統的執行效率, 這些都是PA下一步的研究方向。
作者簡介:張璽, 2011年加入IBM至今,從事軟體測試工作,研究方向為大資料分析,系統實時監控和資料視覺化。
責編:周建丁([email protected])
2016年3月18日-19日,由CSDN重磅打造的資料庫核心技術與實戰應用峰會、網際網路應用架構實戰峰會將在上海舉行。這兩場峰會將邀請業內頂尖的架構師和技術專家,共同探討高可用/高併發系統架構設計、新技術應用、移動應用架構、微服務、智慧硬體架構、雲資料庫實戰、新一代資料庫平臺、產品選型、效能調優、大資料應用實戰等領域的熱點話題與技術。
2月29日24點前仍處於最低六折優惠票價階段,單場峰會(含餐)門票只需799元,5人以上團購或者購買兩場峰會通票更有特惠,限量供應,預購從速。(票務詳情連結)。