2011-12-28 36 views
4

在我看來,大多數NoSQL數據庫都在其核心關鍵/值存儲區,這意味着應該能夠構建一個可能與NoSQL數據庫不可知的層。NoSQL不可知的持久層

該層僅使用CRUD操作(put,set,delete),但會暴露更多高級功能,並且您將能夠以最小的努力切換底層DB,無論它是Mongo,Redis,Cassandra等。

建設這樣的東西對許多人有價值,它已經存在嗎?

感謝

回答

3
+0

和PlayOrm以及具有可用於cassandra,hadoop,mongodb等的便攜式S-SQL語言等,因此您不會被鎖定在cassandra的CQL語言中。 (如果你想鎖定cassandra,CQL將在後面添加)。 – 2012-10-28 16:00:20

1

這是幾乎不可能建立這樣的事情。作爲一個思想實驗,我建議你以Redis,MongoDB和Cassandra爲例,並設計一個這樣的圖層的API。

這些NoSQL解決方案具有截然不同的特性,它們服務於不同的目的。試圖爲它們構建一個通用API就像爲SQL數據庫,電子表格文檔,純文本文件和gmail構建通用API。

雖然你當然可以拿出東西,它會完全沒有意義。

不同的需求需要不同的工具。

+0

我不沒想到,OP想要在NoSQL數據庫上構建一個SQL層。他只是想爲頂級的CRUD操作構建一些API。 – Jan 2011-12-28 10:41:10

+0

我的意思是,如果你限制自己的基本CRUD,你做錯了什麼。這將MongoDB轉換爲具有持久性的memcache。 Redis也一樣。您將無法使用這些解決方案的所有功能。重點是什麼? – 2011-12-28 10:44:32

+2

@SergeiTulentsev我部分同意「你做錯了」,但也有很多問題可以通過類似於CRUD的抽象來解決,這些抽象不需要任何特定NoDB的特定功能,但仍然可以從NoSQL中受益關係。最後,這些都是關鍵價值商店。每個NoDB的驅動程序都可以:1)優化CRUD以適應他們的數據庫; 2)提供擴展API的方法,以便可以在NoDB之間切換,而不是在當前。而且,這樣的抽象決不會限制對需要它的用例直接訪問NoDB驅動程序。 – nicerobot 2011-12-28 13:52:51

2

UnQL意味着非結構化查詢語言。它是一種針對JSON,半結構化和文檔數據庫的開放式查詢語言。

+1

有趣。看起來像一個靈活的SQL對應,沒有聯接可以幫助基於文檔的k/v存儲採用,並將兼容性問題轉移到數據庫開發人員本身。 – 2011-12-28 17:05:01

+0

UnQL ...有趣的 – Amresh 2012-08-29 19:08:24

3

NuoDB是一個可彈性擴展的SQL/ACID數據庫,使用鍵/值模型進行存儲。它現在在亞馬遜S3上運行(以及標準文件系統),原則上可以支持任何KV商店。目前它的訪問方法是SQL,但如果這是常見的需求,系統可以輕鬆地支持其他數據訪問語言和方法。

巴里·莫里斯,NuoDB公司

+0

是我還是這甚至不試圖回答他的問題? – 2012-10-28 16:27:08

0

PlayOrm是建立在卡桑德拉,但有一個可插拔的接口的HBase,MongoDB的,等等,等等20/30年前,他們說,大約RDBMS同樣的事情另一種解決方案,但越來越多的功能集合。我懷疑你會在nosql數據庫中看到很多,以及他們採用對方的功能集。

目前,他們有很大不同的功能集,但在覈心有一組非常相似的操作。

PlayOrm實際上建立它的查詢語言,它在任何的NoSQL提供商合作爲好,所以它的S-SQL可擴展的SQL可與卡桑德拉,Hadoop的,等等,等等工作

後, 院長