摘要:與關係資料庫相比,每個NoSQL都有自己不同的適用場景,這裡帶大家盤點文檔資料庫、圖資料庫、鍵值數據存儲、列存儲資料庫與記憶體數據網路等領域的常用的NoSQL。 在幾年內,NoSQL資料庫一直以性能、可擴展性、靈活的模式和分析能力聚焦著人們的註意力。儘管關係型資料庫對於某些用例來說仍是一個不錯的... ...
摘要:與關係資料庫相比,每個NoSQL都有自己不同的適用場景,這裡帶大家盤點文檔資料庫、圖資料庫、鍵值數據存儲、列存儲資料庫與記憶體數據網路等領域的常用的NoSQL。
在幾年內,NoSQL資料庫一直以性能、可擴展性、靈活的模式和分析能力聚焦著人們的註意力。儘管關係型資料庫對於某些用例來說仍是一個不錯的選擇,就像結構數據和要求ACID事務的應用,但是NoSQL在以下用例中將更具優勢:
- 存儲的數據實質上是半結構化或者鬆散的。
- 要求一定的等級的性能和擴展性。
- 存取該數據的應用與最終的一致性相吻合。
非關係型資料庫典型支持以下功能:
· 靈活的模式
· 無共用架構
· 分片作為數據存儲模型的一部分
· 非同步複製
· 使用BASE替代ACID事務
InfoQ英文網對當下經常使用的NoSQL資料庫進行了盤點:
文檔資料庫
· MongoDB:開源、面向文檔,也是當下最人氣的NoSQL資料庫。
· CounchDB:Apache CounchDB是一個使用JSON的文檔資料庫,使用Javascript做MapReduce查詢,以及一個使用HTTP的API。
· Couchbase:NoSQL文檔資料庫基於JSON模型。
· RavenDB:RavenDB是一個基於.net語言的面向文檔資料庫。
·
· MarkLogic:MarkLogic NoSQL資料庫用來存儲基於XML和以文檔為中心的信息,支持靈活的模式。
圖資料庫
· Neo4j: Neo4j是一個圖資料庫;支持ACID事務(原子性、獨立性、持久性和一致性)
· InfiniteGraph:一個圖資料庫用來維持和遍歷對象間的關係,支持分散式數據存儲。
· AllegroGraph:AllegroGraph是結合使用了記憶體和磁碟,提供了高可擴展性,支持SPARQ、RDFS++和Prolog推理。
·
· 其他圖資料庫。
鍵值數據存儲
· Riak:Riak是一個開源,分散式鍵值資料庫,支持數據複製和容錯。
· Redis:Redis是一個開源的鍵值存儲。支持主從式複製、事務,Pub/Sub、Lua腳本,還支持給Key添加時限。
· Dynamo:Dynamo是一個鍵值分散式數據存儲。它直接由亞馬遜Dynamo資料庫實現;在亞馬遜S3產品中使用。
· Oracle NoSQL Database:來自Oracle的鍵值NoSQL資料庫。它支持事務ACID(原子性、一致性、持久性和獨立性)和JSON。
· Oracle NoSQL Database:具備數據備份和分散式鍵值存儲系統。
· Voldemort:具備數據備份和分散式鍵值存儲系統。
· Aerospike:Aerospike資料庫是一個鍵值存儲,支持混合記憶體架構,通過強一致性和可調一致性保證數據的完整性。
列存儲資料庫
· Cassandra:Cassandra是列存儲資料庫,支持跨數據中心的數據複製。它的數據模型提供列索引,log-structured修改,支持反規範化,實體化視圖和嵌入超高速緩存。
· HBase:Apache Hbase源於Google的Bigtable,是一個開源、分散式、面向列存儲的模型。在Hadoop和HDFS之上提供了像Bigtable一樣的功能。
· Amazon SimpleDB:Amazon SimpleDB是一個非關係型數據存儲,它卸下資料庫管理的工作。開發者使用Web服務請求存儲和查詢數據項。
· Apache Accumulo:Apache Accumulo的有序的、分散式鍵值數據存儲,基於Google的BigTable設計,建立在Apache Hadoop、Zookeeper和Thrift技術之上。
· Hypertable:Hypertable是一個開源、可擴展的資料庫,模仿Bigtable,支持分片。
· Azure Tables:Windows Azure Table Storage Service為要求大量非結構化數據存儲的應用提供NoSQL性能。表能夠自動擴展到TB級別,能通過REST和Managed API訪問。
· 其它列存儲資料庫。
記憶體數據網格
· Hazelcast:Hazelcast CE是一個開源數據分佈平臺,它允許開發者在資料庫集群之上共用和分割數據。
· Oracle Coherence:Oracle的記憶體數據網格解決方案提供了常用數據的快速訪問能力,一致性支持事務處理能力和數據的動態劃分。
· Terracotta BigMemory:來自Terracotta的分散式記憶體管理解決方案。這項產品包括一個Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop連接器。
· GemFire:Vmware vFabric GemFire是一個分散式數據管理平臺,也是一個分散式的數據網格平臺,支持記憶體數據管理、複製、劃分、數據識別路由和連續查詢。
· Infinispan:Infinispan是一個基於Java的開源鍵值NoSQL數據存儲,和分散式數據節點平臺,支持事務,peer-to-peer 及client/server 架構。
· GridGain:分散式、面向對象、基於記憶體、SQL+NoSQL鍵值資料庫。支持ACID事務。
· GigaSpaces:GigaSpaces記憶體數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。