戴昭穎,尹 濤,范文娟
(首鋼京唐鋼鐵聯合有限責任公司 信息計量部,河北 唐山 063200)
目前市場上的數據倉庫產品多種多樣,這些數據倉庫產品也都有自己的特點。阿里云的Maxcompute,提供表搜索、數據查詢功能,用戶可以輕松讀取分析數據,可以直接擴展到EB級別數據,擴展規模不受限制,但是一整套產品都是阿里自研開發。IBM DB2 DPF的數據庫分區特性體現在數據庫分布在多個服務器上,非共享體系架構,工作負載分散在所有結點,管理節點是其中的一個計算節點,優點就是從傳統數據庫OLTP轉型到OLAP上,與傳統數據庫語言能夠很好地兼容。Greenplum DB是基于X86平臺的完全無共享的并行處理架構,管理節點和計算節點是嚴格分開的,增加節點可線性增加存儲、查詢和加載性能,支持在線擴容。百度云的Palo提供的PB級別的MPP數據倉庫服務,以較低的成本提供在大數據集上的高性能分析和報表查詢功能,它不是面向OLTP的數據庫產品,而是一款面向OLAP的數據庫產品,和Palo功能定位比較相似的產品包括Greenplum、Vertica、Exadata等商業數據倉庫系統和 Amazon RedShift、GoogleBigQuery等云服務能夠快速創建、管理、調整集群,導入海量數據提供高可靠存儲,提供與MySQL完全兼容的接口,與Qlik Sense等BI工具無縫集成,但是支持的SQL查詢復雜程度差于DB2 DPF和Greenplum DB。
除了以上MPP架構的數據倉庫外還有SAP的BO,它是一個集查詢、報表和OLAP技術為一身的智能決策支持系統,使用獨特的“語義層”技術和“動態微立方”技術來表示數據庫中的多維數據,具有較好的查詢和報表功能,提供鉆取(Drill)等多維分析技術,支持多種平臺和多種數據庫,同時它還支持Internet/Intranet,可以通過WWW進行查詢、報表和分析決策。Oracle公司也有自己的數據倉庫解決方案,它具有多用戶數據倉庫管理能力,多種分區方式,較強的與OLAP工具的交互能力,及快速和便捷的數據移動機制等特性,Oracle Warehouse Builder集成了數據建模、數據抽取、數據轉移和裝載、聚合、元數據的管理等功能,但是Oracle的數據轉移工具需手工編寫SQL腳本,在處理復雜的數據轉換需求時困難很多。Oracle的前端工具易用性較差,需較多地依賴第三方產品。此外,我們最為熟知的Microsoft公司的SQL Server 2000已經在性能和可擴展性方面確立了世界領先的地位,是一套完全的數據庫和數據分析解決方案,使用戶可以快速創建下一代的可擴展電子商務和數據倉庫解決方案。Microsoft將OLAP功能集成到Microsoft SQL Server中,提供可擴充的基于COM的OLAP接口,Microsoft Office 2000套件中的Access和Excel可以作為數據展現工具,另外SQL Server還支持第三方數據展現工具,Microsoft Repository存儲包括元數據在內的所有中間數據,SQL Server OLAP Services支持在線分析處理,PivotTable Services提供客戶端OLAP數據訪問功能,通過這一服務,開發人員可以用VB或其他語言開發用戶前端數據展現程序,PivotTable Services還允許在本地客戶機上存儲數據。但值得注意的是,數據倉庫是Microsoft公司剛剛進入的一個全新領域,與該公司的傳統產品差別較大,同時,Microsoft也缺少在數據倉庫實施方面的咨詢經驗。
經過初步性能分析,我們發現Greenplum DB和IBM DB2 DPF比較適合作為本公司數據倉庫產品支持經營決策分析,因此,下面只需要集中對Greenplum DB和IBM DB2 DPF兩款產品進行性能測試。
首先要準備測試數據,可以從ERP系統導出一張表MSEG,截取其中9個字段,并將每個字段之間用“|”隔開,組成了一個大小為23.2G的文件mseg.txt。然后分別在兩個數據倉庫中創建新的數據庫表MSEG,如圖1所示。此外,要將mseg.txt中的內容導入到新的數據庫表中,以備測試。

圖1 數據庫表MSEG的表結構
在數據加載與壓縮比的測試方面,可以看出Greenplum DB加載耗時為234.1s,DB2 DPF加載耗時為190.2s,二者都為并行加載方式,DB2 DPF要優于Greenplum DB;相同大小的文件分別導入到兩個數據庫后,都默認為行式壓縮,Greenplum DB的壓縮比為 3.01,DB2 DPF 壓縮比為 2.94,Greenplum DB 略優于DB2 DPF。在數據的查詢性能測試方面,展開了四個場景的測試,Greenplum DB的查詢速度依次為3.53s、9.17s、14.84s,3.7s,而DB2 DPF相同的場景查詢速度依次為21.63s,15.66s,44.36s,12.28s,Greenplum DB的查詢速度明顯優于DBZ DPF。在數據的操作性能測試方面,Greenplum DB 為 3.86s,DPF為153.16s,Greenplum DB的操作性能更是優于DB2 DPF,如圖2所示。

圖2 Greenplum DB和DB2 DPF性能測試對比
表索引、表分區、內置分析功能、性能線性擴展、與ETL工具集成、與BI工具集成、與數據挖掘工具集成方面,二者性能相似;在對大數據的支持能力方面,Greenplum DB要優于DB2 DPF,因為DPF僅支持數據文件批量導入、導出,而Greenplum DB支持 SQL語句直接讀寫 HDFS、Hive、HBase等多種格式Hadoop數據,此外Db2引擎內部沒有MapReduce,但Greenplum支持MapRedurce計算框架,可以直接運行MapRedurce程序;產品的友好性方面,兩者產品都很成熟,編程開發和用戶訪問以SQL為主,對人員要求低。但DB2 DPF性能調優復雜,體系搭建有一定難度;成本方面,DPF比Greenplum在初期投入和后期擴容成本都會高一些。綜合性能對比如表1。

表1 DB2 DPF和Greenplum DB綜合性能對比表
MPP架構的新型數據庫集群,重點面向行業大數據,采用Shared Nothing架構,通過列存儲、粗粒度索引等多項大數據處理技術,再結合MPP架構高效的分布式計算模式,完成對分析類應用的支撐,運行環境多為低成本的PC Server,具有高性能和高擴展性的特點,在企業分析類應用領域獲得極其廣泛的應用。MPP產品可以有效支撐PB級別的結構化數據分析,這是傳統數據庫技術無法勝任的。對于企業新一代的數據倉庫和結構化數據分析,目前最佳選擇是MPP架構的數據倉庫支撐經營決策分析。
由以上探索實踐可以看出,作為企業級數據倉庫,Greenplum DB的各方面指標普遍優于DB2 DPF。此外,和目前比較流行的大數據Hadoop平臺的數據倉庫對比,Greenplum DB的性能在數據量為TB級別時表現非常優秀,單機性能要比Hadoop快好幾倍。它是基于PostgreSQL的一個完善的數據庫,在功能和語法上都要比Hadoop上的SQL引擎Hive好用很多,對于普通用戶來說更加容易上手。Greenplum有著完善的工具,相比Hive,整個體系都比較完善,不需要像Hive一樣花太多的時間和精力進行改造,非常適合作為經營決策的解決方案。
主要參考文獻
[1]王雪迎.Hadoop 構建數據倉庫實踐[M].北京:清華大學出版社,2017.
[2][加]韓家煒.數據挖掘:概念與技術[M].北京:機械工業出版社,2012.