自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java開源NoSQL數(shù)據(jù)庫大全

數(shù)據(jù)庫 其他數(shù)據(jù)庫
本文轉(zhuǎn)自Java開源大全,列舉了與Java相關(guān)的NoSQL數(shù)據(jù)庫,其中包括Java寫成的,Java版本的,或者能與Java緊密結(jié)合的各種NoSQL數(shù)據(jù)庫。對列舉到的NoSQL都進(jìn)行了比較詳盡的描述。推薦給各位使用Java的朋友們。

 

HBase

HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于Chang etal所撰寫的Google論文“Bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”。就像Bigtable利用了Googl文件系統(tǒng)(FileSystem)所提供的分布式數(shù)據(jù)存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的 Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫.另一個不同的是HBase基于列的而不是基于行的模式。HBase使用和Bigtable非常相同的數(shù)據(jù)模型。用戶存儲數(shù)據(jù)行在一個表里。一個數(shù)據(jù)行擁有一個可選擇的鍵和任意數(shù)量的列。表是疏松的存儲的,因此用戶可以給行定義各種不同的列。HBase主要用于需要隨機(jī)訪問,實(shí)時讀寫你的大數(shù)據(jù)(Big Data)。

Berkeley DB Java Edition

Berkeley DB Java Edition (JE)是一個完全用JAVA寫的,它適合于管理海量的,簡單的數(shù)據(jù)。能夠高效率的處理1到1百萬條記錄,制約JE數(shù)據(jù)庫的往往是硬件系統(tǒng),而不是JE本身。多線程支持,JE使用超時的方式來處理線程間的死瑣問題。Database都采用簡單的key/value對應(yīng)的形式。事務(wù)支持。允許創(chuàng)建二級庫。這樣我們就可以方便的使用一級key,二級key來訪問我們的數(shù)據(jù)。支持RAM緩沖,這樣就能減少頻繁的IO操作。支持日志。數(shù)據(jù)備份和恢復(fù)。游標(biāo)支持。

Neo4j

Neo4j是一個嵌入式,基于磁盤的,支持完整事務(wù)的Java持久化引擎,它在圖像中而不是表中存儲數(shù)據(jù)。Neo4j提供了大規(guī)??蓴U(kuò)展性,在一臺機(jī)器上可以處理數(shù)十億節(jié)點(diǎn)/關(guān)系/屬性的圖像,可以擴(kuò)展到多臺機(jī)器并行運(yùn)行。相對于關(guān)系數(shù)據(jù)庫來說,圖形數(shù)據(jù)庫善于處理大量復(fù)雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)變化迅速,需要頻繁的查詢——在關(guān)系數(shù)據(jù)庫中,這些查詢會導(dǎo)致大量的表連接,因此會產(chǎn)生性能上的問題。Neo4j重點(diǎn)解決了擁有大量連接的傳統(tǒng)RDBMS在查詢時出現(xiàn)的性能衰退問題。通過圍繞圖形進(jìn)行數(shù)據(jù)建模,Neo4j會以相同的速度遍歷節(jié)點(diǎn)與邊,其遍歷速度與構(gòu)成圖形的數(shù)據(jù)量沒有任何關(guān)系。此外,Neo4j還提供了非??斓膱D形算法、推薦系統(tǒng)和OLAP風(fēng)格的分析,而這一切在目前的RDBMS系統(tǒng)中都是無法實(shí)現(xiàn)的。

Neo是一個網(wǎng)絡(luò)——面向網(wǎng)絡(luò)的數(shù)據(jù)庫——也就是說,它是一個嵌入式的、基于磁盤的、具備完全的事務(wù)特性的Java持久化引擎,但是它將結(jié)構(gòu)化數(shù)據(jù)存儲在網(wǎng)絡(luò)上而不是表中。網(wǎng)絡(luò)(從數(shù)學(xué)角度叫做圖)是一個靈活的數(shù)據(jù)結(jié)構(gòu),可以應(yīng)用更加敏捷和快速的開發(fā)模式。

