99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀解析大數(shù)據(jù)基準測試—TPC-H or TPC-DS
解析大數(shù)據(jù)基準測試—TPC-H or TPC-DS
2015-05-19
收藏

解析大數(shù)據(jù)基準測試—TPC-H or TPC-DS


隨著開源Hapdoop、Map/Reduce、Spark、HDFS、HBASE等技術(shù)的商用化,大數(shù)據(jù)管理技術(shù)得到了突飛猛進的發(fā)展。一般來說,大數(shù)據(jù)具有3V特性,即Volume(海量)、Velocity(高速)和Variety(多樣)[1]。TPC聯(lián)合主席、Cisco高級工程師Raghunath Nambiar進一步認為大數(shù)據(jù)還面臨Value(價值)和Veracity(精確)的挑戰(zhàn)。如何客觀地比較不同數(shù)據(jù)管理系統(tǒng),即大數(shù)據(jù)測試基準的選擇,成為一個重要的研究課題。

事務(wù)性能管理委員會(TPC)是目前最知名的數(shù)據(jù)管理系統(tǒng)評測基準標準化組織。在過去二十多年間,該機構(gòu)發(fā)布了多款數(shù)據(jù)庫評測基準,如TPC-A、TPC-D、TPC-H和TPC-DS,在業(yè)界得到了廣泛應(yīng)用[2]。BigBench和BigFrame是對TPC-DS進行多樣化的數(shù)據(jù)擴充的測試基準。近年來,Apache開源社區(qū)針對Map/reduce架構(gòu)開發(fā)了多款性能測試用例,如TestDFSIO、teraSort。國內(nèi)對大數(shù)據(jù)測試基準的研究起步較晚,尚未建立起權(quán)威的測試基準。目前由中國信息通信研究院牽頭,聯(lián)合中科院計算所及國內(nèi)外知名公司和機構(gòu)共同制定的大數(shù)據(jù)測試基準正在金羅密布的測試中[3]。

為了方便企業(yè)選擇合適的大數(shù)據(jù)測試基準,本文將在分析總結(jié)現(xiàn)有成果的基礎(chǔ),進一步討論大數(shù)據(jù)測試基準應(yīng)該具有的要素;并以此為基礎(chǔ),對比現(xiàn)有的大數(shù)據(jù)測試基準;然后重點討論TPC-DS測試基準。

一、大數(shù)據(jù)測試基準的選擇

企業(yè)在選擇大數(shù)據(jù)測試基準時,首先應(yīng)考慮基準與其自身業(yè)務(wù)的相關(guān)性。

1. 與其自身業(yè)務(wù)的相關(guān)性

它主要描述測試基準設(shè)定的應(yīng)用場景是否與企業(yè)的實際業(yè)務(wù)場景類似,如基于社交網(wǎng)絡(luò)應(yīng)用的評測基準與銀行系統(tǒng)的應(yīng)用場景就沒有什么相關(guān)性。不相關(guān)的基準,測試結(jié)果再好,也沒有實際意義。相關(guān)性還要考慮測試基準所采用的數(shù)據(jù)模型是否代表數(shù)據(jù)倉庫的發(fā)展方向,如基于星型模型的開發(fā)要比基于傳統(tǒng)的關(guān)系模型開發(fā)更加有效。

當然,一套行之有效的大數(shù)據(jù)測試基準包含許多其它要素。Jim Gray及金澈清等學(xué)者[4]已經(jīng)對度量選取、模擬數(shù)據(jù)生成器、工作負載設(shè)定、審計等要素進行了詳細論述。除此之外,本文還認為測試基準的健壯性、SQL標準的兼容性和通用性/可移植性也是重要的要素。

2. 模擬數(shù)據(jù)生成要具有真實性

它描述了測試基準是否仿真真實應(yīng)用場景,所產(chǎn)生的模擬數(shù)據(jù)是否與真實數(shù)據(jù)相似。

3. 工作負載的設(shè)定具有可擴展性

