11个面向文档的开源NoSQL数据库
面向文档的数据库主要设计用来存储、获取以及管理基于文档的或者叫半结构化的数据,也属于 NoSQL 数据库的一种类别。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用 JSON、XML 等多种格式存储。
1. MongoDB
MongoDB是一个介于关系数据库和非关系数据库之间的产品, 是非关系数据库当中功能最丰富、最像关系数据库的。它支持的数据结构非常松散,类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
项目地址: http://www.mongodb.org/
入门指南: http://www.mongodb.org/display/DOCS/Quickstart
下载: http://www.mongodb.org/downloads
2. Apache CouchDB
Apache CouchDB是一个面向文档的数据库管理系统。它提供以 JSON 作为数据格式的 REST 接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。 CouchDB 是 Apache 基金会的顶级开源项目。
与现在流行的关系数据库服务器不同,CouchDB 是围绕一系列语义上自包含的文档而组织的。 CouchDB 中的文档是没有模式的(schema free),也就是说并不要求文档具有某种特定的结构。 CouchDB 的这种特性使得相对于传统的关系数据库而言,有自己的适用范围。 CouchDB 对于很多应用来说,提供了关系数据库之外的更好的选择。
项目地址: http://couchdb.apache.org/
入门指南: http://couchdb.apache.org/docs/intro.html
下载: http://couchdb.apache.org/downloads.html
3. Terrastore
Terrastore是一个基于Terracotta(一个业界公认的、快速的分布式集群组件)实现的高性能分布式文档数据库。可以动态从运行中的集群添 加/删除节点,而且不需要停机和修改任何配置。支持通过http协议访问Terrastore。Terrastore提供了一个基于集合的键/值接口来管理JSON文档并且不需要预先定义JSON文档的架构。易于操作,安装一个完整能够运行的集群只需几行命令。
项目地址: http://code.google.com/p/terrastore/
入门指南: http://code.google.com/p/terrastore/wiki/Documentation
下载: http://code.google.com/p/terrastore/downloads/list
4. RavenDB
RavenDB是个新的.NET、支持Linq的开源文档数据库,旨在Window平台下提供一个高性,结构简单、灵活,可扩展NoSQL存储。Raven将JSON文档存在数据库中。可以使用C#的Linq语法查询数据。
项目地址: http://ravendb.net/
入门指南: http://ravendb.net/tutorials
下载: http://ravendb.net/download
5. OrientDB
OrientDB是兼具文挡数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档-图形数据库管理系统。可选择无模式、全模式或混合模式下工作。支持许多高级特性,诸如ACID事务、快速索引、原生和SQL查询功能。可以JSON格式导入、导出文档。若不执行昂贵的JOIN操作的话,如同关系数据库可在几毫秒内可检索数以百计的链接文档图。
项目地址: http://www.orientechnologies.com/
入门指南: http://code.google.com/p/orient/wiki/Tutorials
下载: http://code.google.com/p/orient/wiki/download
6. ThruDB
ThruDB是一套简单的服务建立在Apache的Thrift的框架,提供索引和文件存储服务的网站建设和推广。其目的是提供Web开发灵活、快速和易于使用的服务,可以加强或取代传统的数据存储和访问层。
项目地址: http://code.google.com/p/thrudb/
入门指南: http://thrudb.googlecode.com/svn/trunk/doc/Thrudb.pdf
下载: http://code.google.com/p/thrudb/source/checkout
7. SisoDB
SisoDB是一个为 SQL Server 编写的面向文档的 db-provider,使用 C# 编写,可让你直接在数据库中存储对象。
项目地址: http://www.sisodb.com
入门指南: http://www.sisodb.com/Wiki
下载: https://github.com/danielwertheim/SisoDb-Provider/
8. RaptorDB
RaptorDB是一个很小的、快速的嵌入式 NoSQL 存储模块,使用 B+ 树或者 MurMur 哈希索引。支持数据持久化到磁盘中存储。
项目地址: http://www.codeproject.com/KB/database/RaptorDB.aspx
入门指南: http://www.codeproject.com/KB/database/RaptorDB.aspx
下载:
http://www.codeproject.com/KB/database/RaptorDB.aspx
9. CloudKit
CloudKit提供了一个结构灵活、自动版本化、RESTful JSON存储,可选支持OpenID 和 OAuth,包括OAuth Discovery。
项目地址: http://getcloudkit.com/
入门指南: http://getcloudkit.com/api/
下载: https://github.com/jcrosby/cloudkit
10. Perservere
Perservere是一个开源的工具集用于持久化和分布式计算,使用一个直观基于标准的HTTP REST、JSON-RPC、JSONPath和REST Channels的JSON接口。Persevere服务器包括了一个Persevere JavaScript客户端, 但是其标准的接口其实支持任何框架或客户端使用。
项目地址: http://code.google.com/p/persevere-framework/
入门指南: http://code.google.com/p/persevere-framework/w/list
下载: http://code.google.com/p/persevere-framework/downloads/list
11. Apache Jackrabbit
Apache Jackrabbit是由 Apache Foundation 提供的 JSR-170 的开放源码实现。
随着内容管理应用程序的日益普及,对用于内容仓库的普通、标准化 API 的需求已凸现出来。Content Repository for Java Technology API (JSR-170)的目标就是提供这样一个接口。JSR-170 的一个主要优点是,它不绑定到任何特定的底层架构。例如,JSR-170 实现的后端数据存储可以是文件系统、WebDAV 仓库、支持 XML 的系统,甚至还可以是 SQL 数据库。此外,JSR-170 的导出和导入功能允许一个集成器在内容后端与 JCR 实现之间无缝地切换。
项目地址: http://jackrabbit.apache.org
入门指南:
http://jackrabbit.apache.org/getting-started-with-apache-jackrabbit.html
下载: http://jackrabbit.apache.org/downloads.html