你可以把Neo看作是一個高性能的圖引擎,該引擎具有成熟和健壯的數(shù)據(jù)庫的所有特性。程序員工作在一個面向?qū)ο蟮?、靈活的網(wǎng)絡(luò)結(jié)構(gòu)下而不是嚴(yán)格、靜態(tài)的表中——但是他們可以享受到具備完全的事務(wù)特性、企業(yè)級的數(shù)據(jù)庫的所有好處。

由于使用了“面向網(wǎng)絡(luò)的數(shù)據(jù)庫”,人們對Neo充滿了好奇。在該模型中,以“節(jié)點(diǎn)空間”來表達(dá)領(lǐng)域數(shù)據(jù)——相對于傳統(tǒng)的模型表、行和列來說,節(jié)點(diǎn)空間是很多節(jié)點(diǎn)、關(guān)系和屬性(鍵值對)構(gòu)成的網(wǎng)絡(luò)。關(guān)系是***級對象,可以由屬性來注解,而屬性則表明了節(jié)點(diǎn)交互的上下文。網(wǎng)絡(luò)模型***的匹配了本質(zhì)上就是繼承關(guān)系的問題域,例如語義Web應(yīng)用。Neo的創(chuàng)建者發(fā)現(xiàn)繼承和結(jié)構(gòu)化數(shù)據(jù)并不適合傳統(tǒng)的關(guān)系數(shù)據(jù)庫模型:

  1. 對象關(guān)系的不匹配使得把面向?qū)ο蟮?ldquo;圓的對象”擠到面向關(guān)系的“方的表”中是那么的困難和費(fèi)勁,而這一切是可以避免的。
  2. 關(guān)系模型靜態(tài)、剛性、不靈活的本質(zhì)使得改變schemas以滿足不斷變化的業(yè)務(wù)需求是非常困難的。由于同樣的原因,當(dāng)開發(fā)小組想應(yīng)用敏捷軟件開發(fā)時,數(shù)據(jù)庫經(jīng)常拖后腿。
  3. 關(guān)系模型很不適合表達(dá)半結(jié)構(gòu)化的數(shù)據(jù)——而業(yè)界的分析家和研究者都認(rèn)為半結(jié)構(gòu)化數(shù)據(jù)是信息管理中的下一個重頭戲。
  4. 網(wǎng)絡(luò)是一種非常高效的數(shù)據(jù)存儲結(jié)構(gòu)。人腦是一個巨大的網(wǎng)絡(luò),萬維網(wǎng)也同樣構(gòu)造成網(wǎng)狀,這些都不是巧合。關(guān)系模型可以表達(dá)面向網(wǎng)絡(luò)的數(shù)據(jù),但是在遍歷網(wǎng)絡(luò)并抽取信息的能力上關(guān)系模型是非常弱的。

雖然Neo是一個比較新的開源項(xiàng)目,但它已經(jīng)在具有1億多個節(jié)點(diǎn)、關(guān)系和屬性的產(chǎn)品中得到了應(yīng)用,并且能滿足企業(yè)的健壯性和性能的需求:

完全支持JTA和JTS、2PC分布式ACID事務(wù)、可配置的隔離級別和大規(guī)模、可測試的事務(wù)恢復(fù)。這些不僅僅是口頭上的承諾:Neo已經(jīng)應(yīng)用在高請求的24/7環(huán)境下超過3年了。它是成熟、健壯的,完全達(dá)到了部署的門檻。

NeoDatis ODB

NeoDatis ODB是一個面向?qū)ο髷?shù)據(jù)庫,一個真正透明的對象持久層。利用一行簡單的代碼就能夠持久化native object。ODB非常簡單、非常快并自帶強(qiáng)大查詢語言。ODB既可以做為一個內(nèi)嵌數(shù)據(jù)庫引擎使用,也可以以C/S模式運(yùn)行。

Apache Cassandra

