Pregunta

Estoy en busca de un marco de acceso de datos común que proporcionará portabilidad a través de diversas bases de datos NoSQL como SimpleDB, Tablas Azure, Cassandra, CouchDB, MongoDB, etc que estoy construyendo una aplicación y le gustaría que mis clientes sean capaces de Sea cual sea el uso nosql almacenan que quieren.

En un escenario más relacional, que haría uso de LINQ sobre NHibernate o Entity Framework, pero no he encontrado un marco equivalente para las bases de datos NoSQL. Todo lo que he encontrado es la API de base de datos específica es a pesar de que parece que hay coincidencia significativa. ¿Uno existe? Preferiblemente, uno con LINQ.

¿Fue útil?

Solución

Sin estas cosas son demasiado diferentes y demasiado específico (al menos por ahora). Si quería algo realmente simple, como sólo un envoltorio sobre un objeto que sólo se accede por ID, entonces usted puede tener una esperanza. De hecho, si nos fijamos en norma, puede ser posible adaptar eso a diversos proveedores.

Sin embargo, fuera de un pequeño conjunto básico de características, estas bases de datos NoSQL "" son muy diferentes en muchos aspectos. Es decir, ¿cómo aplicar los diversos map / reduce funciones agnóstico? ¿Cómo se implementa operaciones atómicas cuando apoyan diferentes operaciones atómicas?

De cualquier manera, estamos demasiado temprano en el ciclo de vida NoSQL para tener un marco agnóstico de todo esto. Azure básicamente dejó caer su oferta NoSQL a favor de "servidor SQL hospedado". MongoDB es quizás 20 meses de edad, CouchDB todavía está en versión 0.11.x, SimpleDB es inferior a 24 meses de edad, Cassandra es la versión 0.6.2 y tal vez ha estado en uso regular durante un par de años.

Simplemente no estamos allí todavía.

Otros consejos

Se está desarrollando un lenguaje de consulta común (llamado UnQL): http: //www.unqlspec. org / pantalla / UnQL / Inicio

Hay proveedores LINQ para MongoDB, pero no creo que hay un proveedor de LINQ .net genérica a 'todos' db nosql de.

Algunas personas han contemplado sobre un lenguaje de consulta nosql genérica: http://nosql.mypopescu.com/post/731261002/a-common-nosql-query-language

scroll top