2011-03-06 113 views
4

我正在開發一個開源產品,需要一個嵌入式dbms。 你可以推薦...嵌入式nosql開源java數據庫

  • 可以處理超過10 GB每個
  • 擁有友好地埋線(LGPL,而不是GPL)的許可對象的嵌入式開源數據庫。
  • 是純Java
  • 是(最好是)nosql。 SQL可能會奏效,但更喜歡的NoSQL

我看過了一些文檔數據庫管理系統,如MongoDB的, 但他們似乎被限制在4頁或16 MB的文件。

Berkeley DB看起來很吸引人,但擁有GPL許可證。

Sqlite3很吸引人:良好的許可證,你可以編譯 你喜歡的任何最大blob大小。但是,這不是Java。 我知道存在JDBC驅動程序,但我們需要一個純Java系統。

有什麼建議嗎?

感謝

史蒂夫

回答

6

雖然這是一個老問題,我一直在尋找到這家最近和所遇到以下(至少兩個,這一問題被提出之後的寫)。我不確定其中的任何一個如何處理非常大的對象 - 並且在10GB時,您可能不得不進行一些嚴重的測試,因爲我認爲很少有數據庫開發人員會爲他們的產品考慮這種大小的對象(只是猜測)。我一定會考慮直接將它們存儲到磁盤,只需引用數據庫中的文件位置即可。

(下面的觀點都很膚淺,順便說一下,因爲我還沒有認真地使用它們)。


OrientDB看起來最成熟的三,我發現的。它似乎是一個文檔和/或圖形數據庫,並聲稱速度非常快(使用和「RB +樹」數據結構 - B +和紅黑樹的組合)。它聲稱是超快速和輕量級的,沒有外部依賴性。例如,似乎有一個積極的社區正在開發它,在過去的幾天中有很多提交。它還符合TinkerPop圖形數據庫標準,它增加了另一層功能(如Gremlin圖形查詢語言)。它符合ACID,具有REST和其他外部API,甚至是基於Web的管理應用程序(大概可以與嵌入式數據庫一起部署,但我不確定)。

接下來的兩個更多的陷入了N(OT)O(nly)SQL世界的簡單鍵值存儲陣營。

JDBM3是一個非常小的數據存儲:它具有通過內存映射文件寫入磁盤的哈希映射,樹映射,樹集和鏈表。它聲稱非常輕巧,速度非常快,完全交易並且正在積極開發中。

HawtDB看起來相似非常簡單和快速 - 基於BTree或哈希的索引持久化到磁盤與內存映射文件。它(可選)完全交易。在過去的七個月中(截至2012年3月底)沒有任何承諾,郵件列表上的活動也不多。這並不是說它不是一個好的圖書館,但值得一提。

JDBM3和HawtDB是非常小的,所以你不會得到任何花哨的圖形用戶界面。但我認爲他們對於速度和簡單性都非常有吸引力。


這些都是我發現符合您的要求。另外,Neo4J非常棒 - 圖形數據庫,現在已經相當成熟,並且在嵌入式模式下效果很好。這是GPL/AGPL許可的,雖然如此,可能需要支付牌照,除非你能過開源代碼: http://neotechnology.com/products/price-list/

當然,你也可以使用H2 SQL database一個大表,沒有索引!

+0

一直試圖使用OrientDB作爲文檔數據庫。文檔已過時,幾乎所有示例都使用已棄用的類...閱讀最新版本的javadocs幾乎沒有任何幫助......我期待着嘗試一下,但在開始令人沮喪的開始之後,我不是當然,這是一個不錯的選擇。 – Renato 2015-08-17 17:21:30