Apache Cassandra是一套開源分布式 Key-Value 存儲系統(tǒng)。它最初由 Facebook 開發(fā),用于儲存特別大的數(shù)據(jù)。Cassandra 不是一個數(shù)據(jù)庫,它是一個混合型的非關(guān)系的數(shù)據(jù)庫,類似于 Google 的 BigTable。本文主要從以下五個方面來介紹Cassandra:Cassandra 的數(shù)據(jù)模型、安裝和配制 Cassandra、常用編程語言使用 Cassandra來存儲數(shù)據(jù)、Cassandra集群搭建。Cassandra是一個混合型的非關(guān)系的數(shù)據(jù)庫,類似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存儲系統(tǒng))更豐富,但支持度卻不如文檔存儲MongoDB(介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的開源產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。)Cassandra最初由Facebook開發(fā),后轉(zhuǎn)變成了開源項(xiàng)目。它是一個網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫。以Amazon專有的完全分布式的 Dynamo為基礎(chǔ),結(jié)合了GoogleBigTable基于列族(Column Family)的數(shù)據(jù)模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。

Cassandra 的數(shù)據(jù)模型是基于列族(Column Family)的四維或五維模型。它借鑒了 Amazon 的 Dynamo 和Google’s BigTable 的數(shù)據(jù)結(jié)構(gòu)和功能特點(diǎn),采用 Memtable 和 SSTable 的方式進(jìn)行存儲。在 Cassandra寫入數(shù)據(jù)之前,需要先記錄日志( CommitLog ),然后數(shù)據(jù)開始寫入到 Column Family對應(yīng)的 Memtable中,Memtable 是一種按照 key排序數(shù)據(jù)的內(nèi)存結(jié)構(gòu),在滿足一定條件時,再把 Memtable 的數(shù)據(jù)批量的刷新到磁盤上,存儲為SSTable 。

Voldemort

Voldemort是一個分布式鍵-值(Key-value)存儲系統(tǒng),是Amazon’s Dynamo的一個開源克隆。

  1. 支持自動復(fù)制數(shù)據(jù)到多個服務(wù)器上。
  2. 支持?jǐn)?shù)據(jù)自動分割所以每個服務(wù)器只包含總數(shù)據(jù)的一個子集。
  3. 提供服務(wù)器故障透明處理功能。
  4. 支持可撥插的序化支持,以實(shí)現(xiàn)復(fù)雜的鍵-值存儲,它能夠很好的5.集成常用的序化框架如:Protocol Buffers、Thrift、Avro和Java Serialization。
  5. 數(shù)據(jù)項(xiàng)都被標(biāo)識版本能夠在發(fā)生故障時盡量保持?jǐn)?shù)據(jù)的完整性而不會影響系統(tǒng)的可用性。
  6. 每個節(jié)點(diǎn)相互獨(dú)立,互不影響。
  7. 支持可插拔的數(shù)據(jù)放置策略。

Perst

Perst 是一個面向?qū)ο蟮拈_源嵌入式數(shù)據(jù)庫軟件,能夠有效的處理移動設(shè)備上的大量數(shù)據(jù)。Perst 是McObject 公司發(fā)布的一款非常袖珍的開源嵌入式數(shù)據(jù)庫,是一個簡單,快速,便捷,面向?qū)ο螅m合java與.NET 的數(shù)據(jù)庫。Perst 不需要專門的編譯器與預(yù)處理器,支持ACID 事務(wù)。對于在資源受限的移動設(shè)備(如手機(jī), PDA等)上存儲大量數(shù)據(jù)和對數(shù)據(jù)進(jìn)行頻繁的IO 操作往往要消耗很多的設(shè)備資源。由于移動設(shè)備內(nèi)存小,性能較差,如果采用關(guān)系數(shù)據(jù)庫(如SQLServer2000, Oracle)管理數(shù)據(jù),僅靠其有限的內(nèi)存資源是不能運(yùn)行這些數(shù)據(jù)庫管理系統(tǒng)的,這樣就有必要采用一些特殊的數(shù)據(jù)庫系統(tǒng)。Perst 數(shù)據(jù)庫正是為這類設(shè)備研究開發(fā)的,它們的作用是在資源受限的設(shè)備上完成大量數(shù)據(jù)的訪問操作。其實(shí)這些設(shè)備系統(tǒng)資源主要消耗在從磁盤上讀取數(shù)據(jù)的IO操作。如何提供一種有效的文件存儲策略來降低對磁盤的IO 操作是嵌入式數(shù)據(jù)庫軟件設(shè)計(jì)的主要任務(wù)。

