隨著開(kāi)源Hapdoop、Map/Reduce、Spark、HDFS、HBASE等技術(shù)的商用化,大數(shù)據(jù)管理技術(shù)得到了突飛猛進(jìn)的發(fā)展。一般來(lái)說(shuō),大數(shù)據(jù)具有3V特性,即Volume(海量)、Velocity(高速)和Variety(多樣)[1]。TPC聯(lián)合主席、Cisco高級(jí)工程師Raghunath Nambiar進(jìn)一步認(rèn)為大數(shù)據(jù)還面臨Value(價(jià)值)和Veracity(精確)的挑戰(zhàn)。如何客觀地比較不同數(shù)據(jù)管理系統(tǒng),即大數(shù)據(jù)測(cè)試基準(zhǔn)的選擇,成為一個(gè)重要的研究課題。
事務(wù)性能管理委員會(huì)(TPC)是目前最知名的數(shù)據(jù)管理系統(tǒng)評(píng)測(cè)基準(zhǔn)標(biāo)準(zhǔn)化組織。在過(guò)去二十多年間,該機(jī)構(gòu)發(fā)布了多款數(shù)據(jù)庫(kù)評(píng)測(cè)基準(zhǔn),如TPC-A、TPC-D、TPC-H和TPC-DS,在業(yè)界得到了廣泛應(yīng)用[2]。BigBench和BigFrame是對(duì)TPC-DS進(jìn)行多樣化的數(shù)據(jù)擴(kuò)充的測(cè)試基準(zhǔn)。近年來(lái),Apache開(kāi)源社區(qū)針對(duì)Map/reduce架構(gòu)開(kāi)發(fā)了多款性能測(cè)試用例,如TestDFSIO、teraSort。國(guó)內(nèi)對(duì)大數(shù)據(jù)測(cè)試基準(zhǔn)的研究起步較晚,尚未建立起權(quán)威的測(cè)試基準(zhǔn)。目前由中國(guó)信息通信研究院牽頭,聯(lián)合中科院計(jì)算所及國(guó)內(nèi)外知名公司和機(jī)構(gòu)共同制定的大數(shù)據(jù)測(cè)試基準(zhǔn)正在金羅密布的測(cè)試中[3]。
為了方便企業(yè)選擇合適的大數(shù)據(jù)測(cè)試基準(zhǔn),本文將在分析總結(jié)現(xiàn)有成果的基礎(chǔ),進(jìn)一步討論大數(shù)據(jù)測(cè)試基準(zhǔn)應(yīng)該具有的要素;并以此為基礎(chǔ),對(duì)比現(xiàn)有的大數(shù)據(jù)測(cè)試基準(zhǔn);然后重點(diǎn)討論TPC-DS測(cè)試基準(zhǔn)。
大數(shù)據(jù)測(cè)試基準(zhǔn)的選擇
企業(yè)在選擇大數(shù)據(jù)測(cè)試基準(zhǔn)時(shí),首先應(yīng)考慮基準(zhǔn)與其自身業(yè)務(wù)的相關(guān)性。
與其自身業(yè)務(wù)的相關(guān)性
它主要描述測(cè)試基準(zhǔn)設(shè)定的應(yīng)用場(chǎng)景是否與企業(yè)的實(shí)際業(yè)務(wù)場(chǎng)景類(lèi)似,如基于社交網(wǎng)絡(luò)應(yīng)用的評(píng)測(cè)基準(zhǔn)與銀行系統(tǒng)的應(yīng)用場(chǎng)景就沒(méi)有什么相關(guān)性。不相關(guān)的基準(zhǔn),測(cè)試結(jié)果再好,也沒(méi)有實(shí)際意義。相關(guān)性還要考慮測(cè)試基準(zhǔn)所采用的數(shù)據(jù)模型是否代表數(shù)據(jù)倉(cāng)庫(kù)的發(fā)展方向,如基于星型模型的開(kāi)發(fā)要比基于傳統(tǒng)的關(guān)系模型開(kāi)發(fā)更加有效。
當(dāng)然,一套行之有效的大數(shù)據(jù)測(cè)試基準(zhǔn)包含許多其它要素。Jim Gray及金澈清等學(xué)者[4]已經(jīng)對(duì)度量選取、模擬數(shù)據(jù)生成器、工作負(fù)載設(shè)定、審計(jì)等要素進(jìn)行了詳細(xì)論述。除此之外,本文還認(rèn)為測(cè)試基準(zhǔn)的健壯性、SQL標(biāo)準(zhǔn)的兼容性和通用性/可移植性也是重要的要素。
模擬數(shù)據(jù)生成要具有真實(shí)性
它描述了測(cè)試基準(zhǔn)是否仿真真實(shí)應(yīng)用場(chǎng)景,所產(chǎn)生的模擬數(shù)據(jù)是否與真實(shí)數(shù)據(jù)相似。
工作負(fù)載的設(shè)定具有可擴(kuò)展性
它描述該評(píng)測(cè)基準(zhǔn)是否適用于不同規(guī)模的計(jì)算機(jī)系統(tǒng),許多評(píng)測(cè)基準(zhǔn)會(huì)使用標(biāo)度因子來(lái)決定模擬數(shù)據(jù)的規(guī)模,通過(guò)調(diào)整標(biāo)度因子來(lái)得到不同規(guī)模的工作負(fù)載。
度量的選取的可理解性
它衡量該評(píng)測(cè)基準(zhǔn)是否易于為用戶(hù)理解,不易為用戶(hù)理解的基準(zhǔn)的可信程度也較低。
客觀性與公正性
眾所周知,在競(jìng)技比賽中,一個(gè)人不能既是運(yùn)動(dòng)員又是裁判員。測(cè)試基準(zhǔn)好比競(jìng)技比賽中的裁判員,應(yīng)該由中立的第三方機(jī)構(gòu)制定。事實(shí)也證明,在各個(gè)領(lǐng)域最受歡迎的測(cè)試基準(zhǔn)都是有第三方機(jī)構(gòu)設(shè)計(jì)的。過(guò)去20多年的經(jīng)歷證明TPC系列基準(zhǔn)是數(shù)據(jù)庫(kù)領(lǐng)域最為廣泛接受的基準(zhǔn)。除此之外,第三方機(jī)構(gòu)的審計(jì)也是保證證評(píng)測(cè)結(jié)果的客觀性與公正性的重要手段。
健壯性
測(cè)試基準(zhǔn)要足夠健壯,不能輕易被“hack”,這對(duì)測(cè)試結(jié)果的公平性非常重要。例如對(duì)TPC-H的前身TPC-D,通過(guò)物理化視圖,Oracle的性能比Micosoft的SQLServer高100倍,這些顯然是不公平的。因此TPC組織規(guī)定TPC-H測(cè)試中物理化視圖是不和法的。但是除非是專(zhuān)業(yè)人員,一般用戶(hù)很難判定測(cè)試過(guò)程中視圖有沒(méi)有被物理化。TPC-DS在健壯行方面要好很多,因?yàn)樗腟QL本身比較復(fù)雜,也比較多,Hack起來(lái)相對(duì)困難,并且只hack幾個(gè)SQL對(duì)整體性能提高有限。
SQL標(biāo)準(zhǔn)兼容性
SQL是ANSI為統(tǒng)一各個(gè)數(shù)據(jù)庫(kù)廠(chǎng)商之間的編程差異定義的標(biāo)準(zhǔn),已發(fā)布SQL86、SQL92、SQL99、SQL2003等版本。這些標(biāo)準(zhǔn)已經(jīng)被主流的商用(例如Oracle、DB2、SQL server)以及開(kāi)源的數(shù)據(jù)庫(kù)產(chǎn)品(例如MySQL、mSQL和PostgreSQL)的廣泛采用。對(duì)整個(gè)數(shù)據(jù)庫(kù)產(chǎn)業(yè)的發(fā)展起到了巨大的推動(dòng)作用。大數(shù)據(jù)是個(gè)新興的領(lǐng)域,它的發(fā)展不能完全拋棄原有的應(yīng)用。如果不能全面支持SQL標(biāo)準(zhǔn),現(xiàn)有系統(tǒng)的移植非常困難,學(xué)習(xí)曲線(xiàn)就會(huì)變長(zhǎng)。
通用性/可遷移性
通用性描述是否可在不同數(shù)據(jù)庫(kù)系統(tǒng)和架構(gòu)上實(shí)現(xiàn)指定的評(píng)測(cè)基準(zhǔn)。測(cè)試基準(zhǔn)不應(yīng)該規(guī)定實(shí)現(xiàn)的細(xì)節(jié),而只需要定義測(cè)試規(guī)范。DBMS只要遵循規(guī)范得到正確的結(jié)果,就是合理的測(cè)試,無(wú)論其基于Map/Reduce、Spark還是其他的技術(shù),也不管其底層存儲(chǔ)是用HDFS、HBASE還是其他方式。
大數(shù)據(jù)測(cè)試基準(zhǔn)對(duì)比
經(jīng)過(guò)30幾年的研究,傳統(tǒng)數(shù)據(jù)庫(kù)測(cè)試基準(zhǔn)的研究已經(jīng)相當(dāng)成熟,在各個(gè)領(lǐng)域出現(xiàn)了行之有效的測(cè)試基準(zhǔn)。隨著大數(shù)據(jù)應(yīng)用的發(fā)展,大數(shù)據(jù)測(cè)試基準(zhǔn)的研究最近幾年逐漸興起,但大都是在傳統(tǒng)的測(cè)試基準(zhǔn)的基礎(chǔ)進(jìn)行裁剪、擴(kuò)充、綜合。金澈清等學(xué)者[4]對(duì)數(shù)據(jù)庫(kù)基準(zhǔn)的發(fā)展概述如圖1所示。
本文重點(diǎn)關(guān)注被列為大數(shù)據(jù)測(cè)試基準(zhǔn)的相關(guān)基準(zhǔn)、BigFrame[5]以及TPC-DS,對(duì)其它的基準(zhǔn)本文不再贅述,有興趣的讀者請(qǐng)參閱文[4]。
Map/reduce性能測(cè)試
如文[4]中所述,MRBench、HiBench、TestDFSIO、Sort/teraSort只是針對(duì)Map/Reduce框架,目的是評(píng)測(cè)運(yùn)行Map/Reduce框架的集群的性能。CALDA基準(zhǔn)嘗試比較不同架構(gòu)在數(shù)據(jù)管理方面的性能。這些測(cè)試過(guò)于簡(jiǎn)單,無(wú)法模擬復(fù)雜的應(yīng)用,也不通用。
YCSB/YCSB++/LinkBench
這是一組針對(duì)網(wǎng)絡(luò)應(yīng)用的測(cè)試基準(zhǔn)。YCSB(Yahoo! Cloud Serving Benchmark)及其擴(kuò)展YCSB++測(cè)試查詢(xún)回復(fù)的延時(shí)等云服務(wù)系統(tǒng)中云計(jì)算的特點(diǎn),如查詢(xún)回復(fù)的延時(shí)、縱向擴(kuò)展和彈性加速比、并行性測(cè)試等。LinkBench是一個(gè)基于社交網(wǎng)絡(luò)應(yīng)用的評(píng)測(cè)基準(zhǔn)。它仿真Facebook公司的圖數(shù)據(jù)管理應(yīng)用,包括數(shù)據(jù)特性、工作負(fù)載以及度量等。這些都是公司開(kāi)發(fā)的針對(duì)自己特定應(yīng)用場(chǎng)景的測(cè)試基準(zhǔn),很難在整個(gè)行業(yè)內(nèi)進(jìn)行推廣。
BigBench
BigBench是一款面向商品零售業(yè)的基準(zhǔn),它擴(kuò)展了TPC-DS,綜合考慮多種數(shù)據(jù)模態(tài),增加了半結(jié)構(gòu)化數(shù)據(jù)Web Log和非結(jié)構(gòu)化數(shù)據(jù)Reviews。其負(fù)載的生成是TPC-DS定制化的版本。BigBench包含30個(gè)查詢(xún)。BigBench基本數(shù)據(jù)模型如圖2所示:
BigFrame
BigFrame是一個(gè)測(cè)試基準(zhǔn)生成器[5],用戶(hù)可以根據(jù)自己的需求定制專(zhuān)有測(cè)試基準(zhǔn)。在目前實(shí)現(xiàn)中,其關(guān)系模型與BigBench類(lèi)似,也是基于TPC-DS。同時(shí)它擴(kuò)展了半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)Tweets以及圖形化數(shù)據(jù)Followee/Follower。BigFrame基本數(shù)據(jù)模型如圖3所示:
如文[5]所述,大數(shù)據(jù)與決策支持系統(tǒng)(DSS)并不是完全獨(dú)立的,大數(shù)據(jù)也不能拋棄傳統(tǒng)。DSS系統(tǒng)中,只要數(shù)據(jù)量足夠大,都可以認(rèn)為是大數(shù)據(jù)問(wèn)題。被化為大數(shù)據(jù)測(cè)試基準(zhǔn)的BigBench和BigFrame的大部分內(nèi)容都來(lái)自于TPC-DS,從這個(gè)意義上講,TPC-DS不但是一種結(jié)構(gòu)數(shù)據(jù)的大數(shù)據(jù)測(cè)試基準(zhǔn),而且是其它大數(shù)據(jù)測(cè)試基準(zhǔn)的基礎(chǔ)。
TPC-DS
TPC-DS測(cè)試基準(zhǔn)是TPC組織推出的用于替代TPC-H的下一代決策支持系統(tǒng)測(cè)試基準(zhǔn)。因此在討論TPC-DS之前,先介紹一下TPC-H。
TPC-H
TPC-H是一款面向商品零售業(yè)的決策支持系統(tǒng)測(cè)試基準(zhǔn),它定義了8張表,22個(gè)查詢(xún),遵循SQL92。TPC-H的數(shù)據(jù)模型如圖4所示。TPC-H基準(zhǔn)的數(shù)據(jù)庫(kù)模式遵循第三范式,葉曉俊教授等學(xué)者[6]認(rèn)為“它的數(shù)據(jù)表數(shù)據(jù)特征單一(如數(shù)據(jù)不傾斜) ,其數(shù)據(jù)維護(hù)功能僅僅限制了潛在的對(duì)索引的過(guò)度使用,而沒(méi)有測(cè)試DBMS 執(zhí)行真實(shí)數(shù)據(jù)維護(hù)操作——數(shù)據(jù)提取、轉(zhuǎn)換和加載(ETL) 功能的能力”。同時(shí),新興的數(shù)據(jù)倉(cāng)庫(kù)開(kāi)始采用新的模型,如星型模型、雪花模型。TPC-H已經(jīng)不能精準(zhǔn)反映當(dāng)今數(shù)據(jù)庫(kù)系統(tǒng)的真實(shí)性能。為此,TPC組織推出了新一代的面向決策應(yīng)用的TPC-DS 基準(zhǔn)。
TPC-DS
TPC-DS采用星型、雪花型等多維數(shù)據(jù)模式。它包含7張事實(shí)表,17張緯度表平均每張表含有18列。其工作負(fù)載包含99個(gè)SQL查詢(xún),覆蓋SQL99和2003的核心部分以及OLAP。這個(gè)測(cè)試集包含對(duì)大數(shù)據(jù)集的統(tǒng)計(jì)、報(bào)表生成、聯(lián)機(jī)查詢(xún)、數(shù)據(jù)挖掘等復(fù)雜應(yīng)用,測(cè)試用的數(shù)據(jù)和值是有傾斜的,與真實(shí)數(shù)據(jù)一致??梢哉f(shuō)TPC-DS是與真實(shí)場(chǎng)景非常接近的一個(gè)測(cè)試集,也是難度較大的一個(gè)測(cè)試集。
TPC-DS的這個(gè)特點(diǎn)跟大數(shù)據(jù)的分析挖掘應(yīng)用非常類(lèi)似。Hadoop等大數(shù)據(jù)分析技術(shù)也是對(duì)海量數(shù)據(jù)進(jìn)行大規(guī)模的數(shù)據(jù)分析和深度挖掘,也包含交互式聯(lián)機(jī)查詢(xún)和統(tǒng)計(jì)報(bào)表類(lèi)應(yīng)用,同時(shí)大數(shù)據(jù)的數(shù)據(jù)質(zhì)量也較低,數(shù)據(jù)分布是真實(shí)而不均勻的。因此TPC-DS成為客觀衡量多個(gè)不同Hadoop版本以及SQL on Hadoop技術(shù)的最佳測(cè)試集。這個(gè)基準(zhǔn)測(cè)試有以下幾個(gè)主要特點(diǎn):
一共99個(gè)測(cè)試案例,遵循SQL'99和SQL 2003的語(yǔ)法標(biāo)準(zhǔn),SQL案例比較復(fù)雜
分析的數(shù)據(jù)量大,并且測(cè)試案例是在回答真實(shí)的商業(yè)問(wèn)題
測(cè)試案例中包含各種業(yè)務(wù)模型(如分析報(bào)告型,迭代式的聯(lián)機(jī)分析型,數(shù)據(jù)挖掘型等)
幾乎所有的測(cè)試案例都有很高的IO負(fù)載和CPU計(jì)算需求
葉曉俊等學(xué)者對(duì)這些查詢(xún)的分部總結(jié)如表1所示[6]。典型的Store_Sales的數(shù)據(jù)模型如圖5所示。這個(gè)基準(zhǔn)測(cè)試的完整信息請(qǐng)參考http://www.tpc.org/tpcds/。
TPC-DS認(rèn)證現(xiàn)狀
TPC-DS以其高標(biāo)準(zhǔn)、高要求得到大家的廣泛認(rèn)知,理應(yīng)得到廣泛
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。