BOB半島一英里不是個很長的距離,一立方英里相對于地球也不會讓人覺得是個很大的空間。然后我說,這個空間內(nèi)能裝下全世界所有人,你會不會覺到很驚訝?不過這話不是我說的,是美國作家房龍?jiān)谝槐緯飳懙摹?/p>
業(yè)內(nèi)有個著名的數(shù)據(jù)倉庫產(chǎn)品,叫Teradata,20多年前起這個名字,顯然是想給人能處理海量數(shù)據(jù)的感覺??涩F(xiàn)在,論用戶還是廠商,談?wù)摂?shù)據(jù)量時都常常以T為單位了BOB半島,動不動就有幾十上百T甚至PB級的數(shù)據(jù)。似乎T不是個多大的數(shù),多幾個幾十個T也沒什么大不了的。
其實(shí)T有點(diǎn)象上面說的立方英里,是個挺大的數(shù)。很多人對它沒有多深的感性認(rèn)識,我們要換個角度來看1T數(shù)據(jù)意味著什么。
用于分析計(jì)算的數(shù)據(jù)仍然以結(jié)構(gòu)化數(shù)據(jù)為主。結(jié)構(gòu)化數(shù)據(jù)中占據(jù)空間最大的是不斷增長的交易類記錄,這種數(shù)據(jù)每條并不大,大概只有幾十到100字節(jié),比如銀行交易只要記下帳號、日期、金額;電信的通話記錄也只是通話號碼、時刻、時長等BOB半島。就按100字節(jié)算,也就是0.1K,那么1T空間就可以放下10G行記錄,100億條!
這是什么概念呢?一年大概是3000多萬秒,如果用一年時間來積累1T數(shù)據(jù),那意味著每秒要產(chǎn)生300多筆記錄,24小時不停息!
這個數(shù)也不算大,象中國這樣的大國,電信運(yùn)營商、全國級銀行以及大型互聯(lián)公司都不難有這種規(guī)模的業(yè)務(wù)量。但對于一個城市級別甚至有些省級的機(jī)構(gòu)就是個不小的數(shù)了,比如稅務(wù)部門采集的企業(yè)交稅信息、連鎖超市的商品購買數(shù)據(jù)、城市商業(yè)銀行的交易記錄等,要達(dá)到300筆/秒并不容易,何況很多機(jī)構(gòu)只有白天或工作日才能產(chǎn)生數(shù)據(jù)。而且這還只是1T,要搞到幾十上百T,那就得讓業(yè)務(wù)量再上一兩個數(shù)量級才行。
簡單說有多少T數(shù)據(jù)是沒什么感覺的,換算成每秒對應(yīng)的業(yè)務(wù)量后,才知道是不是靠譜。大數(shù)據(jù)分析計(jì)算產(chǎn)品的技術(shù)方案和數(shù)據(jù)量相關(guān)性非常強(qiáng),正確估算自己的數(shù)據(jù)量對于大數(shù)據(jù)平臺的建設(shè)是至關(guān)重要的。
如果用來存儲音頻視頻這種非結(jié)構(gòu)化數(shù)據(jù), 或者僅僅用于備份原始憑據(jù),那1T空間就存不了多少東西了,但這種數(shù)據(jù)一般也沒什么要分析計(jì)算的需求,只是存儲和檢索,那不需要什么大數(shù)據(jù)計(jì)算平臺,只要有個網(wǎng)絡(luò)文件系統(tǒng)就行了,這成本就低多了。
假設(shè)有1T數(shù)據(jù),那么要多少時間才能處理一遍?有些廠商宣稱能在數(shù)秒內(nèi)處理TB級數(shù)據(jù),用戶經(jīng)常也這樣期望,這可能嗎?
機(jī)械硬盤在操作系統(tǒng)下的讀取數(shù)據(jù)大概是150M/秒(不能看硬盤廠商那個指標(biāo),根本達(dá)不到),固態(tài)硬盤快些,能翻個倍。我們就算300M/秒,那么1T數(shù)據(jù)只是讀取不做任何運(yùn)算也需要3000秒以上,接近一個小時!那怎么可能數(shù)秒內(nèi)處理1T數(shù)據(jù)呢?很簡單BOB半島,增加硬盤,如果有1000塊硬盤,那就可以在3秒左右讀出1T數(shù)據(jù)了。
這還是比較理想的估算。實(shí)際上數(shù)據(jù)不大可能存放著那么整齊(硬盤不連續(xù)讀取時性能下降嚴(yán)重)BOB半島,集群(1000塊硬盤顯然不會在一臺機(jī)器上)還有網(wǎng)絡(luò)延遲,有些運(yùn)算可能還有回寫動作(大分組和排序等),秒級訪問常常還會有并發(fā)需求BOB半島,這些因素綜合起來,再慢幾倍也是正常的。
現(xiàn)在我們知道了,1T數(shù)據(jù)意味著幾個小時,或者上千塊硬盤。而且還是前面的線T,可想而知幾十上百T會是什么概念了。
內(nèi)存是比硬盤快得多,而且還適合并行計(jì)算。不過大內(nèi)存的機(jī)器并不便宜(成本不是線性增長的),而且更糟糕的是,內(nèi)存使用率經(jīng)常很低。比如許多計(jì)算體系都是基于Java平臺的,如果不做特別的壓縮優(yōu)化的話,JVM的內(nèi)存利用率只有20%的樣子,也就是硬盤上1T數(shù)據(jù)需要5T內(nèi)存才能加載進(jìn)來,這得裝多少機(jī)器,花多少錢?
我們對1T有了上面這些感性認(rèn)識后,聽到多少多少T的說法時,就可以隨時腦補(bǔ)出交易、節(jié)點(diǎn)數(shù)、成本等信息。做平臺規(guī)劃和產(chǎn)品選擇時,就不容易被忽悠了。Teradata這個名字,今天也還不算過時的。