像其他嵌入式數(shù)據(jù)庫一樣,Perst沒有管理上的代價,但不同的是Perst直接將對象以Java或者C#對象的形式進(jìn)行存儲。因此不需要在對象的內(nèi)部表現(xiàn)形式和Java/C#表現(xiàn)形式之間轉(zhuǎn)換。這個數(shù)據(jù)庫引擎非常精悍,只有約5000行代碼,McObject對此感到驕傲。根據(jù)訪問模式不同,運(yùn)行時需要30K到300K的內(nèi)存。

Terrastore

Terrastore是一個基于Terracotta(一個業(yè)界公認(rèn)的、快速的分布式集群組件)實(shí)現(xiàn)的高性能分布式文檔數(shù)據(jù)庫??梢詣討B(tài)從運(yùn)行中的集群添加/刪除節(jié)點(diǎn),而且不需要停機(jī)和修改任何配置。支持通過http協(xié)議訪問Terrastore。Terrastore提供了一個基于集合的鍵 /值接口來管理JSON文檔并且不需要預(yù)先定義JSON文檔的架構(gòu)。易于操作,安裝一個完整能夠運(yùn)行的集群只需幾行命令。

HyperGraphDB

HyperGraphDB是一個通用,可擴(kuò)展,可移植的,分布式,可嵌入的開源數(shù)據(jù)存儲機(jī)制。專為人工智能和語義Web項(xiàng)目而設(shè)計(jì)。它也可以用來作為一個適用于各種規(guī)模項(xiàng)目的嵌入式面向?qū)ο髷?shù)據(jù)庫。HyperGraphDB是一個基于Java的產(chǎn)品,構(gòu)建在BerkeleyDB存儲類庫之上。它的主要特性包括:

  1. 支持廣義圖存儲。開放,可擴(kuò)展的類型系統(tǒng)。
  2. 基本查詢系統(tǒng)和圖形的遍歷算法。
  3. 支持Java對象直接存儲。
  4. 線程安全的事務(wù)處理。
  5. 提供P2P框架實(shí)現(xiàn)數(shù)據(jù)分發(fā)。

OrientDB

OrientDB是兼具文擋數(shù)據(jù)庫的靈活性和圖形數(shù)據(jù)庫管理鏈接能力的可深層次擴(kuò)展的文檔-圖形數(shù)據(jù)庫管理系統(tǒng)??蛇x無模式、全模式或混合模式下。支持許多高級特性,諸如ACID事務(wù)、快速索引,原生和SQL查詢功能??梢訨SON格式導(dǎo)入、導(dǎo)出文檔。若不執(zhí)行昂貴的JOIN操作的話,如同關(guān)系數(shù)據(jù)庫可在幾毫秒內(nèi)可檢索數(shù)以百記的鏈接文檔圖。

HandlerSocket client for java

HandlerSocket是一個MySql插件,可以將mysql作為NoSQL來使用。通過這個插件,你可以直接跟MySql后端的存儲引擎做key-value式的交互,省去了MySql上層的SQL解釋、打開關(guān)閉表、創(chuàng)建查詢計(jì)劃等CPU消耗型的開銷。hs4j是 HandlerSocket的一個java客戶端。HS4J的使用很簡單,所有的操作都通過HSClient這個接口進(jìn)行。HS4J同樣支持連接池,可以在構(gòu)建客戶端的時候傳入連接池大小。

相關(guān)文章:http://rdc.taobao.com/team/jm/archives/545

Tair: 淘寶的key/value解決方案

