張波
摘 要:文章通過對某保險公司的分布式數據庫架構下數據自助分析平臺中的應用方案進行研究與應用,提出在自助分析系統中使用分布式MPP數據庫進行海量數據處理的思路,對開源分布式數據庫GreenPlum進行了重點分析,同時結合ROLAP自助分析系統的功能特點,給出系統部署的應用建議。研究內容對于分布式數據庫在大數據決策分析系統的落地具有一定的實用價值。
關鍵詞:分布式數據庫;BIG LAKE;ROLAP;數據分析
中圖分類號:TP311.1 文獻標志碼:A 文章編號:2095-2945(2018)11-0055-02
Abstract: Through the research and application of the data self-help analysis platform under the distributed database architecture of an insurance company, this paper puts forward the idea of using distributed MPP database for mass data processing in the self-help analysis system, analyzes the open source distributed database GreenPlum emphatically, and through the function characteristics of ROLAP self-help analysis system, the application suggestions of system deployment are given. The research content has certain practical value to the distributed database in big data decision analysis system landing.
Keywords: distributed database; BIG LAKE; ROLAP; data analysis
1 概述
近幾年,隨著移動互聯網的高速發展,大數據、云計算等新技術的不斷推進,保險公司面臨著海量的數據處理、復雜的數據結構分析、精細化業務需求、平臺能力開放共享等多重壓力,所以需要先進的技術,搭建公司全新的大數據處理平臺及自助分析系統。國內外有一個非常火熱的詞匯“BIG LAKE”(數據湖泊),目的是不需要再對數據像以前那樣經過定制,生成特定的業務報表,而是要保存原始數據,什么時候想分析就從原始數據上直接處理。依托云計算分布式數據庫技術,處理、整合海量數據,實現原始清單粒度的ROLAP技術的自助分析系統,將會極大提高數據挖掘的價值,為企業經營提供決策、營銷、服務建議的支撐工作。
2 云計算下的分布式數據庫
2.1 SQL on Hadoop和MPP技術選型
數據倉庫是數據分析類系統的核心,傳統數倉一般采用完全共享的架構部署,隨著存儲數據的增長,性能負載將急劇增加,導致存儲I/O瓶頸、系統應用加載時間長等問題。作為IT的最新演進成果,大數據分布式數據庫技術已成為一系列可能改變未來生活和企業發展技術的基石,選型上有Hadoop(分布式系統基礎架構)、MPP(Massive Parallel Processing,海量并行處理結構)架構兩種技術架構。這兩種都可處理大規模數據的并行計算,共同之處在于:
(1)存儲數據分布在多個節點服務器上。
(2)支持橫向擴展來提高整個系統的計算能力和存儲容量。
(3)采用分布式并行計算框架。
(4)支持X86開放集群架構。
但在數據存儲、計算方法、效率、功能上,也存在明顯差異:
(1)MPP按照關系數據庫行列表方式存儲數據(有模式),Hadoop按照文件切片方式分布式存儲(無模式)。
(2)數據分布機制不同,MPP采用Hash分布,計算節點和存儲緊密耦合,而Hadoop按照文件切塊后隨機分配,節點和數據無耦合。MPP采用SQL并行查詢計劃,Hadoop采用Mapreduce框架。
(3)MPP數據庫在計算并行度和算法上比Hadoop效率更高且靈活。在同樣的環境下測試對比中,Mapreduce對單表的計算尚可,但對于復雜查詢,如多表關聯等,性能很差。
(4)MPP數據庫采用SQL作為主要交互式語言,SQL語言簡單易學,大幅簡化了數據的操作和交互過程。而對MapReduce編程明顯是困難的,這幾年SQL-on-HADOOP技術大量涌現出來,這些技術包括:Hive、Impala、SPARK SQL等,雖然易用上有所提高,但仍與MPP數據庫有較大差距。SQL-on-Hadoop大多不支持數據局部更新和刪除功能(update/delete),基本上都缺少索引和存儲過程等特征綜上,MPP在更靈活,適合于統計分析一類的業務場景,結合我公司的自助分析系統的應用場景,選用開源的MPP軟件GreenPlum作為系統的分析引擎。
2.2 開源分布式數據庫GreenPlum
GreenPlum(簡稱:GP)數據庫也是關系型數據庫,是由數個獨立的數據庫服務組合的分布式邏輯數據庫,GP于2016年開源。GP的基本組件為Master節點、Segment節點以及它們之間的高速互聯網絡。Master節點是訪問入口,負責處理客戶端的連接和SQL命令入口,在Segment節點之間分配工作負載,整合Segment處理結果并將最終結果呈現給客戶端程序。Segment節點負責數據存儲和查詢,由Master生成執行計劃,處理邏輯數據,并將結果返回至Master,節點間可通過高速互聯網絡進行彼此的數據交互。
GP能夠提升大數據分析的處理能力,關鍵原因有兩點:一是采用MPP并行處理架構,使得對大數據量的處理工作可被分配至多個Segment并行執行,發揮了并行計算的性能優勢;二是采用完全不共享的數據庫體系,使得每個Segment都具有獨立使用的磁盤子系統及數據傳輸通道,數據存取的I/O能力強。
3 ROLAP自助分析系統的規劃與設計
OLAP技術一般分為ROLAP和MLAP兩種,ROLAP技術擴展性更好,可以在不影響模型的情況下無限擴展指標和維度,數據加工負擔小,適合快速迭代的數據分析場景特點。ROLAP自助分析是一種敏捷靈活的分析方法,簡化了用戶對多樣化信息的訪問,為數據分析和挖掘創造了良好的條件。
結合我公司保險大數據的業務場景需求,基于ROLAP的思想,可以將清單粒度的業務指標和維度數據放在分布式GP數據倉庫存儲,同時為用戶提供一個靈活定制的前臺功能,前臺采用B/S架構,展現層采用HTML+CSS+JS等語言開發,服務器端以JAVA、SQL等語言處理業務邏輯及數據的抽取、清洗采用Mybatis技術框架,前后臺獨立開發。
用戶可以對單指標或多指標組合,系統隨之自動生成動態SQL邏輯,利用強大的分布式數據庫GP的并行查詢優勢,快速在前端生成數據分析結果。在設計過程中,為達到最優的效率以及靈活可擴展,我們采用獨創的一指標一事實表的數據存儲模型方式,對查詢接口方面做了大量優化,更是引入Redis緩存數據庫,在數據分析效率方面也是表現極佳。圖2是自助取數分析的邏輯關系圖。
4 結束語
大數據時代,全球數據生產量在高速增長,數據將改變企業的傳統業務模式,對系統提出新的挑戰。傳統數據處理技術在原始清單粒度的數據分析應用中出現了明顯的性能瓶頸,用戶無法靈活自主,快速的獲得想要的信息。而MPP數據庫具有很強的大規模并行數據分析處理能力,能夠解決數據量過大后系統處理能力低效、數據加載耗時較長等問題,因此基于大數據分布式數據庫技術實現ROLAP自助分析,將使我們的業務人員對數據倉庫中的指標和維度進行提取和拖拽分析,3-5分鐘便可以滿足任務數據需求,快速、靈活、敏捷地發現以前無法得到的分析方向,為業務人員開啟了數據世界的自由掘寶之旅,真正實現大數據時代業務數據分析的新模式,最終讓公司在市場競爭中更具活力。
參考文獻:
[1]魏進武,靳淑嫻,張基恒.大數據關鍵技術及運營商落地建議[J].郵電設計技術,2015.
[2]劉瑋.企業的變革思維——大數據時代的來臨[J].辦公自動化,2014.
[3]何清,莊福振.基于云計算的大數據挖掘平臺[J].中興通訊技術,2013.
[4]IT架構設計研究組.大數據時代的IT架構設計[M].北京:電子工業出版社,2014.
[5]薩師煊,王珊.數據庫系統概論[M].北京:高等教育出版社,2010.
[6]Hive DB. http://www.hivedb.org[EB/OL].
[7]邵佩英.分布式數據庫系統及其應用[M].科學出版社,2005.