戴昭穎,尹 濤,范文娟
(首鋼京唐鋼鐵聯(lián)合有限責(zé)任公司 信息計量部,河北 唐山 063200)
目前市場上的數(shù)據(jù)倉庫產(chǎn)品多種多樣,這些數(shù)據(jù)倉庫產(chǎn)品也都有自己的特點。阿里云的Maxcompute,提供表搜索、數(shù)據(jù)查詢功能,用戶可以輕松讀取分析數(shù)據(jù),可以直接擴(kuò)展到EB級別數(shù)據(jù),擴(kuò)展規(guī)模不受限制,但是一整套產(chǎn)品都是阿里自研開發(fā)。IBM DB2 DPF的數(shù)據(jù)庫分區(qū)特性體現(xiàn)在數(shù)據(jù)庫分布在多個服務(wù)器上,非共享體系架構(gòu),工作負(fù)載分散在所有結(jié)點,管理節(jié)點是其中的一個計算節(jié)點,優(yōu)點就是從傳統(tǒng)數(shù)據(jù)庫OLTP轉(zhuǎn)型到OLAP上,與傳統(tǒng)數(shù)據(jù)庫語言能夠很好地兼容。Greenplum DB是基于X86平臺的完全無共享的并行處理架構(gòu),管理節(jié)點和計算節(jié)點是嚴(yán)格分開的,增加節(jié)點可線性增加存儲、查詢和加載性能,支持在線擴(kuò)容。百度云的Palo提供的PB級別的MPP數(shù)據(jù)倉庫服務(wù),以較低的成本提供在大數(shù)據(jù)集上的高性能分析和報表查詢功能,它不是面向OLTP的數(shù)據(jù)庫產(chǎn)品,而是一款面向OLAP的數(shù)據(jù)庫產(chǎn)品,和Palo功能定位比較相似的產(chǎn)品包括Greenplum、Vertica、Exadata等商業(yè)數(shù)據(jù)倉庫系統(tǒng)和 Amazon RedShift、GoogleBigQuery等云服務(wù)能夠快速創(chuàng)建、管理、調(diào)整集群,導(dǎo)入海量數(shù)據(jù)提供高可靠存儲,提供與MySQL完全兼容的接口,與Qlik Sense等BI工具無縫集成,但是支持的SQL查詢復(fù)雜程度差于DB2 DPF和Greenplum DB。
除了以上MPP架構(gòu)的數(shù)據(jù)倉庫外還有SAP的BO,它是一個集查詢、報表和OLAP技術(shù)為一身的智能決策支持系統(tǒng),使用獨特的“語義層”技術(shù)和“動態(tài)微立方”技術(shù)來表示數(shù)據(jù)庫中的多維數(shù)據(jù),具有較好的查詢和報表功能,提供鉆?。―rill)等多維分析技術(shù),支持多種平臺和多種數(shù)據(jù)庫,同時它還支持Internet/Intranet,可以通過WWW進(jìn)行查詢、報表和分析決策。Oracle公司也有自己的數(shù)據(jù)倉庫解決方案,它具有多用戶數(shù)據(jù)倉庫管理能力,多種分區(qū)方式,較強的與OLAP工具的交互能力,及快速和便捷的數(shù)據(jù)移動機制等特性,Oracle Warehouse Builder集成了數(shù)據(jù)建模、數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)移和裝載、聚合、元數(shù)據(jù)的管理等功能,但是Oracle的數(shù)據(jù)轉(zhuǎn)移工具需手工編寫SQL腳本,在處理復(fù)雜的數(shù)據(jù)轉(zhuǎn)換需求時困難很多。Oracle的前端工具易用性較差,需較多地依賴第三方產(chǎn)品。此外,我們最為熟知的Microsoft公司的SQL Server 2000已經(jīng)在性能和可擴(kuò)展性方面確立了世界領(lǐng)先的地位,是一套完全的數(shù)據(jù)庫和數(shù)據(jù)分析解決方案,使用戶可以快速創(chuàng)建下一代的可擴(kuò)展電子商務(wù)和數(shù)據(jù)倉庫解決方案。Microsoft將OLAP功能集成到Microsoft SQL Server中,提供可擴(kuò)充的基于COM的OLAP接口,Microsoft Office 2000套件中的Access和Excel可以作為數(shù)據(jù)展現(xiàn)工具,另外SQL Server還支持第三方數(shù)據(jù)展現(xiàn)工具,Microsoft Repository存儲包括元數(shù)據(jù)在內(nèi)的所有中間數(shù)據(jù),SQL Server OLAP Services支持在線分析處理,PivotTable Services提供客戶端OLAP數(shù)據(jù)訪問功能,通過這一服務(wù),開發(fā)人員可以用VB或其他語言開發(fā)用戶前端數(shù)據(jù)展現(xiàn)程序,PivotTable Services還允許在本地客戶機上存儲數(shù)據(jù)。但值得注意的是,數(shù)據(jù)倉庫是Microsoft公司剛剛進(jìn)入的一個全新領(lǐng)域,與該公司的傳統(tǒng)產(chǎn)品差別較大,同時,Microsoft也缺少在數(shù)據(jù)倉庫實施方面的咨詢經(jīng)驗。
經(jīng)過初步性能分析,我們發(fā)現(xiàn)Greenplum DB和IBM DB2 DPF比較適合作為本公司數(shù)據(jù)倉庫產(chǎn)品支持經(jīng)營決策分析,因此,下面只需要集中對Greenplum DB和IBM DB2 DPF兩款產(chǎn)品進(jìn)行性能測試。
首先要準(zhǔn)備測試數(shù)據(jù),可以從ERP系統(tǒng)導(dǎo)出一張表MSEG,截取其中9個字段,并將每個字段之間用“|”隔開,組成了一個大小為23.2G的文件mseg.txt。然后分別在兩個數(shù)據(jù)倉庫中創(chuàng)建新的數(shù)據(jù)庫表MSEG,如圖1所示。此外,要將mseg.txt中的內(nèi)容導(dǎo)入到新的數(shù)據(jù)庫表中,以備測試。
圖1 數(shù)據(jù)庫表MSEG的表結(jié)構(gòu)
在數(shù)據(jù)加載與壓縮比的測試方面,可以看出Greenplum DB加載耗時為234.1s,DB2 DPF加載耗時為190.2s,二者都為并行加載方式,DB2 DPF要優(yōu)于Greenplum DB;相同大小的文件分別導(dǎo)入到兩個數(shù)據(jù)庫后,都默認(rèn)為行式壓縮,Greenplum DB的壓縮比為 3.01,DB2 DPF 壓縮比為 2.94,Greenplum DB 略優(yōu)于DB2 DPF。在數(shù)據(jù)的查詢性能測試方面,展開了四個場景的測試,Greenplum DB的查詢速度依次為3.53s、9.17s、14.84s,3.7s,而DB2 DPF相同的場景查詢速度依次為21.63s,15.66s,44.36s,12.28s,Greenplum DB的查詢速度明顯優(yōu)于DBZ DPF。在數(shù)據(jù)的操作性能測試方面,Greenplum DB 為 3.86s,DPF為153.16s,Greenplum DB的操作性能更是優(yōu)于DB2 DPF,如圖2所示。
圖2 Greenplum DB和DB2 DPF性能測試對比
表索引、表分區(qū)、內(nèi)置分析功能、性能線性擴(kuò)展、與ETL工具集成、與BI工具集成、與數(shù)據(jù)挖掘工具集成方面,二者性能相似;在對大數(shù)據(jù)的支持能力方面,Greenplum DB要優(yōu)于DB2 DPF,因為DPF僅支持?jǐn)?shù)據(jù)文件批量導(dǎo)入、導(dǎo)出,而Greenplum DB支持 SQL語句直接讀寫 HDFS、Hive、HBase等多種格式Hadoop數(shù)據(jù),此外Db2引擎內(nèi)部沒有MapReduce,但Greenplum支持MapRedurce計算框架,可以直接運行MapRedurce程序;產(chǎn)品的友好性方面,兩者產(chǎn)品都很成熟,編程開發(fā)和用戶訪問以SQL為主,對人員要求低。但DB2 DPF性能調(diào)優(yōu)復(fù)雜,體系搭建有一定難度;成本方面,DPF比Greenplum在初期投入和后期擴(kuò)容成本都會高一些。綜合性能對比如表1。
表1 DB2 DPF和Greenplum DB綜合性能對比表
MPP架構(gòu)的新型數(shù)據(jù)庫集群,重點面向行業(yè)大數(shù)據(jù),采用Shared Nothing架構(gòu),通過列存儲、粗粒度索引等多項大數(shù)據(jù)處理技術(shù),再結(jié)合MPP架構(gòu)高效的分布式計算模式,完成對分析類應(yīng)用的支撐,運行環(huán)境多為低成本的PC Server,具有高性能和高擴(kuò)展性的特點,在企業(yè)分析類應(yīng)用領(lǐng)域獲得極其廣泛的應(yīng)用。MPP產(chǎn)品可以有效支撐PB級別的結(jié)構(gòu)化數(shù)據(jù)分析,這是傳統(tǒng)數(shù)據(jù)庫技術(shù)無法勝任的。對于企業(yè)新一代的數(shù)據(jù)倉庫和結(jié)構(gòu)化數(shù)據(jù)分析,目前最佳選擇是MPP架構(gòu)的數(shù)據(jù)倉庫支撐經(jīng)營決策分析。
由以上探索實踐可以看出,作為企業(yè)級數(shù)據(jù)倉庫,Greenplum DB的各方面指標(biāo)普遍優(yōu)于DB2 DPF。此外,和目前比較流行的大數(shù)據(jù)Hadoop平臺的數(shù)據(jù)倉庫對比,Greenplum DB的性能在數(shù)據(jù)量為TB級別時表現(xiàn)非常優(yōu)秀,單機性能要比Hadoop快好幾倍。它是基于PostgreSQL的一個完善的數(shù)據(jù)庫,在功能和語法上都要比Hadoop上的SQL引擎Hive好用很多,對于普通用戶來說更加容易上手。Greenplum有著完善的工具,相比Hive,整個體系都比較完善,不需要像Hive一樣花太多的時間和精力進(jìn)行改造,非常適合作為經(jīng)營決策的解決方案。
主要參考文獻(xiàn)
[1]王雪迎.Hadoop 構(gòu)建數(shù)據(jù)倉庫實踐[M].北京:清華大學(xué)出版社,2017.
[2][加]韓家煒.數(shù)據(jù)挖掘:概念與技術(shù)[M].北京:機械工業(yè)出版社,2012.