它描述該評測基準是否適用于不同規(guī)模的計算機系統(tǒng),許多評測基準會使用標度因子來決定模擬數(shù)據(jù)的規(guī)模,通過調(diào)整標度因子來得到不同規(guī)模的工作負載。

4. 度量的選取的可理解性

它衡量該評測基準是否易于為用戶理解,不易為用戶理解的基準的可信程度也較低。

5. 客觀性與公正性

眾所周知,在競技比賽中,一個人不能既是運動員又是裁判員。測試基準好比競技比賽中的裁判員,應(yīng)該由中立的第三方機構(gòu)制定。事實也證明,在各個領(lǐng)域最受歡迎的測試基準都是有第三方機構(gòu)設(shè)計的。過去20多年的經(jīng)歷證明TPC系列基準是數(shù)據(jù)庫領(lǐng)域最為廣泛接受的基準。除此之外,第三方機構(gòu)的審計也是保證證評測結(jié)果的客觀性與公正性的重要手段。

6. 健壯性

測試基準要足夠健壯,不能輕易被“hack”,這對測試結(jié)果的公平性非常重要。例如對TPC-H的前身TPC-D,通過物理化視圖,Oracle的性能比Micosoft的SQLServer高100倍,這些顯然是不公平的。因此TPC組織規(guī)定TPC-H測試中物理化視圖是不和法的。但是除非是專業(yè)人員,一般用戶很難判定測試過程中視圖有沒有被物理化。TPC-DS在健壯行方面要好很多,因為它的SQL本身比較復(fù)雜,也比較多,Hack起來相對困難,并且只hack幾個SQL對整體性能提高有限。

7. SQL標準兼容性

SQL是ANSI為統(tǒng)一各個數(shù)據(jù)庫廠商之間的編程差異定義的標準,已發(fā)布SQL86、SQL92、SQL99、SQL2003等版本。這些標準已經(jīng)被主流的商用(例如Oracle、DB2、SQL server)以及開源的數(shù)據(jù)庫產(chǎn)品(例如MySQL、mSQL和PostgreSQL)的廣泛采用。對整個數(shù)據(jù)庫產(chǎn)業(yè)的發(fā)展起到了巨大的推動作用。大數(shù)據(jù)是個新興的領(lǐng)域,它的發(fā)展不能完全拋棄原有的應(yīng)用。如果不能全面支持SQL標準,現(xiàn)有系統(tǒng)的移植非常困難,學(xué)習(xí)曲線就會變長。

8. 通用性/可遷移性

通用性描述是否可在不同數(shù)據(jù)庫系統(tǒng)和架構(gòu)上實現(xiàn)指定的評測基準。測試基準不應(yīng)該規(guī)定實現(xiàn)的細節(jié),而只需要定義測試規(guī)范。DBMS只要遵循規(guī)范得到正確的結(jié)果,就是合理的測試,無論其基于Map/Reduce、Spark還是其他的技術(shù),也不管其底層存儲是用HDFS、HBASE還是其他方式。

二、大數(shù)據(jù)測試基準對比

經(jīng)過30幾年的研究,傳統(tǒng)數(shù)據(jù)庫測試基準的研究已經(jīng)相當成熟,在各個領(lǐng)域出現(xiàn)了行之有效的測試基準。隨著大數(shù)據(jù)應(yīng)用的發(fā)展,大數(shù)據(jù)測試基準的研究最近幾年逐漸興起,但大都是在傳統(tǒng)的測試基準的基礎(chǔ)進行裁剪、擴充、綜合。金澈清等學(xué)者[4]對數(shù)據(jù)庫基準的發(fā)展概述如圖1所示。大數(shù)據(jù)

本文重點關(guān)注被列為大數(shù)據(jù)測試基準的相關(guān)基準、BigFrame[5]以及TPC-DS,對其它的基準本文不再贅述,有興趣的讀者請參閱文[4]。

1. Map/reduce性能測試

