悉数11种主流NoSQL文档型数据库
悉數(shù)11種主流NoSQL文檔型數(shù)據(jù)庫
文檔型數(shù)據(jù)庫是NoSQL中非常重要的一個分支,它主要用來存儲、索引并管理面向文檔的數(shù)據(jù)或者類似的半結(jié)構(gòu)化數(shù)據(jù)。顧名思義,文檔型數(shù)據(jù)庫(面向文檔數(shù)據(jù)庫)的關(guān)鍵核心概念即文檔(Document),它是數(shù)據(jù)庫中最小的單位。每一種文檔型數(shù)據(jù)庫的部署都有所不同,通常來說,它們假定文檔以某種標(biāo)準(zhǔn)化格式封裝并加密數(shù)據(jù),并用多種格式進(jìn)行解碼,包括XML、YAML、JSON和BSON,當(dāng)然也包括二進(jìn)制格式如PDF、微軟Office文檔等。在本文中,來自IBM的高級IT工程師Lijin Joseji向我們介紹了11種主流的文檔型數(shù)據(jù)庫。
??? MongoDB
??? MongoDB是目前最為流行的NoSQL數(shù)據(jù)庫,它是一種面向集合,模式無關(guān)的文檔型數(shù)據(jù)庫。其中數(shù)據(jù)以“集合”的方式進(jìn)行分組,每個集合都有單獨的名稱并可以包含無限數(shù)量的文檔。這里的集合同關(guān)系型數(shù)據(jù)庫中的表(table)類似,唯一的區(qū)別就是它并沒有任何明確的schema.
??? MongoDB以一系列鍵值對集合的方式存儲數(shù)據(jù),其中鍵(Key)是字符串,值(Value)是任何一種數(shù)據(jù)類型的集合,包括數(shù)組和文檔。
??? 主頁: http://www.mongodb.org/
??? 文檔: http://www.mongodb.org/display/DOCS/Quickstart
??? 下載: http://www.mongodb.org/downloads
??? CouchDB
??? CouchDB是一個文檔型數(shù)據(jù)庫服務(wù)器,可以通過JSON格式的REST接口進(jìn)行訪問,使用JavaScript作為查詢語言。一個CouchDB文檔就是一個對象,由不同字段組成。字段值可以是字符串、數(shù)字、日期,甚至可以是有序列表和關(guān)聯(lián)映射。
??? 主頁: http://couchdb.apache.org/
??? 文檔: http://couchdb.apache.org/docs/intro.html
??? 下載: http://couchdb.apache.org/downloads.html
??? Terrastore
??? Terrastore的特點是提供高級的擴(kuò)展和彈性特征,而無需犧牲一致性。它是一個基于Terracotta實現(xiàn)的高性能分布式文檔數(shù)據(jù)庫,后者是業(yè)界公認(rèn)的快速分布式集群技術(shù)。
??? 主頁: http://code.google.com/p/terrastore/
??? 文檔: http://code.google.com/p/terrastore/wiki/Documentation
? ? 下載: http://code.google.com/p/terrastore/downloads/list
??? RavenDB
??? Raven是一個。NET文檔型數(shù)據(jù)庫,它的特點是提供了高性能、schema-less、靈活可擴(kuò)展的面向。NET和Windows平臺的NoSQL數(shù)據(jù)存儲平臺。RavenDB在其內(nèi)部可以存儲任何JSON文檔,他是一個無模式的數(shù)據(jù)庫,你可以使用C#的Linq語法定義索引。
??? 主頁: http://ravendb.net/
??? 文檔: http://ravendb.net/tutorials
??? 下載: http://ravendb.net/download
OrientDB
??? OrientDB是用Java編寫的開源NoSQL數(shù)據(jù)庫管理系統(tǒng),雖然是文檔型數(shù)據(jù)庫,但是它的關(guān)系管理方式卻和圖形數(shù)據(jù)庫相類似。它支持schema-less、schema-full和schema-mixed多種模式。OrientDB擁有健壯的基于用戶角色的安全分析系統(tǒng),并支持SQL查詢。
??? 主頁: http://www.orientechnologies.com/
??? 文檔: http://code.google.com/p/orient/wiki/Tutorials
??? 下載: http://code.google.com/p/orient/wiki/Download
??? ThruDB
??? Thrudb是一套建立在Apache Thrift framework下的簡單服務(wù),提供索引和文件存儲服務(wù)的網(wǎng)站建設(shè)和推廣。其目的是提供Web開發(fā)靈活,快速和易于使用的服務(wù),可以加強或取代傳統(tǒng)的數(shù)據(jù)存儲和訪問層。
??? Thrudb支持多個數(shù)據(jù)存儲后端,包括BerkeleyDB、Disk、MySQL,還擁有Memcache和Spread集成。
??? 主頁: http://code.google.com/p/thrudb/
??? 文檔: http://thrudb.googlecode.com/svn/trunk/doc/Thrudb.pdf
??? 下載: http://code.google.com/p/thrudb/source/checkout
??? SisoDB
??? SisoDb是一個用C#編寫的,專門提供給SQL Server面向文檔的db-provider.它可以存儲POCO的對象圖形,而無需設(shè)置任何映射。每個實體都別視為一個聚合根,能夠快速生成單獨的表。
??? 主頁: http://www.sisodb.com
??? 文檔: http://www.sisodb.com/Wiki
??? 下載: https://github.com/danielwertheim/SisoDb-Provider/
??? RaptorDB
??? RaptorDB是一個非常小型的快速嵌入式NoSQL數(shù)據(jù)庫,它使用b+tree或者M(jìn)urMur哈希索引。最初的設(shè)計是用來存儲JSON數(shù)據(jù),但是目前可以存儲任何類型的數(shù)據(jù)。
??? 主頁: http://www.codeproject.com/KB/database/RaptorDB.aspx
??? 文檔: http://www.codeproject.com/KB/database/RaptorDB.aspx
??? 下載: http://www.codeproject.com/KB/database/RaptorDB.aspx
??? CloudKit
??? CloudKit提供了模式無關(guān)、自動版本化的REST JSON存儲,支持OpenID和OAuth,包括OAuth Discovery.
??? 主頁: http://getcloudkit.com/
??? 文檔: http://getcloudkit.com/api/
??? 下載: https://github.com/jcrosby/cloudkit
??? Perservere
??? Persevere是一個開源的工具集,用來應(yīng)對持久性和分布式計算,它使用了一個標(biāo)準(zhǔn)化的JSON接口。Persevere項目的核心就是Persevere Server,它包含了一個Persevere JavaScript客戶端,但是基于標(biāo)準(zhǔn)的接口可以用于任何框架或者客戶端。
??? 主頁: 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
??? Jackrabbit
??? Apache Jackrabbit是一個JSR-170的開放源碼實現(xiàn),支持結(jié)構(gòu)化與非結(jié)構(gòu)化內(nèi)容、全文搜索、版本控制、交易以及觀測等。
??? 主頁: http://jackrabbit.apache.or
??? 文檔: http://jackrabbit.apache.org/getting-started-with-apache-jackrabbit.html
??? 下載: http://jackrabbit.apache.org/downloads.html
??? 結(jié)論
??? 文檔數(shù)據(jù)庫存儲并檢索文檔數(shù)據(jù),用戶在選用的時候需要參照自身的需求而定。你需要考慮數(shù)據(jù)訪問的模式和用例,以便創(chuàng)建一個高效實用的文檔模型。當(dāng)你的域模型能夠分割并分配到多個文檔的時候,文檔型數(shù)據(jù)庫將是一個不錯的選擇。比如一個博客軟件、一個CMS或者一個維基百科類軟件,使用文檔型數(shù)據(jù)庫是最佳的方法。而當(dāng)數(shù)據(jù)庫中有太多的關(guān)系和標(biāo)準(zhǔn)化約束的情況下,則傳統(tǒng)的關(guān)系型數(shù)據(jù)庫更為合適。
轉(zhuǎn)載于:https://blog.51cto.com/harman/1415333
總結(jié)
以上是生活随笔為你收集整理的悉数11种主流NoSQL文档型数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: inotify-tools对文件及目录访
- 下一篇: HDUOJ---The number o