
Big Data是近來的一個技術熱點,但從名字就能判斷它并不是什么新詞。畢竟,大是一個相對概念。歷史上,數據庫、數據倉庫、數據集市等信息管理領域的技術,很大程度上也是為了解決大規模數據的問題。被譽為數據倉庫之父的Bill Inmon早在20世紀90年代就經常將Big Data掛在嘴邊了。
然而,Big Data作為一個專有名詞成為熱點,主要應歸功于近年來互聯網、云計算、移動和物聯網的迅猛發展。無所不在的移動設備、RFID、無線傳感器每分每秒都在產生數據,數以億計用戶的互聯網服務時時刻刻在產生巨量的交互……要處理的數據量實在是太大、增長太快了,而業務需求和競爭壓力對數據處理的實時性、有效性又提出了更高要求,傳統的常規技術手段根本無法應付。
在這種情況下,技術人員紛紛研發和采用了一批新技術,主要包括分布式緩存、基于MPP的分布式數據庫、分布式文件系統、各種NoSQL分布式存儲方案等。
10年前,Eric Brewer提出著名的CAP定理,指出:一個分布式系統不可能滿足一致性、可用性和分區容忍性這三個需求,最多只能同時滿足兩個。系統的關注點不同,采用的策略也不一樣。只有真正理解了系統的需求,才有可能利用好CAP定理。
架構師一般有兩個方向來利用CAP理論。
Key-Value存儲,如Amazon Dynamo等,可以根據CAP理論靈活選擇不同傾向的數據庫產品。
領域模型+分布式緩存+存儲,可根據CAP理論結合自己的項目定制靈活的分布式方案,但難度較高。
對大型網站,可用性與分區容忍性優先級要高于數據一致性,一般會盡量朝著A、P的方向設計,然后通過其他手段保證對于一致性的商務需求。架構設計師不要將精力浪費在如何設計能滿足三者的完美分布式系統,而應該懂得取舍。
不同的數據對一致性的要求是不同的。SNS網站可以容忍相對較長時間的不一致,而不影響交易和用戶體驗;而像支付寶這樣的交易和賬務數據則是非常敏感的,通常不能容忍超過秒級的不一致。
Cache篇
緩存在Web開發中運用越來越廣泛,mem-cached是danga.com(運營LiveJournal的技術團隊)開發的一套分布式內存對象緩存系統,用于在動態系統中減少數據庫負載,提升性能。
memcached具有以下特點:
協議簡單;基于libevent的事件處理;內置內存存儲方式;memcached不互相通信的分布式。
memcached處理的原子是每一個(Key,Value)對(以下簡稱KV對),Key會通過一個hash算法轉化成hash-Key,便于查找、對比以及做到盡可能的散列。同時,memcached用的是一個二級散列,通過一張大hash表來維護。
memcached由兩個核心組件組成:服務端(ms)和客戶端(mc),在一個memcached的查詢中,ms先通過計算Key的hash值來確定KV對所處在的ms位置。當ms確定后,mc就會發送一個查詢請求給對應的ms,讓它來查找確切的數據。因為這之間沒有交互以及多播協議,所以memcached交互帶給網絡的影響是最小化的。
MemcacheDB是一個分布式、Key-Value形式的持久存儲系統。它不是一個緩存組件,而是一個基于對象存取的、可靠的、快速的持久存儲引擎。協議與memcached一致(不完整),所以很多memcached客戶端都可以跟它連接。MemcacheDB采用Berkeley DB作為持久存儲組件,因此很多Berkeley DB的特性它都支持。
類似這樣的產品也很多,如淘寶Tair就是Key-Value結構存儲,在淘寶得到了廣泛使用。后來Tair也做了一個持久化版本,思路基本與新浪MemcacheDB一致。
分布式數據庫篇
支付寶公司在國內最早使用Greenplum數據庫,將數據倉庫從原來的Oracle RAC平臺遷移到Greenplum集群。Greenplum強大的計算能力用來支持支付寶日益發展的業務需求。
Greenplum數據引擎軟件專為新一代數據倉庫所需的大規模數據和復雜查詢功能所設計,基于MPP(海量并行處理)和Shared-Nothing(完全無共享)架構,基于開源軟件和x86商用硬件設計(性價比更高)。
分布式文件系統篇
談到分布式文件系統,不得不提的是Google的GFS?;诖罅堪惭b有Linux操作系統的普通PC構成的集群系統,整個集群系統由一臺Master(通常有幾臺備份)和若干臺TrunkServer構成。GFS中文件備份成固定大小的Trunk分別存儲在不同的TrunkServer上,每個Trunk有多份(通常為3份)拷貝,也存儲在不同的TrunkServer上。Master負責維護GFS中的 Metadata,即文件名及其Trunk信息??蛻舳讼葟腗aster上得到文件的Metadata,根據要讀取的數據在文件中的位置與相應的TrunkServer通信,獲取文件數據。
在Google的論文發表后,就誕生了Hadoop。截至今日,Hadoop被很多中國最大互聯網公司所追捧,百度的搜索日志分析,騰訊、淘寶和支付寶的數據倉庫都可以看到Hadoop的身影。
Hadoop具備低廉的硬件成本、開源的軟件體系、較強的靈活性、允許用戶自己修改代碼等特點,同時能支持海量數據存儲和計算任務。
Hive是一個基于Hadoop的數據倉庫平臺,將轉化為相應的MapReduce程序基于Hadoop執行。通過Hive,開發人員可以方便地進行ETL開發。
如圖3所示,引用一張Facebook工程師做的Hive和Hadoop的關系圖。
NoSQL篇
隨著數據量增長,越來越多的人關注NoSQL,特別是2010年下半年,Facebook選擇HBase來做實時消息存儲系統,替換原來開發的Cassandra系統。這使得很多人開始關注HBase。Facebook選擇HBase是基于短期小批量臨時數據和長期增長的很少被訪問到的數據這兩個需求來考慮的。
HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建大規模結構化存儲集群。HBase是BigTable的開源實現,使用HDFS作為其文件存儲系統。Google運行MapReduce來處理BigTable中的海量數據,HBase同樣利用MapReduce來處理HBase中的海量數據;BigTable利用Chubby作為協同服務,HBase則利用Zookeeper作為對應。
總結篇
近來NoSQL數據庫的使用越來越普及,幾乎所有的大型互聯網公司都在這個領域進行著實踐和探索。在享受了這類數據庫與生俱來的擴展性、容錯性、高讀寫吞吐外(盡管各主流NoSQL仍在不斷完善中),越來越多的實際需求把人們帶到了NoSQL并不擅長的其他領域,比如搜索、準實時統計分析、簡單事務等。實踐中一般會在NoSQL的外圍組合一些其他技術形成一個整體解決方案。
準實時的統計分析
FlumeBase:可參考 http://flumebase.org/documentation/0.1.0/UserGuide.html中的quick start和architecture兩部分。
S4:Yahoo!開源數據來流計算實時框架,可參考
查詢時統計分析,結果集較小時,可以直接在返回前做統計分析處理。
比如買家消費記錄查詢的HBase實現,Schema設計,rowkey=uid,column=搜索詞和查詢值,version=交易id。
搜索相關
充分利用NoSQL(比如HBase)內部數據的有序性、Row Key、Column Family、Version Timestamp。
我們用“HBase+二次索引”來實現實時營銷的解決方案。也可以參考Facebook Message的解決方案:http://blog.bluedavy.com/?p=258。
構建一個外圍系統完成索引建立。
Google MegaStore:原文鏈接為http://www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf,中文譯文鏈接為http://cloud.csdn.net/a/20110216/291968.html。
也有人開始嘗試基于HBase的MegaStore實現,鏈接為https://github.com/drevell/megalon。
簡單事務
事務處理服務 + NoSQL存儲。
淘寶開發的千億級海量數據庫Oceanbase,通過update server角色執行將寫操作限制在一臺機器上,實現事務。參考鏈接為:http://www.nosqlnotes.net/archives/170。
Google MegaStore通過為用戶提供機制,根據應用特點劃分entity group,將事務涉及的數據分布到一臺機器上,實現事務。本文:http://www.ruiqisteel.com/
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25