邱紅飛,李先緒,黃春光
(中國電信股份有限公司廣東研究院 廣州 510630)
對于數(shù)據(jù)倉庫而言,隨著企業(yè)數(shù)據(jù)量的不斷膨脹,存儲成本不斷增加,數(shù)據(jù)查詢性能不斷降低。增加存儲,對性能已經(jīng)沒有明顯的提升,卻導(dǎo)致成本直線上升,目前技術(shù)體系已經(jīng)不能滿足要求,必須采取新的解決方案。
針對OLAP設(shè)計的云計算數(shù)據(jù)庫,即具備云計算特征的數(shù)據(jù)倉庫產(chǎn)品,可以很好地解決這個問題。首先是存儲,云計算數(shù)據(jù)庫使用shared-nothing架構(gòu),不會像shared-disk架構(gòu)一樣存儲的I/O是瓶頸;其次是普通的服務(wù)器性能,已經(jīng)跟不上數(shù)據(jù)的增長速度,考慮到造價和技術(shù)問題,將多臺普通服務(wù)器綜合在一起,從而用少量的金錢實現(xiàn)高性能機器的服務(wù);再次是節(jié)點線性擴展的特性,由一個主節(jié)點協(xié)調(diào)各個節(jié)點的工作,將存儲和查詢的數(shù)據(jù)分布到各個節(jié)點的機器上,同時支持線性擴展。目前主流的數(shù)據(jù)倉庫產(chǎn)品都采用具有這種特征的產(chǎn)品技術(shù)架構(gòu)[1]。
TPC-H(商業(yè)智能計算測試)是數(shù)據(jù)倉庫產(chǎn)品的重要測試標(biāo)準(zhǔn)之一,主要用來模擬真實的商業(yè)應(yīng)用環(huán)境。TPC-H評估標(biāo)準(zhǔn)中的數(shù)據(jù)模型及數(shù)據(jù)量都不太符合電信OLAP應(yīng)用要求,且在TPC網(wǎng)站上未查詢到各廠商產(chǎn)品的TPC-H測試結(jié)果,因此其性能指標(biāo)不能作為電信現(xiàn)網(wǎng)應(yīng)用評估的參考標(biāo)準(zhǔn)。
本文旨在研究數(shù)據(jù)倉庫產(chǎn)品的測試技術(shù)標(biāo)準(zhǔn)和評估方法,并通過對各種類型和商家的產(chǎn)品進行測試和評估,從而建立一套完整的數(shù)據(jù)倉庫產(chǎn)品的測試標(biāo)準(zhǔn),能夠衡量不同類型數(shù)據(jù)倉庫產(chǎn)品的處理能力。
shared-nothing和shared-disk是兩種主要的數(shù)據(jù)庫技術(shù)架構(gòu),具體介紹如下。
(1)shared-nothing 架構(gòu)
shared-nothing架構(gòu)是一種分布式計算架構(gòu),每一個節(jié)點都是獨立、自給的,物理資源不進行共享,整個系統(tǒng)都不存在單點競爭。最特別的是,所有節(jié)點都不互相共享內(nèi)存及硬盤存儲?;炯軜?gòu)如圖1(a)所示,當(dāng)相關(guān)數(shù)據(jù)量很大而應(yīng)用代碼并發(fā)量很小時,shared-nothing架構(gòu)更加適合這種典型的OLAP應(yīng)用。由于數(shù)據(jù)非共享,當(dāng)節(jié)點出現(xiàn)故障時,其他節(jié)點要接管發(fā)生故障的節(jié)點的數(shù)據(jù)。其主要技術(shù)特點是大數(shù)據(jù)量處理、低并發(fā)、低可用性。目前Teradata、Greenplum、Netezza、Vertical等的數(shù)據(jù)倉庫產(chǎn)品采用的都是這種技術(shù)架構(gòu)[2]。
圖1 數(shù)據(jù)庫架構(gòu)簡析
shared-nothing架構(gòu)還可以由廉價的普通PC和網(wǎng)絡(luò)硬件搭建,Google、Amazon、Yahoo和 MSN都證明了這一點。據(jù)報道,Google的搜索支撐集群就是由上萬臺普通的PC充當(dāng)shared-nothing架構(gòu)的節(jié)點。
(2)shared-disk 架構(gòu)
shared-disk架構(gòu)的每個獨立節(jié)點擁有自己的處理器和內(nèi)存,這些節(jié)點接入同樣的物理存儲序列,結(jié)構(gòu)如圖1(b)所示。當(dāng)應(yīng)用代碼量很大、高并發(fā)、相關(guān)數(shù)據(jù)量比較小時,shared-disk架構(gòu)更加適合這種典型的OLTP應(yīng)用。由于數(shù)據(jù)共享,當(dāng)節(jié)點出現(xiàn)故障時,可以透明地切換到其他數(shù)據(jù)庫節(jié)點運行作業(yè)。其主要特點是高并發(fā)、高可用性。目前Exadata提供的一種混合式的數(shù)據(jù)庫架構(gòu),即shared-nothing與shared-disk架構(gòu)的結(jié)合,能有效解決兩者的沖突,吸取兩種架構(gòu)的長處,既可以滿足OLTP的高并發(fā)、高可用特點,又可以滿足OLAP的大數(shù)據(jù)量處理要求[2]。
云計算數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫的主要優(yōu)勢在可擴展性上,傳統(tǒng)的數(shù)據(jù)倉庫采用shared-disk架構(gòu),基于令牌傳輸模型的限制,已經(jīng)不能靠增加節(jié)點數(shù)目及存儲提高數(shù)據(jù)庫的查詢處理能力;shared-nothing架構(gòu)基于數(shù)據(jù)切分策略,數(shù)據(jù)庫的可擴展性隨著節(jié)點增加??偟膩碚f,sharednothing架構(gòu)相比shared-disk架構(gòu),其出色的可擴展性占據(jù)了明顯的優(yōu)勢,可以用更多的節(jié)點數(shù)支撐很大的數(shù)據(jù)量處理[1]。
在云計算數(shù)據(jù)庫產(chǎn)品測試中,除了需要考慮產(chǎn)品的基準(zhǔn)測試處理能力外,還需要測試驗證其可擴展性??蓴U展性測試重點考察數(shù)據(jù)倉庫產(chǎn)品動態(tài)變更集群規(guī)模的能力,并測試系統(tǒng)性能是否隨著集群節(jié)點的擴展而線性擴展。
云計算數(shù)據(jù)庫產(chǎn)品測試技術(shù)標(biāo)準(zhǔn)的目的是全面考察各類數(shù)據(jù)倉庫產(chǎn)品的功能、性能、可靠性、可擴展性和穩(wěn)定性等。功能測試是按照現(xiàn)網(wǎng)系統(tǒng)實際需求測試數(shù)據(jù)倉庫產(chǎn)品需滿足的功能點;性能測試在參考現(xiàn)網(wǎng)實際加載、查詢和分析生產(chǎn)過程的基礎(chǔ)上,進行邏輯抽象形成標(biāo)準(zhǔn)性能測試用例;可靠性測試重點考察數(shù)據(jù)倉庫產(chǎn)品的故障恢復(fù)能力,通過模擬不同粒度和不同層面的故障,檢驗產(chǎn)品的高可用性;穩(wěn)定性測試主要驗證數(shù)據(jù)倉庫產(chǎn)品在大業(yè)務(wù)量背景下持續(xù)穩(wěn)定運行的能力。
(1)復(fù)雜查詢測試項
數(shù)據(jù)倉庫在應(yīng)用過程中經(jīng)常進行大表關(guān)聯(lián)和多表關(guān)聯(lián)查詢操作,但效率很低,不得不進行多表拆分處理,此性能對數(shù)據(jù)倉庫來說非常重要,通過此項測試,可以評價數(shù)據(jù)庫多表關(guān)聯(lián)查詢性能。多維表與事實表的關(guān)聯(lián),是數(shù)據(jù)倉庫中經(jīng)常用到的操作,該案例測試數(shù)據(jù)倉庫中多維表與事實表間關(guān)聯(lián)或連接的速度,提供多張大表(數(shù)量級包含億級和千萬級)和部分維表進行關(guān)聯(lián)查詢,主要測試案例包括以下3種:
·全表掃描;
·大表小表關(guān)聯(lián)之后匯總,再關(guān)聯(lián)大表;
·大表與多張小表關(guān)聯(lián)。
(2)即席查詢測試項
基于已有的數(shù)據(jù)模型,通常會有一些新的匯總或查詢需求,數(shù)據(jù)庫不會根據(jù)這些新的需求調(diào)整相關(guān)表的邏輯、物理設(shè)計,通常也不會創(chuàng)建新的數(shù)據(jù)庫對象以適應(yīng)新的需求。數(shù)據(jù)庫平臺對這種即席查詢的處理能力,直接影響用戶對系統(tǒng)的評價。
(3)數(shù)據(jù)導(dǎo)出測試項
數(shù)據(jù)倉庫中存儲了大量數(shù)據(jù),經(jīng)常需要按照指定格式導(dǎo)出生成文件,提供給外圍系統(tǒng),數(shù)據(jù)導(dǎo)出能力也是數(shù)據(jù)倉庫的重要指標(biāo),通過數(shù)據(jù)導(dǎo)出測試,驗證數(shù)據(jù)庫的導(dǎo)出能力。
(4)數(shù)據(jù)加載測試項
數(shù)據(jù)倉庫構(gòu)建過程中經(jīng)常需要把大量的數(shù)據(jù)文件加載到數(shù)據(jù)庫中,在數(shù)據(jù)加載任務(wù)較多時,加載性能就會變得比較低下,通過此項測試,了解數(shù)據(jù)庫在多任務(wù)并行加載情況下的效率,主要包括以下3種:
·存量數(shù)據(jù)裝載能力;
·空表數(shù)據(jù)裝載能力;
·增量數(shù)據(jù)裝載能力。
(5)混合負載場景測試項
數(shù)據(jù)倉庫在數(shù)據(jù)處理過程中,會同時進行裝載、計算、查詢、導(dǎo)出等綜合操作,通過該項測試,驗證數(shù)據(jù)倉庫各項操作的綜合處理性能。測試中數(shù)據(jù)倉庫同時運行下列測試案例:
·多表并發(fā)加載;
·數(shù)據(jù)導(dǎo)出(多個文件,每個文件大小基本一致);
·復(fù)雜數(shù)據(jù)查詢1(并行20個);
·復(fù)雜數(shù)據(jù)查詢2(并行20個)。
(1)管理負載
數(shù)據(jù)倉庫需要具備對不同操作類型、應(yīng)用以及用戶請求進行優(yōu)先級調(diào)度的能力,以保證重要的操作類型、應(yīng)用以及用戶請求能夠獲得更多的系統(tǒng)資源,優(yōu)先完成。本項測試的目的是考查數(shù)據(jù)倉庫平臺實現(xiàn)資源調(diào)度的方式和實現(xiàn)的效果。
(2)高可用測試
主要測試驗證常見故障情況下,數(shù)據(jù)庫系統(tǒng)的可用性,模擬測試的故障包括網(wǎng)絡(luò)連接異常、磁盤機故障、節(jié)點級故障,其中節(jié)點級故障包含管理節(jié)點和計算節(jié)點故障兩類。
(3)可擴展測試
主要通過對數(shù)據(jù)倉庫計算節(jié)點進行擴展,考察其擴展能力,包括擴展的操作方法、步驟、資源開銷、擴展后的性能增長情況等,同時考察系統(tǒng)對計算節(jié)點進行收縮(減少)的能力。
(4)穩(wěn)定性測試
數(shù)據(jù)倉庫經(jīng)常會進行多任務(wù)大數(shù)據(jù)量數(shù)據(jù)的加載、查詢和計算操作,多任務(wù)情況下的穩(wěn)定性對數(shù)據(jù)倉庫來說也是至關(guān)重要的,通過此項測試,驗證數(shù)據(jù)庫在長時間運行時的穩(wěn)定性。
數(shù)據(jù)倉庫產(chǎn)品解決方案可分為一體機和軟硬分離兩種。一體機產(chǎn)品集成了服務(wù)器、存儲和軟件,以整機形式向客戶交付;軟硬分離產(chǎn)品廠商提供的軟件部署在通用硬件平臺上,其中存儲又分為使用服務(wù)器本地存儲和集中陣列存儲兩種。為滿足不同架構(gòu)數(shù)據(jù)倉庫產(chǎn)品的測試需求,測試環(huán)境分為如下3種組網(wǎng)部署架構(gòu)。
·測試環(huán)境1:通用x86架構(gòu)服務(wù)器集群,使用服務(wù)器本地硬盤,如圖2所示,適用于支持x86通用硬件shared-nothing架構(gòu)的MPP(大規(guī)模并行處理)數(shù)據(jù)倉庫軟件,如Greenplum、HPVertica等技術(shù)架構(gòu)的測試。
圖2 通用x86架構(gòu)服務(wù)器集群測試環(huán)境組網(wǎng)拓撲
·測試環(huán)境2:通用x86架構(gòu)服務(wù)器集群,使用SAN存儲陣列,如圖2所示,適用于支持x86通用硬件shared-disk架構(gòu)的并行處理數(shù)據(jù)倉庫軟件,如南大通用Gbase等技術(shù)架構(gòu)的測試。
·測試環(huán)境3:專用數(shù)據(jù)庫一體機環(huán)境,如圖3所示,如 Teradata、Exadata、Netezza和 PDW 等一體機產(chǎn)品的測試。
圖3 專用數(shù)據(jù)庫一體機測試環(huán)境組網(wǎng)拓撲
其中,基準(zhǔn)測試單元提供功能測試、性能測試、高可用測試、壓力測試;擴展測試單元由基準(zhǔn)測試單元的一半硬件配置相同的服務(wù)器構(gòu)成,服務(wù)器的數(shù)量設(shè)定應(yīng)能充分體現(xiàn)擴展性測試性能差別;接口服務(wù)器設(shè)備提供原數(shù)據(jù)文件的存放,可用于直接或者間接的數(shù)據(jù)加載,目的是提供“性能測試”中“數(shù)據(jù)加載測試”和“數(shù)據(jù)導(dǎo)出測試”功能。為保證性能測試中數(shù)據(jù)加載測試的需求,此設(shè)備應(yīng)提供充分的文件系統(tǒng)的I/O帶寬,建議此服務(wù)器使用高速存儲陣列。
由于數(shù)據(jù)倉庫產(chǎn)品的性能測試指標(biāo)包含很多項,如數(shù)據(jù)裝載、復(fù)雜數(shù)據(jù)查詢、混合負載處理能力、數(shù)據(jù)導(dǎo)出等。由于每個指標(biāo)都是不可或缺的測試項目,要綜合評定一個數(shù)據(jù)倉庫產(chǎn)品的處理能力,就要綜合考慮與性能相關(guān)的評測指標(biāo)。本文提出給每個測試項設(shè)定指標(biāo)權(quán)重,在權(quán)重的基礎(chǔ)上,再把各個測試指標(biāo)單項累加,從而綜合考慮一個產(chǎn)品的處理能力。
(1)權(quán)重的設(shè)置
各個性能指標(biāo)項權(quán)重的設(shè)置沒有一個固定的標(biāo)準(zhǔn),可以根據(jù)電信的數(shù)據(jù)倉庫系統(tǒng)在一個月中對各個性能測試項目資源占比負載情況進行大概設(shè)置。資源占比是指負載項占用設(shè)備處理能力的時間比,可以在服務(wù)器后臺通過分析處理進程獲得。只要基本符合現(xiàn)網(wǎng)生產(chǎn)系統(tǒng)的應(yīng)用情況即可,見表1。
表1 測試項權(quán)重設(shè)置情況示例
(2)產(chǎn)品的整體處理能力評估方法
在評估中采用百分制表示產(chǎn)品的處理能力,得分設(shè)計最高為100分,單項加權(quán)計算。
單個測試項評估模型:N單項=Tf/T×n,N總=N單項1+N單項2+N單項3+…,其中,N總為最后得分,n為分值權(quán)重;T是整個場景響應(yīng)時間(根據(jù)線性度換算為設(shè)備最小配置或節(jié)點的響應(yīng)時間);Tf指在相同測試環(huán)境下,某廠商能提供的最快響應(yīng)時間;某些測試項小于或等于電信規(guī)范指標(biāo),定義響應(yīng)時間的得分為滿分。
(3)單個測試項的處理能力評估示例
如“復(fù)雜查詢”測試案例的權(quán)重為30,查詢響應(yīng)時間為:產(chǎn)品 1為 4s,產(chǎn)品 2為 5s,產(chǎn)品 3為 3s,則 Tf取 3s,各廠商測試項得分如下。
·產(chǎn)品 1:3/4×5=3.875。
·產(chǎn)品 2:3/5×5=3.2。
·產(chǎn)品 3:3/3×5=5(產(chǎn)品 3 滿分)。
(1)性能基準(zhǔn)測試結(jié)果
對測試環(huán)境1的通用x86架構(gòu)服務(wù)器集群測試環(huán)境(本地服務(wù)器存儲)、測試環(huán)境2的通用x86架構(gòu)服務(wù)器集群(使用SAN存儲陣列)產(chǎn)品和測試環(huán)境3的專用數(shù)據(jù)庫一體機的某一產(chǎn)品進行性能基準(zhǔn)測試,測試結(jié)果見表2。
表2 性能基準(zhǔn)測試結(jié)果示例
在性能基準(zhǔn)方面,在測試環(huán)境3中,由于使用專用的一體機,在性能測試中總體處理能力比通用x86架構(gòu)服務(wù)器集群測試環(huán)境有優(yōu)勢。需要說明的是,雖然整體性能出色,但在數(shù)據(jù)更新、數(shù)據(jù)裝載和導(dǎo)入方面的性能與通用x86架構(gòu)服務(wù)器集群測試環(huán)境差距不大。
(2)擴展性性能測試結(jié)果
以測試環(huán)境1的通用x86架構(gòu)服務(wù)器集群測試環(huán)境為例,進行擴展性性能測試,測試結(jié)果如圖4所示。
圖4 擴展性測試結(jié)果示例
可以看出,采用shared-nothing架構(gòu)的系統(tǒng)具有出色的擴展性能,只需要向系統(tǒng)內(nèi)添加新的普通節(jié)點就能夠?qū)崿F(xiàn)查詢性能接近線性的有效提升,這種特性能夠幫助數(shù)據(jù)庫系統(tǒng)較好地適應(yīng)海量數(shù)據(jù)分析處理場景下查詢性能要求飛速提升的情況,系統(tǒng)只是根據(jù)性能要求添加處理節(jié)點就可以滿足查詢性能提升的要求。需要說明的是,由于數(shù)據(jù)裝載受限于文件服務(wù)器的能力,其性能并沒有線性增加。
TPC-H這一測試標(biāo)準(zhǔn)可以全真模擬商業(yè)應(yīng)用環(huán)境的性能,在商業(yè)的應(yīng)用環(huán)境中具有一定的適用性,而電信企業(yè)的數(shù)據(jù)倉庫系統(tǒng)工作負載類型與商業(yè)應(yīng)用環(huán)境區(qū)別較大。針對這些問題,設(shè)計了測試標(biāo)準(zhǔn)和評估方法,該設(shè)計與企業(yè)應(yīng)用系統(tǒng)相結(jié)合并得到應(yīng)用,具有很高的可靠性和效率。本文希望建立一套完整的云計算數(shù)據(jù)庫產(chǎn)品測試標(biāo)準(zhǔn),能夠衡量和評估不同數(shù)據(jù)倉庫產(chǎn)品的處理能力。
1 龍源.基于shared-nothing的分布式訪問層研究.南京郵電大學(xué)碩士學(xué)位論文,2009
2 陳全.云計算及其關(guān)鍵技術(shù).計算機應(yīng)用,2009,29(9)
3 張強.云計算時代的軟件復(fù)用.電腦知識與應(yīng)用,2008,4(8)
4 尹國定.云計算——實現(xiàn)概念計算的方法.東南大學(xué)學(xué)報,2003,4(7)
5 陶彩霞.云計算在電信支撐系統(tǒng)領(lǐng)域的應(yīng)用分析.電信科學(xué),2010,26(10)
6 張云勇,陳清金.云計算安全關(guān)鍵技術(shù)分析.電信科學(xué),2010,26(9)
7 詹義,段偉希,胡曉彥.云計算在電信IT支撐系統(tǒng)中的應(yīng)用.電信科學(xué),2011,27(11)