我說的大數據量處理是指同時需要對數據進行檢索查詢,同時有高并發的增刪改操作。記得以前在XX做電力時,幾百萬條數據,那時一個檢索查詢可以讓你等你分鐘。現在我是想探討下對大數據量的處理,那時我就在想例如騰訊,盛大,動輒數以億計的帳號,怎么能這么
我說的大數據量處理是指同時需要對數據進行檢索查詢,同時有高并發的增刪改操作。記得以前在XX做電力時,幾百萬條數據,那時一個檢索查詢可以讓你等你分鐘。現在我是想探討下對大數據量的處理,那時我就在想例如騰訊,盛大,動輒數以億計的帳號,怎么能這么快呢, 于是找到了互聯網現在對數據處理的發展。
對于大數據量處理,如果是互聯網處理的話,一般分為下面階段:
其實本文主要目的也是想探討nosql對大數據量的處理:
NOSQL就是將寫操作在內存中進行,定時或按某一條件將內存中的數據直接寫到磁盤上,一定基礎上是解決了一些問題:
CAP理論來說,nosql是犧牲了一致性,做到了AP,一致性只是保證了最終一致性。
缺點也很明顯:
1. 當機器掛了數據將會丟失,可以考慮共享內存解決。
補充:其實這里可以展開了講,一種是通過共享內存來實現。
集群內存:根據的是Quorum NRW理論,比如你有N臺機子用來集群,每次你進行讀寫數據時可以至少要同步到X個節點才算成功,所以你每次讀數據時只需要讀大于N-X個節點就能保持你的正確率,其實就是對數據進行的冗余備份,不過我們存的是內存,相對于直接的磁盤操作,跨網絡進行內存操作可以更快。
其實還一種保證數據一致性,就是記錄日志,當數據每次寫操作內存時都進行日志記錄,然后再在內存中進行寫操作,至少很多數據庫就是這樣做的,如redis。
2. 內存的限制,內存有限當寫數據操作太大的時候內存也會爆。
解決:Bigtable的做法是通過bloom-filter算法合并掉相同的操作,比如UPDATE A='A' ,update A='B'時可以直接合并了。
nosql理論基礎:內存是新的硬盤,硬盤是新的磁盤
關系型數據庫都要實現事務ACID,即:原子性(Atomicity),一致性(Consistency),隔離性(Isolation), 持久性(Durability)。
CAP理論:
?大多數NoSQL數據庫都不支持事務,不支持SQL等,所以還是得保留關系型數據庫。現在有人提到用內存數據庫, 總體如果是簡單業務來說,NOSQL的速度比內存數據庫更快,但NOSQL最大缺點,不支持事務,不支持SQL查詢等。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com