如文[4]中所述,MRBench、HiBench、TestDFSIO、Sort/teraSort只是針對Map/Reduce框架,目的是評測運行Map/Reduce框架的集群的性能。CALDA基準嘗試比較不同架構(gòu)在數(shù)據(jù)管理方面的性能。這些測試過于簡單,無法模擬復(fù)雜的應(yīng)用,也不通用。

2. YCSB/YCSB++/LinkBench

這是一組針對網(wǎng)絡(luò)應(yīng)用的測試基準。YCSB(Yahoo! Cloud Serving Benchmark)及其擴展YCSB++測試查詢回復(fù)的延時等云服務(wù)系統(tǒng)中云計算的特點,如查詢回復(fù)的延時、縱向擴展和彈性加速比、并行性測試等。LinkBench是一個基于社交網(wǎng)絡(luò)應(yīng)用的評測基準。它仿真Facebook公司的圖數(shù)據(jù)管理應(yīng)用,包括數(shù)據(jù)特性、工作負載以及度量等。這些都是公司開發(fā)的針對自己特定應(yīng)用場景的測試基準,很難在整個行業(yè)內(nèi)進行推廣。

3. BigBench

BigBench是一款面向商品零售業(yè)的基準,它擴展了TPC-DS,綜合考慮多種數(shù)據(jù)模態(tài),增加了半結(jié)構(gòu)化數(shù)據(jù)Web Log和非結(jié)構(gòu)化數(shù)據(jù)Reviews。其負載的生成是TPC-DS定制化的版本。BigBench包含30個查詢。BigBench基本數(shù)據(jù)模型如圖2所示:大數(shù)據(jù)

4. BigFrame

BigFrame是一個測試基準生成器[5],用戶可以根據(jù)自己的需求定制專有測試基準。在目前實現(xiàn)中,其關(guān)系模型與BigBench類似,也是基于TPC-DS。同時它擴展了半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)Tweets以及圖形化數(shù)據(jù)Followee/Follower。BigFrame基本數(shù)據(jù)模型如圖3所示:大數(shù)據(jù)

如文[5]所述,大數(shù)據(jù)與決策支持系統(tǒng)(DSS)并不是完全獨立的,大數(shù)據(jù)也不能拋棄傳統(tǒng)。DSS系統(tǒng)中,只要數(shù)據(jù)量足夠大,都可以認為是大數(shù)據(jù)問題。被化為大數(shù)據(jù)測試基準的BigBench和BigFrame的大部分內(nèi)容都來自于TPC-DS,從這個意義上講,TPC-DS不但是一種結(jié)構(gòu)數(shù)據(jù)的大數(shù)據(jù)測試基準,而且是其它大數(shù)據(jù)測試基準的基礎(chǔ)。

三、TPC-DS

TPC-DS測試基準是TPC組織推出的用于替代TPC-H的下一代決策支持系統(tǒng)測試基準。因此在討論TPC-DS之前,先介紹一下TPC-H。

1. TPC-H

TPC-H是一款面向商品零售業(yè)的決策支持系統(tǒng)測試基準,它定義了8張表,22個查詢,遵循SQL92。TPC-H的數(shù)據(jù)模型如圖4所示。TPC-H基準的數(shù)據(jù)庫模式遵循第三范式,葉曉俊教授等學(xué)者[6]認為“它的數(shù)據(jù)表數(shù)據(jù)特征單一(如數(shù)據(jù)不傾斜) ,其數(shù)據(jù)維護功能僅僅限制了潛在的對索引的過度使用,而沒有測試DBMS 執(zhí)行真實數(shù)據(jù)維護操作——數(shù)據(jù)提取、轉(zhuǎn)換和加載(ETL) 功能的能力”。同時,新興的數(shù)據(jù)倉庫開始采用新的模型,如星型模型、雪花模型。TPC-H已經(jīng)不能精準反映當今數(shù)據(jù)庫系統(tǒng)的真實性能。為此,TPC組織推出了新一代的面向決策應(yīng)用的TPC-DS 基準。大數(shù)據(jù)

2. TPC-DS