Tair是一個分布式的key/value結(jié)構(gòu)數(shù)據(jù)的解決方案,系統(tǒng)默認(rèn)支持基于內(nèi)存和文件的存儲引擎,對應(yīng)于通常我們所說的緩存和持久化存儲。

Tair具有良好的架構(gòu),使得其在可擴(kuò)展性、數(shù)據(jù)安全性方面都有較好的表現(xiàn):

  1. 基于對照表的靈活、良好的可擴(kuò)展性
  2. 輕量級的configserver
  3. 抽象的存儲引擎層,支持添加新的存儲引擎
  4. 自動的復(fù)制和遷移,對用戶透明
  5. 多機(jī)架和多數(shù)據(jù)中心的支持
  6. 插件容器

Tair除了基本的key/value操作外,還提供了一些實(shí)用的功能,使得其適用的場景更多:

  1. 數(shù)據(jù)的version支持
  2. 原子計(jì)數(shù)器支持
  3. item支持

相關(guān)文章:http://rdc.taobao.com/blog/cs/?p=302#more-302

LucidDB

LucidDB是唯一一款專注于數(shù)據(jù)倉庫和商務(wù)智能的開源RDBMS,它使用了列存儲架構(gòu),支持位圖索引,哈希連接/聚合和頁面級多版本,大部分?jǐn)?shù)據(jù)庫最初都注重事務(wù)處理能力,而分析功能都是后來才加上去的。相反,LucidDB中的所有組件從一開始就是為滿足靈活的需求,高性能數(shù)據(jù)集成和大規(guī)模數(shù)據(jù)查詢而設(shè)計(jì)的,此外,其架構(gòu)設(shè)計(jì)徹底從用戶出發(fā),操作簡單,完全無需DBA。

LucidDB對硬件要求也極低,即使不搭建集群環(huán)境,在單一的Linux或Windows服務(wù)器上也能獲得極好的性能。***版本還加入了對Mac OS X和Windows 64位的支持,官方網(wǎng)站上的文檔和教程也非常豐富,非常值得你體驗(yàn)一下。

Couchdb4j

Couchdb4j是一個Java開源類庫用于與基于JSON的CouchDB數(shù)據(jù)庫交互。

【編輯推薦】

  1. 設(shè)計(jì)實(shí)例對比:MySQL vs MongoDB
  2. 主流NoSQL數(shù)據(jù)庫評測之HBase
  3. MongoDB基于Java、PHP的一般操作和用戶安全設(shè)置
  4. HBase數(shù)據(jù)庫性能調(diào)優(yōu)

 

責(zé)任編輯:艾婧 來源: 博客園
相關(guān)推薦

2017-11-08 09:22:36

數(shù)據(jù)庫NoSQLArangoDB

2024-02-02 10:51:53

2021-09-28 09:25:05

NoSQL數(shù)據(jù)庫列式數(shù)據(jù)庫

2011-10-09 09:38:03

OracleNoSQL

2024-03-28 09:00:00

NoSQL數(shù)據(jù)庫

2019-07-08 10:36:34

數(shù)據(jù)庫WebNoSQL

2019-03-20 15:59:11

NoSQLRedis數(shù)據(jù)庫

2010-04-01 09:45:38

NoSQL

2023-03-05 16:25:38

NoSQL數(shù)據(jù)庫

2020-10-31 22:01:40

NoSQL數(shù)據(jù)庫

2010-08-13 16:40:27

CouchDBAndroid SDKAndroid

2017-05-25 10:11:46

數(shù)據(jù)庫令牌節(jié)點(diǎn)

2025-01-10 09:25:10

NOSQL數(shù)據(jù)庫ACID

2011-04-14 11:14:21

OracleNoSQLMySQL

2011-07-13 09:58:15

HBase

2019-07-23 11:41:45

數(shù)據(jù)庫SQLDocker

2011-03-25 14:40:29

Trinity數(shù)據(jù)庫

2014-02-27 10:08:33

NoSQL

2011-05-16 10:29:44

HandlerSockNoSQL

2019-09-11 15:10:01

NoSQLSQL數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號