國產(chǎn)數(shù)據(jù)庫又破世界記錄了!
這一次又是鵝廠,又是騰訊云TDSQL。
去年,騰訊云TDSQL打破了TPC-C的紀(jì)錄,今年,他們又成功刷新了TPC-DS的紀(jì)錄。
今天,我們先拋開成績不談,說說TPC-DS是怎么回事,到底是怎么測的,難度大不大…
首先,TPC(事務(wù)處理性能委員會)的名號不需要過多解釋了吧,這個國際權(quán)威機(jī)構(gòu)從1988年成立開始,30多年就干一件事↓
“開發(fā)并維護(hù)針對數(shù)據(jù)庫和事務(wù)處理系統(tǒng)的基準(zhǔn)測試標(biāo)準(zhǔn)”
所以,TPC的這些測試,也常被業(yè)內(nèi)稱作數(shù)據(jù)庫領(lǐng)域的“奧林匹克”。
鵝廠去年奪冠的那個TPC-C是事務(wù)處理類的性能測試(OLTP),也就是交易型的業(yè)務(wù),想想那些秒殺、支付、訂單處理,就知道這能力多重要。
TPC-C相當(dāng)于奧林匹克中的短跑項(xiàng)目,“賽程”都是高頻小任務(wù),比的是多、快、穩(wěn)、爆發(fā)力↓
而鵝廠今年參加的這個,叫TPC-DS,其實(shí)是“拷打”分析型業(yè)務(wù)的,重點(diǎn)考察數(shù)據(jù)庫的“聯(lián)機(jī)分析”能力(OLAP),需要具備大數(shù)據(jù)量、高性能、高并發(fā)、高擴(kuò)展性等特征。
TPC-DS就好比是鐵人三項(xiàng),“賽程”都是低頻大任務(wù),綜合比拼速度、耐力、大運(yùn)動量。↓
那TPC-DS具體怎么測呢?難度相當(dāng)大!
TPC系列的測試有個特點(diǎn),特別強(qiáng)調(diào)實(shí)戰(zhàn)型,要模擬真實(shí)的業(yè)務(wù)場景。
這種實(shí)戰(zhàn)型的測試,就可以避免有些產(chǎn)品,一測很牛逼,一用就拉稀…
你看TPC-DS的測試細(xì)則,模擬一家大型零售商銷售數(shù)據(jù)的在線分析場景,包含了99個不同類型的分析任務(wù)。
測試場就是實(shí)戰(zhàn)場,詳細(xì)評估數(shù)據(jù)庫在海量數(shù)據(jù)下的分析性能:處理耗時、并發(fā)性能、導(dǎo)數(shù)性能等。
海量數(shù)據(jù)有多“海”呢?
看看下面這些表的行數(shù)和磁盤空間占用,你就心里有數(shù)了。
這里面,門店銷售記錄表(store_sales)有288億行,占用磁盤空間2個T;
電話銷售記錄表(catalog_sales)有144億行,占用磁盤空間1.6T;
還有70多億行的線上銷售記錄表、6500萬行的客戶信息表…,總共17張表,10TB數(shù)據(jù)量。
怎么樣,這數(shù)據(jù)是不是“海”得很夸張?
測試的第一環(huán)節(jié),就是要把這10個T的數(shù)據(jù)加載到待測數(shù)據(jù)庫中,考量數(shù)據(jù)導(dǎo)入的速度。
數(shù)據(jù)入庫后,接下來更大的挑戰(zhàn)是查詢分析需求,因?yàn)檫@些需求都涉及到了大規(guī)模跨表查詢,很多需要同時關(guān)聯(lián)10表左右。
舉個例子,第23項(xiàng)查詢(Q23)是要分析“暢銷品的頭部客戶在各渠道的銷售總額”。
是不是光這句話的意思都要琢磨半天?要完成這個任務(wù),需要多次迭代查詢和計算↓
比如,第1步“查詢門店暢銷產(chǎn)品”,具體的要求是從門店銷售記錄中找出連續(xù)4年內(nèi)任何一天銷售超過4次的商品。
這個需求,需要針對門店銷售記錄表、日期表、商品目錄表進(jìn)行聯(lián)合查詢。
這種連接查詢(join)的結(jié)果有220多億條記錄,聚合計算后的最終結(jié)果有3億條記錄。
再看第4步,查詢“門店頭部客戶在其它渠道的購買暢銷品情況”,需要根據(jù)前三步的結(jié)果,再基于所有的銷售數(shù)據(jù)(門店、網(wǎng)店、電話)進(jìn)行聯(lián)合分析,計算量激增…
總之吧,像這樣“刁難人”的問題,有99個,全部模擬真實(shí)查詢場景,幫助企業(yè)進(jìn)行決策支撐。
具體測試的時候,要先串行運(yùn)算,也就是模擬1個用戶按順序執(zhí)行99個查詢?nèi)蝿?wù)。
接下來,還有并行運(yùn)算測試。
這個更狠,模擬4個用戶,同時并發(fā)執(zhí)行99個查詢?nèi)蝿?wù),看你能不能反應(yīng)過來。
這還不算完,下一步還要進(jìn)行數(shù)據(jù)變更操作:更新某些表中的數(shù)據(jù),涉及10+表的上億行數(shù)據(jù)。
數(shù)據(jù)更新過程中,還有人專門“作妖”,破壞磁盤來模擬故障,來測試系統(tǒng)的容錯能力。
這幾波操作完成后,會繼續(xù)進(jìn)行第二次并行查詢測試和第二次數(shù)據(jù)變更測試。
說白了,測一遍怕你超水平發(fā)揮了,不夠準(zhǔn)確,再來一遍。
好,跑完這所有的步驟之后,TPC-DS會根據(jù)下面公式計算出一個分?jǐn)?shù),分?jǐn)?shù)越高綜合表現(xiàn)越好。
公式的詳細(xì)算法不啰嗦了,這里面的分母,其實(shí)是基于串行查詢、并行查詢、數(shù)據(jù)變更、數(shù)據(jù)加載所花費(fèi)的時間,得到的一個加權(quán)值。
總之,綜合用時越短,各項(xiàng)都沒有短板,分母就越小,得分就越高。
鵝廠最終測下來,得分是7260萬QphDS,比第二名高了三倍還多。
不止如此,在性能奪冠的同時,鵝廠還拿到了性價比的冠軍,也就是系統(tǒng)造價和性能得分的比值,反映了每秒每查詢數(shù)據(jù)量的花費(fèi),越小越好。
在這個指標(biāo)上,鵝廠TDSQL每1000評分的價格比第二名便宜了1/3。
有人說,硬件價格是明的,數(shù)據(jù)庫軟件價格不透明,你隨便報個低價,不就可以拉低成本了?
反正是自己產(chǎn)品,價格自由嘛。
嘿嘿,看看TPC官方的測試報告你就會明白,這個數(shù)據(jù)庫系統(tǒng)的價格是基于騰訊云官網(wǎng)在線正式售賣的定價來核算的。
也就是說,送測的和客戶最終買到的,價格一致,甚至考慮到大客戶折扣,最終用戶可以獲得更好的性價比。
后記
鵝廠用了兩年時間(背后其實(shí)是數(shù)據(jù)庫鵝們十幾年的積累),成功霸榜OLTP和OLAP兩大權(quán)威測試,而且是真刀真槍的實(shí)戰(zhàn)型測試,的確值得夸一句“厲害了人家的鵝”。
這個打榜結(jié)果放出來以后,業(yè)內(nèi)有數(shù)據(jù)庫老炮兒,看了TPC-DS的結(jié)果,也都紛紛點(diǎn)贊,坦言“DS還是挺難的,這成績不容易”。
也有大甲方笑評:核心生產(chǎn)系統(tǒng)可以更加放心地吃吃國產(chǎn)數(shù)據(jù)庫螃蟹了。
的確,打榜這件事,不僅是鵝廠的勝利,也是國產(chǎn)數(shù)據(jù)庫的勝利,相信未來我們會看到越來越多的核心生產(chǎn)系統(tǒng),用上國產(chǎn)數(shù)據(jù)庫。
比如,兩次打榜的主角TDSQL,已經(jīng)被4000多家來自金融、公共服務(wù)和電信等垂直行業(yè)客戶采用,服務(wù)超過30家金融機(jī)構(gòu)完成核心系統(tǒng)替換,中國十大銀行中的七家都在用。
而在云上場景,企業(yè)同樣可以享受到極致性能。最近,騰訊云發(fā)布了云數(shù)據(jù)庫MySQL集群版,通過架構(gòu)升級與內(nèi)核優(yōu)化,既保持云原生架構(gòu)的極致彈性,又能超越傳統(tǒng)架構(gòu),實(shí)現(xiàn)性能提開30%,內(nèi)存占用下降15%,單核 QPS突破10000。
基礎(chǔ)軟件的國產(chǎn)化替代,任重道遠(yuǎn),但曙光已現(xiàn)~
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.