在幾年內,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內存數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。
原文鏈接:NoSQL Database Adoption Trends(編譯/陳翔宇 審校/仲浩)