在“2013中關(guān)村大數(shù)據(jù)日”的大數(shù)據(jù)智慧城市論壇上,云人科技CEO吳朱華帶來(lái)主題"關(guān)于智慧城市的思考-實(shí)時(shí)大數(shù)據(jù)處理的機(jī)遇與挑戰(zhàn)"演講。他認(rèn)為大數(shù)據(jù)在各行業(yè)的機(jī)遇如下:金融證券(高頻交易、量化交易),電信業(yè)務(wù)(支撐系統(tǒng)、統(tǒng)一營(yíng)帳、商業(yè)智能),能源(電廠電網(wǎng)監(jiān)控、用電信息采集分析),互聯(lián)網(wǎng)與電商(用戶行為分析、商品模型分析、信用分析),其他行業(yè)如智慧城市、物聯(lián)網(wǎng)。
吳朱華:非常榮幸來(lái)到這個(gè)論壇,我是上海云人科技有限公司的CEO。因?yàn)槲覀児具@一兩年都是專注于大數(shù)據(jù)實(shí)時(shí)分析,我這邊想分享一下在我們眼中大數(shù)據(jù)的機(jī)遇和挑戰(zhàn),應(yīng)對(duì)大數(shù)據(jù)的分析,以及一些比較經(jīng)典的案例。
我的名字叫吳朱華,我2006年、2009年都在中關(guān)村軟件園,IBM中國(guó)研究院做一些云操作系統(tǒng)的開(kāi)發(fā)工作。2009年年底,我從中國(guó)IBI中國(guó)研究院離職,2010年回到上海。2010年我寫一本書叫《云計(jì)算核心技術(shù)剖析》,我從2011年開(kāi)始,2012年,2013年到現(xiàn)在,一直在上海組建上海云人科技的團(tuán)隊(duì),非常注重大數(shù)據(jù)的分析領(lǐng)域,推出了一個(gè)產(chǎn)品叫Yun table。
接下來(lái)給大家講一下大數(shù)據(jù)分析的一些機(jī)遇和場(chǎng)景。我們這兩年的實(shí)踐感覺(jué),現(xiàn)在大數(shù)據(jù)已經(jīng)在轉(zhuǎn)變,從這兩年的大,慢慢的轉(zhuǎn)變?yōu)橛执笥挚臁K哉f(shuō)實(shí)時(shí)的處理對(duì)很多的行業(yè)而言,已經(jīng)是一個(gè)剛需。
我們發(fā)現(xiàn)只要這個(gè)公司有大數(shù)據(jù)的資產(chǎn),他一般非常需要實(shí)時(shí)的分析。我以智慧城市、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)為例。一個(gè)城市,大概有十幾萬(wàn)的攝像頭在城市里面,每秒都會(huì)發(fā)數(shù)據(jù)到云端的數(shù)據(jù)中心里面,每天有TB級(jí)別的數(shù)據(jù)需要處理,并且需要實(shí)時(shí)的反饋,這個(gè)場(chǎng)景需要實(shí)時(shí)處理的技術(shù)。
比如說(shuō)車聯(lián)網(wǎng),我們有一個(gè)客戶做車聯(lián)網(wǎng),他大概一個(gè)城市每臺(tái)電腦上,都要裝終端,這個(gè)終端每分鐘會(huì)發(fā)一個(gè)路況的信息發(fā)到云端,要發(fā)一億條數(shù)據(jù)到云端里面,并且是每分鐘進(jìn)行一些計(jì)算,實(shí)時(shí)的判斷路況,給用戶最好的行車建議。
比如金融的證券方面,也需要一些分析。比如金融交易電話交易是一個(gè)主流的方向,我們?yōu)橐粋€(gè)證券的機(jī)構(gòu)構(gòu)建了一個(gè)非常大的云平臺(tái),有幾百億條數(shù)據(jù)放在后臺(tái)里面,可以實(shí)時(shí)的提供數(shù)據(jù)的分析,數(shù)據(jù)的接口,讓他們快速的運(yùn)行。
比如電信,我們這邊在移動(dòng)那邊有一個(gè)案例。我們?cè)谝粋€(gè)省里面,我們把一個(gè)省的所有上網(wǎng)的信息,都加載到我們的集權(quán)里面,我們的集權(quán)可以把一些統(tǒng)計(jì)反饋給他們,支撐他們一些業(yè)務(wù)的支撐系統(tǒng),還有商業(yè)技能,還有統(tǒng)計(jì)相關(guān)的。
比如能源的分析,主要用于電廠電網(wǎng)的監(jiān)控,用電信息采集的分析。
比如說(shuō)互聯(lián)網(wǎng)的電商他們可以實(shí)時(shí)的做一些分析,實(shí)時(shí)的推廣廣告給用戶,他們可以做商品模型的分析,把最好的產(chǎn)品推薦給用戶。比如說(shuō)互聯(lián)網(wǎng)里面,有一個(gè)商品模型,還有信用分析。我有一個(gè)朋友是做信用分析的,在十幾秒鐘之內(nèi)把這個(gè)人的數(shù)據(jù)進(jìn)行一個(gè)分析,給用戶做一個(gè)評(píng)級(jí),迅速的判斷這個(gè)用戶是不是值得放貸款給他。
只要這個(gè)行業(yè)有大數(shù)據(jù)的資產(chǎn),只要這個(gè)公司有大數(shù)據(jù)的資產(chǎn),一般都需要大數(shù)據(jù)分析的力量,提升綜合的競(jìng)爭(zhēng)力。
我談一下為什么需要大數(shù)據(jù)實(shí)時(shí)的分析。第一、實(shí)時(shí)的決策,量化交易,我可以實(shí)時(shí)的計(jì)算數(shù)據(jù),迅速的判斷我是買股票還是不買。
第二、提高業(yè)務(wù)效率。
第三、對(duì)于到數(shù)據(jù),我們可以自由的嘗試一些新的算法,或者是新的策略。這樣通過(guò)實(shí)時(shí)的嘗試,我們可以快速發(fā)現(xiàn)新的觀點(diǎn)和機(jī)會(huì)。
第四、提供業(yè)務(wù)產(chǎn)出。我發(fā)現(xiàn)越來(lái)越的行業(yè),開(kāi)始需要這樣的能力。
大數(shù)據(jù)的挑戰(zhàn)是什么呢?什么是大數(shù)據(jù)的實(shí)時(shí)分析,就是在幾秒,或者1秒內(nèi)完成億萬(wàn)級(jí)數(shù)據(jù)的處理和分析??欤?0秒以內(nèi),100毫秒為佳給出結(jié)果?;ヂ?lián)網(wǎng)公司,百度他們希望100毫秒給出結(jié)果。一些金融機(jī)構(gòu)他們希望微秒給出結(jié)果,需要實(shí)時(shí)的能力,第一點(diǎn)就是快,就是實(shí)時(shí)的分析。
第二、就是大,我希望我針對(duì)的數(shù)據(jù)量,是10億每TB的級(jí)別,是非常龐大的,遠(yuǎn)遠(yuǎn)超過(guò)我們之前對(duì)于數(shù)據(jù)的理解。之前我們認(rèn)為數(shù)據(jù)超過(guò)1000萬(wàn)不算大。我們現(xiàn)在碰到最大的集權(quán),大概是接近萬(wàn)億條數(shù)據(jù)這樣的級(jí)別。
第三、希望可以做各種各樣的分析操作。最簡(jiǎn)單的是查詢,也可以是邏輯復(fù)雜一些的算法和數(shù)據(jù)分析。這是大數(shù)據(jù)最重要的三點(diǎn)標(biāo)準(zhǔn)。第一是快,最起碼是10秒,有一些行業(yè)是微秒。第二個(gè)是大,我針對(duì)數(shù)據(jù)量是10億以上、百億TB的級(jí)別。第三、是分析操作多樣?;旧鲜沁@三點(diǎn),對(duì)于有一些行業(yè)可能有一些并發(fā),我們?cè)?jīng)為證券公司做了大數(shù)據(jù)的平臺(tái),說(shuō)你超過(guò)100毫秒以內(nèi)這是必須的。所以要實(shí)現(xiàn)大數(shù)據(jù)的實(shí)時(shí)分析,挑戰(zhàn)是非常巨大的。
有哪些技術(shù)可以選型?第一個(gè)是hadoop,hadoop本身是谷歌研發(fā)出來(lái)的,它是在大數(shù)據(jù)方面的算法,他是TB最起碼的,在大方面沒(méi)有問(wèn)題。并且操作多樣化,因?yàn)樗暇€的工具有很多的算法都是非常不錯(cuò)的。但是它的快比較尷尬,他需要一分鐘以內(nèi)才可以,他很多要做一個(gè)reduce,需要很長(zhǎng)的時(shí)間。
第二、No SQL。在大方面,應(yīng)該可以支撐大。Hbase可以滿足大的特點(diǎn),它可以做到一個(gè)大。Hbase底層是數(shù)據(jù)庫(kù),只能支持簡(jiǎn)單的查詢。Hbase很難做一些邏輯復(fù)雜的數(shù)據(jù)分析和挖掘。比如說(shuō)淘寶那邊,他們可能比較有錢,他們用大量的硬件和大量的開(kāi)發(fā)成本,有一套Hbase的數(shù)據(jù)開(kāi)發(fā)集群。對(duì)于中小企業(yè),和傳統(tǒng)的企業(yè)是不的太適合用No SQL做分析的。它需要巨大的硬件成本和開(kāi)發(fā)成本。
傳統(tǒng)的數(shù)據(jù)庫(kù)甲骨文支持大數(shù)據(jù)的分析嗎?支持算法可以,但是天生對(duì)大比較吃力。
介紹一下我的方案,就是叫Yun Table,它支持基于內(nèi)存計(jì)算,產(chǎn)品形態(tài)方面,也可以認(rèn)為是新一代的數(shù)據(jù)倉(cāng)庫(kù)。Yun Table的核心著力點(diǎn),我們?cè)谠O(shè)計(jì)方面,比較專注兩個(gè)方面:第一優(yōu)化方面,是專注于內(nèi)存,是專注能夠從摩爾定律不斷提升的東西,我們這邊對(duì)內(nèi)存SD做了很好的優(yōu)化。但是它很貴,我們引入了列存,壓縮比很高,他能把數(shù)據(jù)壓得很小。Column storage彌補(bǔ)了前面的高成本。
我們能夠通過(guò)硬件的發(fā)展,不斷的體現(xiàn)我們?cè)诖髷?shù)據(jù)方面的優(yōu)勢(shì)。第三點(diǎn)特色是比較快,我們可以很快的處理海量的數(shù)據(jù),并且可以做數(shù)據(jù)的統(tǒng)計(jì)和分析。性能上,跟甲骨文相比,我們的單機(jī)性能是他的幾十倍,我們做大數(shù)據(jù)的實(shí)時(shí)分析。這是我們幾個(gè)比較核心的特性。
第一、我們能夠?qū)Υ髷?shù)據(jù),十億行,百億行的數(shù)據(jù)進(jìn)行計(jì)算。
第二、通用X86的硬件。
第三、可以擴(kuò)展至百臺(tái)集群。
第四、PB級(jí)別的存儲(chǔ)量。
第五、提供多平臺(tái)的SQL驅(qū)動(dòng)、其支持R數(shù)據(jù)挖掘語(yǔ)言。
看一下我們的整體架構(gòu),最上端是驅(qū)動(dòng)。中間會(huì)有一個(gè)虛擬的IP,能夠讓Mastes Nodes里有兩個(gè)管理。
地層是數(shù)據(jù)節(jié)點(diǎn),通過(guò)一些算法,到每一個(gè)節(jié)點(diǎn)上,這些節(jié)點(diǎn)都是我們自主產(chǎn)生的。并且性能的核心價(jià)值,都在這里面體現(xiàn)。
講一下我們的核心技術(shù),為什么這樣快?
一、并行處理。
二、行列混合存儲(chǔ)。
三、壓縮。
四、內(nèi)存計(jì)算。
什么是并行處理?一個(gè)數(shù)據(jù)到集群里面,它自動(dòng)會(huì)分發(fā)到各個(gè)節(jié)點(diǎn)上面。比如我10個(gè)節(jié)點(diǎn)的集群,我把一份數(shù)據(jù)分成十份,每一個(gè)節(jié)點(diǎn)處理單獨(dú)的數(shù)據(jù),可以加快10倍。并且一份數(shù)據(jù)可以復(fù)制多份,這樣任何的節(jié)點(diǎn)down機(jī)都不會(huì)影響業(yè)務(wù)的完整了數(shù)據(jù)的連續(xù)性。我們支持最新的指令集,可以進(jìn)一步的優(yōu)化,嘗試支持GPU,這是我們的定性處理。
第二是行業(yè)混合存儲(chǔ)。這樣一張簡(jiǎn)單的表,里面有一些名字、歲數(shù)、性別三列的數(shù)據(jù),先到我們的區(qū)域里面的,我們首先會(huì)保證分區(qū)。我們前端是基于傳統(tǒng)行的,我們有行分區(qū),這樣能夠節(jié)省很多的開(kāi)發(fā)成本。之后我們到底層會(huì)進(jìn)行一個(gè)轉(zhuǎn)化。傳統(tǒng)的行是趙、25、男,我們的后端會(huì)把名字存在一起,性別、年齡存一起。我做一個(gè)查詢,我沒(méi)必要去找名字跟性別,我找年齡就可以了,這樣一下子減少了三分之二,減少IO量,我只需要我所需要的列就可以,不需要把每個(gè)列都讀出來(lái)。還有就是高效壓縮,我們能做一些快速的聚合,我們看出最大的值是31,最小值是24,這時(shí)候有一個(gè)查詢,是大于32個(gè)。最大的就是31,可以加快整體的運(yùn)行。
最后就是在列的基礎(chǔ)上,加了一些新的索引結(jié)構(gòu)。據(jù)我們了解,傳統(tǒng)的基于位置索引,它的成本會(huì)非常高,不一定適合大數(shù)據(jù)這樣的場(chǎng)景。
這是高效壓縮,我們?cè)诹械幕A(chǔ)上面,做一些優(yōu)化,所以使得我們的壓縮率非常高。高大7到20倍,并且我們支持多種壓縮的算法,支持輕度的,也支持深度的。比如說(shuō)一些熱數(shù)據(jù),我們可以采用競(jìng)標(biāo)的算法。但是對(duì)于一些不大常用的數(shù)據(jù),可以把它壓的很小。
如果壓縮數(shù)據(jù),我們還需要解壓縮,我們現(xiàn)在是希望不解壓縮,直接進(jìn)行處理,這樣性能更進(jìn)一步的加大。
最后就是內(nèi)存計(jì)算,現(xiàn)在的潮流就是服務(wù)器越來(lái)越多,內(nèi)存越來(lái)越多,我們可以通過(guò)構(gòu)建非常大的集群,有很多的數(shù)據(jù)。公司核心的業(yè)務(wù)數(shù)據(jù)都放在里面。之前我們給金融機(jī)構(gòu)做一個(gè)大數(shù)據(jù)的平臺(tái),這大概有10臺(tái)機(jī)器。我們內(nèi)存大概是2.5T的內(nèi)存量,我們壓縮比是10倍,他能夠降25T的數(shù)據(jù)放在內(nèi)存里面,就相當(dāng)于這個(gè)機(jī)構(gòu)10年的業(yè)務(wù)數(shù)據(jù)進(jìn)行處理。第一點(diǎn)它能夠快速的處理,它能夠做很強(qiáng)的變化,因?yàn)槎际莾?nèi)存,可以做很多并發(fā)的操作。
最后講一下,這邊是甲骨文,他對(duì)1TB的數(shù)據(jù)進(jìn)行分析,需要從硬盤到內(nèi)存需要幾個(gè)小時(shí)。一個(gè)50頁(yè)的表,真正的處理從5頁(yè)就可以,我50頁(yè)只要5頁(yè),45頁(yè)就不需要了,這樣減少了IO的讀取率。
最后也是壓縮,我們是內(nèi)存計(jì)算,這樣我已經(jīng)將1TB的IO,從幾小時(shí)算到幾秒。
給大家講幾個(gè)比較簡(jiǎn)單的案例。第一個(gè)是互聯(lián)網(wǎng),互聯(lián)網(wǎng)可以用我們的實(shí)時(shí)技術(shù)作為電商的社交網(wǎng)絡(luò)。講互聯(lián)網(wǎng)播放效果,實(shí)時(shí)的監(jiān)測(cè)。廣告業(yè)主可以在淘寶平臺(tái)上購(gòu)買廣告,可以把這些廣告發(fā)布到網(wǎng)站上,比如說(shuō)QQ,新浪,用戶看這個(gè)廣告的時(shí)候,用戶就會(huì)產(chǎn)生一些日志,這些日志都會(huì)發(fā)送到監(jiān)測(cè)的平臺(tái),這個(gè)時(shí)候監(jiān)測(cè)平臺(tái),就會(huì)送到Y(jié)un Table里面。Yun Table會(huì)對(duì)數(shù)據(jù)進(jìn)行分析。
可以做這些分析,我們看這個(gè)廣告點(diǎn)擊一次有幾個(gè)人,通過(guò)我們平時(shí)分析這種東西,我們能夠做一些防錯(cuò)的措施。重合度分析,多維度的分析。
第二點(diǎn)就是電信運(yùn)營(yíng)商,運(yùn)營(yíng)商很多系統(tǒng)可以用到。我們?cè)谀硞€(gè)省的移動(dòng),它大概是用戶上網(wǎng)投訴系統(tǒng),用戶我上網(wǎng)我一下發(fā)現(xiàn)自己的網(wǎng)費(fèi)用的很厲害,我可以打10086問(wèn)一下。10086會(huì)實(shí)時(shí)的調(diào)出他一個(gè)月上網(wǎng)的數(shù)據(jù),說(shuō)你上優(yōu)酷,或者是什么網(wǎng)站,所以你用了很多。但是10086他們希望10秒內(nèi)給出結(jié)果,他們之前試了很多。最后我試一下我們,我們大概是6個(gè)節(jié)點(diǎn),放了一千一百五十三億條的數(shù)據(jù),我們做一些查詢,都可以在一兩秒之內(nèi)出結(jié)果。是非常迅速的。
這邊是英特爾的Hbase,他們是放一條數(shù)據(jù),而我們是六個(gè)節(jié)點(diǎn),是放了一千多位的數(shù)據(jù),這是一千倍的差距。
第三點(diǎn)是金融。我們給每一個(gè)國(guó)內(nèi)的證券機(jī)構(gòu)做一個(gè)量化的交易。我們底層2.5T,存了800億條的數(shù)據(jù)。我們提供接口,幫他們實(shí)時(shí)的處理。我們這10個(gè)節(jié)點(diǎn),我們按照30秒的力度,對(duì)他一條的交易進(jìn)行一個(gè)匯總,算一下他的價(jià)格,和加起來(lái)的平均值。我可以取某個(gè)時(shí)間端,前50個(gè)信息,我們做一些查詢。我們都是在100毫秒,50毫秒量級(jí)完成。并且我們會(huì)支持并發(fā),我們支持同時(shí)有一千人有類似的操作。
我們這個(gè)產(chǎn)品Yun Table,能為大數(shù)據(jù)進(jìn)行實(shí)時(shí)的處理,并且我們已經(jīng)在電信方面有成熟的案例。歡迎大家交流起來(lái)。