
Big Data是近來(lái)的一個(gè)技術(shù)熱點(diǎn),但從名字就能判斷它并不是什么新詞。畢竟,大是一個(gè)相對(duì)概念。歷史上,數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市等信息管理領(lǐng)域的技術(shù),很大程度上也是為了解決大規(guī)模數(shù)據(jù)的問(wèn)題。被譽(yù)為數(shù)據(jù)倉(cāng)庫(kù)之父的Bill Inmon早在20世紀(jì)90年代就經(jīng)常將Big Data掛在嘴邊了。
然而,Big Data作為一個(gè)專有名詞成為熱點(diǎn),主要應(yīng)歸功于近年來(lái)互聯(lián)網(wǎng)、云計(jì)算、移動(dòng)和物聯(lián)網(wǎng)的迅猛發(fā)展。無(wú)所不在的移動(dòng)設(shè)備、RFID、無(wú)線傳感器每分每秒都在產(chǎn)生數(shù)據(jù),數(shù)以億計(jì)用戶的互聯(lián)網(wǎng)服務(wù)時(shí)時(shí)刻刻在產(chǎn)生巨量的交互……要處理的數(shù)據(jù)量實(shí)在是太大、增長(zhǎng)太快了,而業(yè)務(wù)需求和競(jìng)爭(zhēng)壓力對(duì)數(shù)據(jù)處理的實(shí)時(shí)性、有效性又提出了更高要求,傳統(tǒng)的常規(guī)技術(shù)手段根本無(wú)法應(yīng)付。
在這種情況下,技術(shù)人員紛紛研發(fā)和采用了一批新技術(shù),主要包括分布式緩存、基于MPP的分布式數(shù)據(jù)庫(kù)、分布式文件系統(tǒng)、各種NoSQL分布式存儲(chǔ)方案等。
10年前,Eric Brewer提出著名的CAP定理,指出:一個(gè)分布式系統(tǒng)不可能滿足一致性、可用性和分區(qū)容忍性這三個(gè)需求,最多只能同時(shí)滿足兩個(gè)。系統(tǒng)的關(guān)注點(diǎn)不同,采用的策略也不一樣。只有真正理解了系統(tǒng)的需求,才有可能利用好CAP定理。
架構(gòu)師一般有兩個(gè)方向來(lái)利用CAP理論。
Key-Value存儲(chǔ),如Amazon Dynamo等,可以根據(jù)CAP理論靈活選擇不同傾向的數(shù)據(jù)庫(kù)產(chǎn)品。
領(lǐng)域模型+分布式緩存+存儲(chǔ),可根據(jù)CAP理論結(jié)合自己的項(xiàng)目定制靈活的分布式方案,但難度較高。
對(duì)大型網(wǎng)站,可用性與分區(qū)容忍性優(yōu)先級(jí)要高于數(shù)據(jù)一致性,一般會(huì)盡量朝著A、P的方向設(shè)計(jì),然后通過(guò)其他手段保證對(duì)于一致性的商務(wù)需求。架構(gòu)設(shè)計(jì)師不要將精力浪費(fèi)在如何設(shè)計(jì)能滿足三者的完美分布式系統(tǒng),而應(yīng)該懂得取舍。
不同的數(shù)據(jù)對(duì)一致性的要求是不同的。SNS網(wǎng)站可以容忍相對(duì)較長(zhǎng)時(shí)間的不一致,而不影響交易和用戶體驗(yàn);而像支付寶這樣的交易和賬務(wù)數(shù)據(jù)則是非常敏感的,通常不能容忍超過(guò)秒級(jí)的不一致。
Cache篇
緩存在Web開發(fā)中運(yùn)用越來(lái)越廣泛,mem-cached是danga.com(運(yùn)營(yíng)LiveJournal的技術(shù)團(tuán)隊(duì))開發(fā)的一套分布式內(nèi)存對(duì)象緩存系統(tǒng),用于在動(dòng)態(tài)系統(tǒng)中減少數(shù)據(jù)庫(kù)負(fù)載,提升性能。
memcached具有以下特點(diǎn):
協(xié)議簡(jiǎn)單;基于libevent的事件處理;內(nèi)置內(nèi)存存儲(chǔ)方式;memcached不互相通信的分布式。
memcached處理的原子是每一個(gè)(Key,Value)對(duì)(以下簡(jiǎn)稱KV對(duì)),Key會(huì)通過(guò)一個(gè)hash算法轉(zhuǎn)化成hash-Key,便于查找、對(duì)比以及做到盡可能的散列。同時(shí),memcached用的是一個(gè)二級(jí)散列,通過(guò)一張大hash表來(lái)維護(hù)。
memcached由兩個(gè)核心組件組成:服務(wù)端(ms)和客戶端(mc),在一個(gè)memcached的查詢中,ms先通過(guò)計(jì)算Key的hash值來(lái)確定KV對(duì)所處在的ms位置。當(dāng)ms確定后,mc就會(huì)發(fā)送一個(gè)查詢請(qǐng)求給對(duì)應(yīng)的ms,讓它來(lái)查找確切的數(shù)據(jù)。因?yàn)檫@之間沒(méi)有交互以及多播協(xié)議,所以memcached交互帶給網(wǎng)絡(luò)的影響是最小化的。
MemcacheDB是一個(gè)分布式、Key-Value形式的持久存儲(chǔ)系統(tǒng)。它不是一個(gè)緩存組件,而是一個(gè)基于對(duì)象存取的、可靠的、快速的持久存儲(chǔ)引擎。協(xié)議與memcached一致(不完整),所以很多memcached客戶端都可以跟它連接。MemcacheDB采用Berkeley DB作為持久存儲(chǔ)組件,因此很多Berkeley DB的特性它都支持。
類似這樣的產(chǎn)品也很多,如淘寶Tair就是Key-Value結(jié)構(gòu)存儲(chǔ),在淘寶得到了廣泛使用。后來(lái)Tair也做了一個(gè)持久化版本,思路基本與新浪MemcacheDB一致。
分布式數(shù)據(jù)庫(kù)篇
支付寶公司在國(guó)內(nèi)最早使用Greenplum數(shù)據(jù)庫(kù),將數(shù)據(jù)倉(cāng)庫(kù)從原來(lái)的Oracle RAC平臺(tái)遷移到Greenplum集群。Greenplum強(qiáng)大的計(jì)算能力用來(lái)支持支付寶日益發(fā)展的業(yè)務(wù)需求。
Greenplum數(shù)據(jù)引擎軟件專為新一代數(shù)據(jù)倉(cāng)庫(kù)所需的大規(guī)模數(shù)據(jù)和復(fù)雜查詢功能所設(shè)計(jì),基于MPP(海量并行處理)和Shared-Nothing(完全無(wú)共享)架構(gòu),基于開源軟件和x86商用硬件設(shè)計(jì)(性價(jià)比更高)。
分布式文件系統(tǒng)篇
談到分布式文件系統(tǒng),不得不提的是Google的GFS。基于大量安裝有Linux操作系統(tǒng)的普通PC構(gòu)成的集群系統(tǒng),整個(gè)集群系統(tǒng)由一臺(tái)Master(通常有幾臺(tái)備份)和若干臺(tái)TrunkServer構(gòu)成。GFS中文件備份成固定大小的Trunk分別存儲(chǔ)在不同的TrunkServer上,每個(gè)Trunk有多份(通常為3份)拷貝,也存儲(chǔ)在不同的TrunkServer上。Master負(fù)責(zé)維護(hù)GFS中的 Metadata,即文件名及其Trunk信息??蛻舳讼葟腗aster上得到文件的Metadata,根據(jù)要讀取的數(shù)據(jù)在文件中的位置與相應(yīng)的TrunkServer通信,獲取文件數(shù)據(jù)。
在Google的論文發(fā)表后,就誕生了Hadoop。截至今日,Hadoop被很多中國(guó)最大互聯(lián)網(wǎng)公司所追捧,百度的搜索日志分析,騰訊、淘寶和支付寶的數(shù)據(jù)倉(cāng)庫(kù)都可以看到Hadoop的身影。
Hadoop具備低廉的硬件成本、開源的軟件體系、較強(qiáng)的靈活性、允許用戶自己修改代碼等特點(diǎn),同時(shí)能支持海量數(shù)據(jù)存儲(chǔ)和計(jì)算任務(wù)。
Hive是一個(gè)基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)平臺(tái),將轉(zhuǎn)化為相應(yīng)的MapReduce程序基于Hadoop執(zhí)行。通過(guò)Hive,開發(fā)人員可以方便地進(jìn)行ETL開發(fā)。
如圖3所示,引用一張F(tuán)acebook工程師做的Hive和Hadoop的關(guān)系圖。
NoSQL篇
隨著數(shù)據(jù)量增長(zhǎng),越來(lái)越多的人關(guān)注NoSQL,特別是2010年下半年,F(xiàn)acebook選擇HBase來(lái)做實(shí)時(shí)消息存儲(chǔ)系統(tǒng),替換原來(lái)開發(fā)的Cassandra系統(tǒng)。這使得很多人開始關(guān)注HBase。Facebook選擇HBase是基于短期小批量臨時(shí)數(shù)據(jù)和長(zhǎng)期增長(zhǎng)的很少被訪問(wèn)到的數(shù)據(jù)這兩個(gè)需求來(lái)考慮的。
HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。HBase是BigTable的開源實(shí)現(xiàn),使用HDFS作為其文件存儲(chǔ)系統(tǒng)。Google運(yùn)行MapReduce來(lái)處理BigTable中的海量數(shù)據(jù),HBase同樣利用MapReduce來(lái)處理HBase中的海量數(shù)據(jù);BigTable利用Chubby作為協(xié)同服務(wù),HBase則利用Zookeeper作為對(duì)應(yīng)。
總結(jié)篇
近來(lái)NoSQL數(shù)據(jù)庫(kù)的使用越來(lái)越普及,幾乎所有的大型互聯(lián)網(wǎng)公司都在這個(gè)領(lǐng)域進(jìn)行著實(shí)踐和探索。在享受了這類數(shù)據(jù)庫(kù)與生俱來(lái)的擴(kuò)展性、容錯(cuò)性、高讀寫吞吐外(盡管各主流NoSQL仍在不斷完善中),越來(lái)越多的實(shí)際需求把人們帶到了NoSQL并不擅長(zhǎng)的其他領(lǐng)域,比如搜索、準(zhǔn)實(shí)時(shí)統(tǒng)計(jì)分析、簡(jiǎn)單事務(wù)等。實(shí)踐中一般會(huì)在NoSQL的外圍組合一些其他技術(shù)形成一個(gè)整體解決方案。
準(zhǔn)實(shí)時(shí)的統(tǒng)計(jì)分析
FlumeBase:可參考 http://flumebase.org/documentation/0.1.0/UserGuide.html中的quick start和architecture兩部分。
S4:Yahoo!開源數(shù)據(jù)來(lái)流計(jì)算實(shí)時(shí)框架,可參考
查詢時(shí)統(tǒng)計(jì)分析,結(jié)果集較小時(shí),可以直接在返回前做統(tǒng)計(jì)分析處理。
比如買家消費(fèi)記錄查詢的HBase實(shí)現(xiàn),Schema設(shè)計(jì),rowkey=uid,column=搜索詞和查詢值,version=交易id。
搜索相關(guān)
充分利用NoSQL(比如HBase)內(nèi)部數(shù)據(jù)的有序性、Row Key、Column Family、Version Timestamp。
我們用“HBase+二次索引”來(lái)實(shí)現(xiàn)實(shí)時(shí)營(yíng)銷的解決方案。也可以參考Facebook Message的解決方案:http://blog.bluedavy.com/?p=258。
構(gòu)建一個(gè)外圍系統(tǒng)完成索引建立。
Google MegaStore:原文鏈接為http://www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf,中文譯文鏈接為http://cloud.csdn.net/a/20110216/291968.html。
也有人開始嘗試基于HBase的MegaStore實(shí)現(xiàn),鏈接為https://github.com/drevell/megalon。
簡(jiǎn)單事務(wù)
事務(wù)處理服務(wù) + NoSQL存儲(chǔ)。
淘寶開發(fā)的千億級(jí)海量數(shù)據(jù)庫(kù)Oceanbase,通過(guò)update server角色執(zhí)行將寫操作限制在一臺(tái)機(jī)器上,實(shí)現(xiàn)事務(wù)。參考鏈接為:http://www.nosqlnotes.net/archives/170。
Google MegaStore通過(guò)為用戶提供機(jī)制,根據(jù)應(yīng)用特點(diǎn)劃分entity group,將事務(wù)涉及的數(shù)據(jù)分布到一臺(tái)機(jī)器上,實(shí)現(xiàn)事務(wù)。本文:http://www.3lll3.cn/
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03