大數據到是什麼?
Big Data(大數據),或稱巨量資料,指的是所涉及的資料量規模巨大到無法通過目前主流軟體工具,在合理時間內達到擷取、管理、處理、並整理成為幫助企業經營決策更積極目的的資訊。
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網站可以容忍相對較長時間的不一致,而不影響交易和用戶體驗;而像支付寶這樣的交易和賬務數據則是非常敏感的,通常不能容忍超過秒級的不一致。
近來NoSQL資料庫的使用越來越普及,幾乎所有的大型互聯網公司都在這個領域進行著實踐和探索。在享受了這類資料庫與生俱來的擴展性、容錯性、高讀寫吞吐外(儘管各主流NoSQL仍在不斷完善中),越來越多的實際需
求把人們帶到了NoSQL並不擅長的其他領域,比如搜索、准實時統計分析、簡單事務等。實踐中一般會在NoSQL的外圍組合一些其他技術形成一個整體解決方案。
TAG:s深谷幽蘭呼 |