大數(shù)據(jù)的召喚,它怎么就大了呢?
20年前,386電腦上200MB的硬盤是主流配置,現(xiàn)在筆記本上的硬盤主流配置是500GB。大了 5*1024/2=2560倍。500GB大嗎?一部高清電影的大小在20GB左右,不過是25部高清,所以在家看高清的都是用1TB的硬盤,2塊。
做數(shù)據(jù)倉庫一般不會(huì)在系統(tǒng)里處理高清電影,而是業(yè)務(wù)數(shù)據(jù)。電信運(yùn)營商1.5億用戶每天的數(shù)據(jù)大概在90GB左右,數(shù)據(jù)倉庫各層合計(jì)的存儲(chǔ)規(guī)劃不到30TB。 而淘寶推出的數(shù)據(jù)產(chǎn)品,數(shù)據(jù)魔方,據(jù)說每天處理的數(shù)據(jù)有幾百TB,用將近200臺(tái)PC server搭成的Greenplum集群來處理這些數(shù)據(jù)。幾百TB大嗎?
“大”是個(gè)相對(duì)的概念,沒有止境?,F(xiàn)在之所以提大數(shù)據(jù),是因?yàn)榧夹g(shù)上出現(xiàn)了瓶頸,相對(duì)已有的技術(shù)來說,數(shù)據(jù)大了。是在用Oracle、DB2搭數(shù)據(jù)倉庫搭的很無奈,等報(bào)表等的很惆悵之后,才恍然發(fā)現(xiàn)數(shù)據(jù)大了。大就有問題,而且問題很多,但最主要的問題是慢!數(shù)據(jù)臟,數(shù)據(jù)假,領(lǐng)導(dǎo)一時(shí)都反映不過來,但如果讓領(lǐng)導(dǎo)等,領(lǐng)導(dǎo)開會(huì)前拿不到報(bào)告,他就會(huì)拍桌子罵人!或者干脆不給錢…..
慢是因?yàn)槿缃竦纳虡I(yè)智能(BI)架構(gòu)不能有效的管理數(shù)據(jù)。數(shù)據(jù)處理再次進(jìn)入了一個(gè)群雄割據(jù)、各顯其能的激烈競爭時(shí)代(上一次還是在關(guān)系型數(shù)據(jù)庫一紙定江山之前),是要為幾年后流淌著蜂蜜和牛奶的幸福生活流汗流血拼命搶地盤的時(shí)代。所以,大數(shù)據(jù)熱了。
當(dāng)然,那是大廠商們的戰(zhàn)爭,大數(shù)據(jù)的歷史也是由他們譜寫的。作為一名只能喝湯度日的有志青年,怎么搭上這班車?是很多IT屌絲午夜夢回時(shí)都曾考慮過的問題吧。既然改變不了數(shù)據(jù)變大的事實(shí),我們只好看看它大在哪里了吧,想解決問題,總得知道問題是什么。
它大在哪了呢?
程序員們做事務(wù)處理系統(tǒng),或者叫業(yè)務(wù)系統(tǒng)已經(jīng)做了很多年了。Oracle一直表現(xiàn)的挺好,系統(tǒng)實(shí)在太大了就搭RAC,也沒什么大不了的。當(dāng)然DB2也不錯(cuò),mysql也沒問題。用誰都能順利走完業(yè)務(wù)流程(數(shù)據(jù)庫免責(zé)聲明:賣票慢和我無關(guān))。
商業(yè)智能系統(tǒng)(分析系統(tǒng))和業(yè)務(wù)系統(tǒng)不同,為了得到一個(gè)統(tǒng)計(jì)分析結(jié)果,要處理很多數(shù)據(jù)(包括各種關(guān)聯(lián)關(guān)系),做非常復(fù)雜的查詢和分析操作。如果直接處理細(xì)粒度的原始業(yè)務(wù)數(shù)據(jù),相關(guān)數(shù)據(jù)的范圍會(huì)很大,甚至可能對(duì)應(yīng)業(yè)務(wù)系統(tǒng)中幾十張表里的全表數(shù)據(jù)。或者說,要從上億條記錄里找出一條記錄不是大數(shù)據(jù)問題;而給上億條記錄分類,找出其中的規(guī)律就是大數(shù)據(jù)問題。因?yàn)樾枨笞兇罅?,范圍和?fù)雜性變大了,所以數(shù)據(jù)變大了。
前面所說的數(shù)據(jù)都是很規(guī)整的關(guān)系型數(shù)據(jù),不管按行存儲(chǔ)還是按列存儲(chǔ),都是結(jié)構(gòu)化數(shù)據(jù)。要想做到真正的智能,只關(guān)注結(jié)構(gòu)化數(shù)據(jù)是不行的。最好的例子就是搜索引擎,它處理非結(jié)構(gòu)化數(shù)據(jù),產(chǎn)生半結(jié)構(gòu)化甚至結(jié)構(gòu)化數(shù)據(jù),加快搜索查詢的速度。這些非結(jié)構(gòu)化數(shù)據(jù)非常多,email,系統(tǒng)日志,系統(tǒng)事件,多媒體文件,分析起來也更復(fù)雜?;蛘哒f,發(fā)微博不是大數(shù)據(jù)問題,但輿情監(jiān)控是。因?yàn)樾枨笞兇罅?,?shù)據(jù)源變大了,所以數(shù)據(jù)變大了。
綜上所述,大數(shù)據(jù)和尺寸無關(guān),和需求相連。
更快,更快,更快
耐心是一種美德,可忍耐也是有限度的。那么好的機(jī)器跑兩個(gè)小時(shí)也不給個(gè)結(jié)果。當(dāng)硬件不再是性能的救命稻草,怎么辦?召喚新架構(gòu)。
圖 1. 充門面的架構(gòu)圖,不解釋
為適應(yīng)大數(shù)據(jù)的處理需求,要在架構(gòu)中集成新技術(shù)、新產(chǎn)品,渡過大數(shù)據(jù)難關(guān)。
大規(guī)模并行處理系統(tǒng)
解決大問題的終極辦法就是大事化小小事化了。分而治之,蓋無能出其右者。
MPP (Massively Parallel Processing),大規(guī)模并行處理系統(tǒng),由許多松耦合的處理單元組成的。每個(gè)單元都有自己私有的資源,有獨(dú)立的操作系統(tǒng)和管理數(shù)據(jù)庫實(shí)例。它最大的特點(diǎn)在于不共享資源。Greenplum,Sybase IQ,Elasticsearch 都支持這種結(jié)構(gòu)。
Hadoop
Hadoop 項(xiàng)目開始于 2005 年秋天,當(dāng)初是作為 Lucene的子項(xiàng)目 Nutch的一部分。受到 Google Lab 開發(fā)的 Map/Reduce 和 Google File System(GFS) 的啟發(fā)。2006 年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 分別被納入Hadoop 的項(xiàng)目中。
MapReduce
MapReduce是由Google提出的軟件架構(gòu),包括兩個(gè)概念,“Map(映射)”和“Reduce(化簡)”,用于指導(dǎo)大規(guī)模數(shù)據(jù)集的并行運(yùn)算。如果你了解函數(shù)式編程的概念,應(yīng)該對(duì)這兩個(gè)概念很熟悉。
映射函數(shù)對(duì)一個(gè)列表中的每個(gè)元素進(jìn)行指定的操作。但它不會(huì)修改原始列表,而是創(chuàng)建一個(gè)新列表來保存操作結(jié)果。不變的原始列表,元素上的獨(dú)立操作,所以Map操作是可以并發(fā)執(zhí)行的。
化簡操作對(duì)一個(gè)列表的元素進(jìn)行適當(dāng)?shù)暮喜ⅰ?梢园蚜斜聿鸪蓭撞糠郑鞑糠植l(fā)計(jì)算,然后遞歸。
Hadoop的架構(gòu)
Hadoop 有許多元素構(gòu)成。其最底部是 Hadoop Distributed File System(HDFS),它存儲(chǔ) Hadoop 集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。HDFS(對(duì)于本文)的上一層是 MapReduce 引擎,該引擎由JobTrackers 和 TaskTrackers 組成。
對(duì)外部客戶機(jī)而言,HDFS 就像一個(gè)傳統(tǒng)的分級(jí)文件系統(tǒng)。可以創(chuàng)建、刪除、移動(dòng)或重命名文件,等等。但是 HDFS 的架構(gòu)是基于一組特定的節(jié)點(diǎn)構(gòu)建的,這是由它自身的特點(diǎn)決定的。這些節(jié)點(diǎn)包括 NameNode(僅一個(gè)),它在 HDFS 內(nèi)部提供元數(shù)據(jù)服務(wù);DataNode,它為 HDFS 提供存儲(chǔ)塊。由于僅存在一個(gè) NameNode,因此這是 HDFS 的一個(gè)缺點(diǎn)(單點(diǎn)失?。?/p>
存儲(chǔ)在 HDFS 中的文件被分成塊,然后將這些塊復(fù)制到多個(gè)計(jì)算機(jī)中(DataNode)。這與傳統(tǒng)的 RAID 架構(gòu)大不相同。塊的大?。ㄍǔ?64MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時(shí)由客戶機(jī)決定。NameNode 可以控制所有文件操作。HDFS 內(nèi)部的所有通信都基于標(biāo)準(zhǔn)的 TCP/IP 協(xié)議。
MapReduce則是JobTracker節(jié)點(diǎn)為主,分配工作以及負(fù)責(zé)和用戶程序通信。用戶只要繼承MapReduceBase,提供分別實(shí)現(xiàn)Map和Reduce的兩個(gè)類,并注冊(cè)Job即可自動(dòng)分布式運(yùn)行。HDFS和MapReduce實(shí)現(xiàn)是完全分離的,并不是沒有HDFS就不能MapReduce運(yùn)算。
基于語義計(jì)算系統(tǒng)
非結(jié)構(gòu)化信息的形式包括文檔、電子郵件、電話錄音以及多媒體內(nèi)容。基于語義計(jì)算技術(shù)使計(jì)算機(jī)能夠理解各中非結(jié)構(gòu)化信息之間的聯(lián)系,進(jìn)而執(zhí)行復(fù)雜的分析操作。其中的關(guān)鍵技術(shù)是文本挖掘技術(shù) 。
基于語義計(jì)算技術(shù)與關(guān)鍵詞搜索這些只能進(jìn)行數(shù)據(jù)查找與檢索的傳統(tǒng)方法不同。舉例而言,關(guān)鍵詞搜索引擎不能理解信息的含義,因此這些產(chǎn)品只能用于找出帶某個(gè)字詞的文檔。然而由于無法理解含義,所以那些使用了不同字詞但主題卻相同(即有相關(guān)性)的文檔將被忽略。而那些主題與用戶期望搜索的內(nèi)容完全不同的文檔卻經(jīng)常被返回,從而使得用戶必須修改查詢方式來適應(yīng)這種搜索引擎。
除此之外,基于語義的計(jì)算還能提供關(guān)鍵詞搜索引擎無法提供的許多功能,例如自動(dòng)形成超鏈接以及聚類。舉例而言,自動(dòng)形成超鏈接可以向用戶提供眾多在語境上與原有的文檔相互聯(lián)系的文檔、服務(wù)和產(chǎn)品,這就要求計(jì)算機(jī)能夠完全理解原有文檔的含義。與此類似,要使計(jì)算機(jī)能夠自動(dòng)收集、分析并組織信息,就必須賦予其提取語義的能力。只有擁有基于語義計(jì)算技術(shù)的系統(tǒng)才能做到這一點(diǎn)。
R語言
R是一套完整的數(shù)據(jù)處理、計(jì)算和制圖軟件系統(tǒng)。其功能包括:數(shù)據(jù)存儲(chǔ)和處理系統(tǒng);數(shù)組運(yùn)算工具(其向量、矩陣運(yùn)算方面功能尤其強(qiáng)大);完整連貫的統(tǒng)計(jì)分析工具;優(yōu)秀的統(tǒng)計(jì)制圖功能;簡便而強(qiáng)大的編程語言:可操縱數(shù)據(jù)的輸入和輸出,可實(shí)現(xiàn)分支、循環(huán),用戶可自定義功能 貝爾實(shí)驗(yàn)室。
與其說R是一種統(tǒng)計(jì)軟件,還不如說R是一種數(shù)學(xué)計(jì)算的環(huán)境,因?yàn)镽并不是僅僅提供若干統(tǒng)計(jì)程序、使用者只需指定數(shù)據(jù)庫和若干參數(shù)便可進(jìn)行一個(gè)統(tǒng)計(jì)分析。R的思想是:它可以提供一些集成的統(tǒng)計(jì)工具,但更大量的是它提供各種數(shù)學(xué)計(jì)算、統(tǒng)計(jì)計(jì)算的函數(shù),從而使使用者能靈活機(jī)動(dòng)的進(jìn)行數(shù)據(jù)分析,甚至創(chuàng)造出符合需要的新的統(tǒng)計(jì)計(jì)算方法。
該語言的語法表面上類似 C,但在語義上是函數(shù)設(shè)計(jì)語言的(functional programming language)的變種并且和Lisp 以及 APL有很強(qiáng)的兼容性。特別的是,它允許在“語言上計(jì)算”(computing on the language)。這使得它可以把表達(dá)式作為函數(shù)的輸入?yún)?shù),而這種做法對(duì)統(tǒng)計(jì)模擬和繪圖非常有用。
R是一個(gè)免費(fèi)的自由軟件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免費(fèi)下載和使用的。在那兒可以下載到R的安裝程序、各種外掛程序和文檔。在R的安裝程序中只包含了8個(gè)基礎(chǔ)模塊,其他外在模塊可以通過CRAN獲得。
什么最重要?
不管數(shù)據(jù)怎么大,也是為了業(yè)務(wù)服務(wù)的。不管是要做精準(zhǔn)營銷還是維系挽留,或者了解市場上對(duì)公司品牌的認(rèn)知度如何,歸根結(jié)底都是通過分析業(yè)務(wù)數(shù)據(jù)來促進(jìn)業(yè)務(wù)。
商業(yè)智能要為商業(yè)服務(wù),就要對(duì)業(yè)務(wù)有更加深入透徹的了解,所以學(xué)會(huì)分析業(yè)務(wù)模型很重要,要能對(duì)企業(yè)架構(gòu)建模和分析。比如電信行業(yè)的eTOM,通用的TOGAF等。如果你還恰好懂一點(diǎn)兒營銷和管理,那就太棒了。
此外還要對(duì)量化管理知識(shí)體系有所了解,知道該從哪里入手,如何設(shè)定目標(biāo),要規(guī)避哪些風(fēng)險(xiǎn)(包括政治風(fēng)險(xiǎn))。
各種統(tǒng)計(jì)分析知識(shí)及常用數(shù)據(jù)挖掘算法,知道怎么做聚類、分類、回歸、關(guān)聯(lián)規(guī)則分析。
熟悉數(shù)據(jù)可視化,知道各種圖表的用法,關(guān)注新的數(shù)據(jù)可視化方式。
節(jié)選自圖書《量化:大數(shù)據(jù)時(shí)代的企業(yè)管理》
- 目前還沒評(píng)論,等你發(fā)揮!