TPC-DS采用星型、雪花型等多維數(shù)據(jù)模式。它包含7張事實表,17張緯度表平均每張表含有18列。其工作負載包含99個SQL查詢,覆蓋SQL99和2003的核心部分以及OLAP。這個測試集包含對大數(shù)據(jù)集的統(tǒng)計、報表生成、聯(lián)機查詢、數(shù)據(jù)挖掘等復(fù)雜應(yīng)用,測試用的數(shù)據(jù)和值是有傾斜的,與真實數(shù)據(jù)一致??梢哉fTPC-DS是與真實場景非常接近的一個測試集,也是難度較大的一個測試集。

TPC-DS的這個特點跟大數(shù)據(jù)的分析挖掘應(yīng)用非常類似。Hadoop等大數(shù)據(jù)分析技術(shù)也是對海量數(shù)據(jù)進行大規(guī)模的數(shù)據(jù)分析和深度挖掘,也包含交互式聯(lián)機查詢和統(tǒng)計報表類應(yīng)用,同時大數(shù)據(jù)的數(shù)據(jù)質(zhì)量也較低,數(shù)據(jù)分布是真實而不均勻的。因此TPC-DS成為客觀衡量多個不同Hadoop版本以及SQL on Hadoop技術(shù)的最佳測試集。這個基準測試有以下幾個主要特點:

  • 一共99個測試案例,遵循SQL’99和SQL 2003的語法標準,SQL案例比較復(fù)雜
  • 分析的數(shù)據(jù)量大,并且測試案例是在回答真實的商業(yè)問題
  • 測試案例中包含各種業(yè)務(wù)模型(如分析報告型,迭代式的聯(lián)機分析型,數(shù)據(jù)挖掘型等)
  • 幾乎所有的測試案例都有很高的IO負載和CPU計算需求

葉曉俊等學(xué)者對這些查詢的分部總結(jié)如表1所示[6]。典型的Store_Sales的數(shù)據(jù)模型如圖5所示。這個基準測試的完整信息請參考http://www.tpc.org/tpcds/。大數(shù)據(jù)大數(shù)據(jù)

3. TPC-DS認證現(xiàn)狀

TPC-DS以其高標準、高要求得到大家的廣泛認知,理應(yīng)得到廣泛的應(yīng)用,但是到目前為止還沒有任何廠商得到TPC官方的認證。究其原因,本文認為:

傳統(tǒng)的數(shù)據(jù)庫廠商,DBMS系統(tǒng)比較成熟,SQL的支持也相當完善,但是其分布式、并行處理能力欠缺,導(dǎo)致其性能很差。所以傳統(tǒng)的廠商不愿意發(fā)布測試結(jié)果。
新型的計算模型如Map/Reduce、spark,具有較好的并行處理能力,但是SQL的兼容性比較差,如HiveSQL、SparkSQL只支持40個SQL,從而也無法發(fā)布TPC-DS測試報告。盡管如此,各廠商還是通過非TPC官方的途徑發(fā)布TPC-DS的部分測試結(jié)果,以展現(xiàn)其在性能方面的提升。由此可見大家對TPC-DS的程接受度。

四、結(jié)束語

大數(shù)據(jù)評測基準用于公平、客觀地評測不同大數(shù)據(jù)庫產(chǎn)品/平臺的功能和性能,對人們選擇合適的大數(shù)據(jù)分析決策系統(tǒng)具有重要的參考價值。隨著國內(nèi)外各代表性的Hadoop發(fā)行版廠商以TPC-DS為標準測評產(chǎn)品,TPC-DS也就逐漸成為了業(yè)界公認的大數(shù)據(jù)系統(tǒng)測試基準。但是隨著大數(shù)據(jù)應(yīng)用在各行各業(yè)的發(fā)展,測試基準也需不斷與時俱進。大數(shù)據(jù)測試基準仍然面臨著諸多挑戰(zhàn),還需要政府、學(xué)術(shù)界和工業(yè)界的緊密合作。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }