2012-02-12 2 views
9

Mi chiedevo se esistono linguaggi standard o API per accedere ai database NoSQL (o almeno ai database BigData o Column store)?Esiste un'API standard emergente per i database NoSQL?

Oppure è necessario imparare la lingua specifica del dominio per il contributo di ciascun fornitore?

+1

Spero che la gente non chiuda questa domanda. Voglio solo sapere se ci sono API unificate? Non sei sicuro del motivo per cui ciò sarebbe considerato controverso? –

+0

Come in, i livelli di astrazione agnostica del database come PDO per PHP? Non sono sicuro di quale sarebbe lo standard per NoSQL, ad eccezione di "Non SQL". – mrlee

+1

È possibile che manchi il punto di overflow dello stack: perché questa domanda è controversa e c'è un forum migliore per questa richiesta? Sto cercando di ricercare NoSQL per un articolo, e penso che questa sia una domanda molto pertinente. –

risposta

2

Il database relazionale ha il linguaggio SQL.

I database NoSQL sono di diversi tipi: grafico, colonne, documento. valore chiave, ecc.

Sono tutti specifici per gestire. Forse un tipo potrebbe avere una lingua unificata, ma tra di loro, non sarebbe così naturale. Quindi sì, devi usare/imparare l'API per ogni tipo.

Ad un altro livello, se si utilizza java come linguaggio di programmazione, è possibile utilizzare i dati di primavera che propongono un set di librerie per accedere a tali database. Non l'ho usato ma con esso sarete in grado di confrontare abbastanza facilmente le API tra i diversi tipi di database.

Allora avete questa domanda che sembra ben collegati con il vostro: Are there any NoSQL standards emerging?

+0

Ha senso che i database Graph non abbiano la stessa API di Columnar, ma che dire di HBase contro Cassandra? –

2

ho visto 2 iniziative il cui obiettivo è quello di fornire un'interfaccia unificata a tutti NoSQL DB. Uno è UnQL che fornisce un'interfaccia simile a DML SQL.

L'altro è Apache Thrift, che fornisce un modo neutrale per descrivere e implementare le query.

3

Uno potenzialmente interessante è AppScale che fornisce un'API unificata per HBase, Hypertable, MySQL Cluster, Cassandra, Voldemort, MongoDB, MemcacheDB e Redis. L'API è definita da Google per Google App Engine ed è disponibile per Java, Python e Go.

+0

Oh, e se utilizzi l'API di Google App Engine in Java, dovresti esaminare Objectify https://code.google.com/p/objectify-appengine/ – mjaggard