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