回答
這是我寫的一篇博文,Visual Guide to NoSQL Systems,說明了一些最流行的系統之間的主要區別。他們之間最大的區別是他們選擇以下兩種方式中的哪一種進行優化:一致性,可用性和分區容差。
你可以選擇兩個的想法是誤導性的:http://dbmsmusings.blogspot.com/2010/04/problems-with-cap-and-yahoos-little.html – TTT 2010-05-03 20:36:42
在一個層次上,文檔和鍵/值非常相似 - 當你請求一個鍵時,兩者都會返回一個對象。在純鍵/值中,對象將是一個簡單的字符串,儘管它可以是一個序列化的複雜對象。文檔數據庫通過函數對這個對象進行擴展,例如部分更新功能或搜索索引。
除此之外,您需要考慮您的特定需求--NOSQL涵蓋了很多不同的系統,與SQL數據庫不同,它們在特定情況下具有完全不同的優點/缺點。
在我看來,我真的不知道Cassandra是如何不一致的。它不能進行一致的更新,但我從來沒有與需要更新的數據庫模型一起工作,而不是一致的版本化插入(有時稱爲版本化更新,即使它們不是真正的更新)。 ACID如果你使用你的數據模型ACID,而不是使用數據庫事務,那麼以銀行的方式進行交易,交易不是多重數據變化,而是實際的數據對象。在他們中,他們有交易,而你的賬戶當前狀態是從交易中計算出來的,這些交易不是數據庫特徵,而是數據模型的一部分,爲了保持一致性,他們不需要立即可用於所有節點,因爲他們是我mmutable。
我還沒有找到使數據不可變的情況不能解決一致性問題的情況。這與將數據模型的事務作爲不可變數據的一部分(一次寫入多次讀取)相結合,滿足了ACID要求。
原子 - 作爲唯一不可變對象/行的事務成爲原子,沒有任何複雜的數據庫對象來支持它。
一致性 - 可以在數據模型中設計數據庫操作或事務,使其一致。所有需要的是它是不可變的(創建後永遠不會改變)
隔離 - 一個事務是自己的數據對象,不應該干擾他人,因此是孤立的。
持久性 - 如果事務不可變數據丟失,它相當於將數據庫恢復到其以前的狀態。如果數據沒有丟失,那麼它處於事務後狀態。在任何一種情況下,它都會滿足ACID的耐久性要求。
確實,在「銀行」數據模型中無法實現幾件事情。您的賬戶信息不能擁有固定金額的ACID行。雖然交易本身就是ACID,但並不意味着數據依賴於它們。這是因爲所有的事務可能還沒有從所有節點可見。他們甚至可能在另一家銀行的數據庫中。因此,您的帳戶餘額無法達到ACID一致性,但只要所有重要數據具有ACID一致性,就沒有理由具備這種要求。
我以銀行數據庫爲例,因爲它經常用作關於如何在賬戶餘額上回滾SQL事務的例子 - 在實際實現中永遠不會發生的事情......因爲銀行事務必須支持異步多線程,數據庫交易,或換句話說跨銀行交易。
您也可以將其與文件系統相關聯。 Cassandra(例如)可以爲您提供文件不可變快照的一致視圖。你不能保證看到最新的快照 - 但是一個快照。這使得它與CVS/SVN或CODA一致。
- 1. 哪個NoSQL數據存儲/ s可供選擇?
- 2. 如何選擇SQL Vs nosql存儲
- 3. 哪個NoSQL後端存儲網頁跟蹤數據
- 4. 哪個NoSQL數據庫最適合存儲聊天消息?
- 5. 要爲網絡守護進程選擇哪個noSQL數據庫?
- 6. 選擇NOsql或RDMS,以及哪個DataStructure?
- 7. NOSQL vs XML文檔存儲
- 8. 使用nosql數據存儲時需要緩存層嗎?
- 9. 哪些爲消息存儲目的集羣了NoSQL DB?
- 10. nosql示例,哪個引擎?
- 11. 哪個nosql db適合?
- 12. 哪個NoSQL數據庫適合存儲不同類型的訂單?
- 13. NoSQL存儲用於在內存中存儲圖像的內容?
- 14. 身份證代第nosql存儲
- 15. 存儲相冊的內容的NoSQL
- 16. Nosql DB用於存儲pdf,txt,ppt等
- 17. NoSQL解決方案存儲陣列?
- 18. 大數據存儲(不是nosql)
- 19. 在NoSQL DB中存儲HTML模板
- 20. noSQL/MySQL - 存儲產品信息
- 21. 在NoSql中存儲擴展實體
- 22. 用於跟蹤系統的NoSQL存儲
- 23. 存儲日誌,PostgreSQL的的NodeJS VS NOSQL
- 24. 在NoSQL DB中存儲一列?
- 25. 在MongoDB中存儲關係數據(NoSQL)
- 26. 存儲調查結果 - Mysql還是NoSQL?
- 27. NoSQL適合存儲用戶數據嗎?
- 28. 在NoSQL中存儲動態數據
- 29. 將圖像存儲在NoSQL商店
- 30. Eclipse存儲首選項在哪裏?
它主要取決於您的需求。 – Htbaa 2010-04-28 13:50:41
這是關於NoSQL的問題,根本不涉及某人的需求。 – 2010-04-28 19:57:14
好吧,根據你的情況,最好的選擇會改變,因爲它們沒有全部相同的功能。您是否需要高度可擴展的解決方案?或者它只是一個小商店?你需要執行搜索嗎?或只是通過密鑰獲取?它大部分是讀取?寫?都?性能各不相同。因此,這個問題要求你確定你的要求 – 2010-04-28 20:05:01