2012-06-07 82 views
7

我讀過幾篇文章,比如this one,它們將像MongoDb,CouchDb和CouchBase這樣的文檔商店與像Cassandra這樣的專欄商店進行比較。專欄商店vs文檔商店

一個比較是文檔存儲以更高的粒度級別工作的事實,與列家族商店相比,它可以讓您在文檔的各個部分上工作。我發現這只是不真實的,因爲Redis通過hset operation支持這個,mongodb也支持。

當時的觀點是,雖然這兩種解決方案都允許更新/讀取文檔的某些部分,但是與文檔存儲相比,列族存儲在執行此操作時效率更高?

這是否也意味着我應該採取文件存儲路線插入和讀取重型應用程序,但列家族的路線更新和讀重型應用程序?

有什麼其他的差異,可以幫助我選擇一種解決方案而不是其他的?

謝謝!

回答

8

我建議主要區別在於查詢模型。它們都可以存儲相似的數據結構(例如,可以將JSON文檔放入CF存儲區),但文檔存儲通常會爲您提供按值查詢功能,而CF存儲通常不會。然而,這些界限正在變得模糊,似乎隨着每個數據庫項目的成熟,這樣的概括變得越來越不適用。例如,Cassandra(一家廣受歡迎的CF商店)確實提供了一些具有二級索引的按價值查詢功能。然而,大多數CF商店要求您按照您打算閱讀的方式編寫數據,這意味着您必須根據您的查詢考慮數據模型。

這似乎對我來說,有各種數據庫技術之間的其他同樣重要的區別,如一致性模型,數據中心複製功能,縮放模式,易於管理,緩存能力等

+1

感謝的好方法區別..謝謝!在選擇NoSql產品時,我面臨的挑戰之一是,它們似乎都以不同的方式提供相同的東西,而黑色或白色的比較難以做到。 – Kailash