2010-07-27 40 views
7

Ho fatto confusione con il set di dati Ordnance Survey Code-Point Open di codici postali/coordinate del Regno Unito. Dal momento che Couch.io offriva un'istanza CouchDB ospitata gratuitamente ho pensato di inserire i miei dati geografici in uno di questi, imparando un po 'su CouchDB nel processo.Per quale tipo di applicazione CouchDB sarebbe più utile/performante?

L'idea era che, dal momento che CouchDB doveva gestire bene dataset di grandi dimensioni (i dati del codice postale sono circa 1,7 milioni di record) e funziona in modo nativo con REST/JSON, si collegherebbe bene con jQuery sul lato client da utilizzare con Applicazioni di Google Maps.

Il mio obiettivo iniziale era semplicemente quello di essere in grado di effettuare una chiamata AJAX con un codice postale come parametro, recuperando un singolo oggetto JSON con proprietà lat/lon, che potrei consumare nel mio script (mostrando un marcatore per quel codice postale).

Ho fatto questo con successo, ma provenendo da un background relazionale di DB è stato molto più complicato di quanto pensassi; leggendo di più su CouchDB e giocando con esso un po 'ho l'impressione che non sarebbe davvero lo strumento giusto per questo lavoro, se lo stavo davvero usando per un progetto del mondo reale.

Ho ragione nel pensare che le query dinamiche siano un po 'di debolezza per CouchDB? È più mirato a restituire visualizzazioni di grandi dimensioni che non cambiano tutto così spesso, da dataset di grandi dimensioni? Quali potrebbero essere alcuni esempi di usi "buoni" e "cattivi" di CouchDB, in termini di gioco ai suoi punti di forza?

risposta

5

Sono il principale proprietario di hosting Couchio. Sono contento che ti stia godendo CouchDB.

Il mio sentimento è che, fondamentalmente, i database relazionali sono decisamente migliori in caso di query una tantum in costante cambiamento da grandi insiemi di dati. Ci vuole ancora un'eternità per sfogliare tutti questi dati. Né SQL né NoSQL sono un proiettile d'argento lì. Tuttavia, in generale, i database NoSQL sono migliori se sai già quali domande farai. In altre parole, non si tratta di quanto cambia il dati , ma quanto cambiano le query .

Questa è la teoria. Per il tuo progetto specifico, CouchDB è una buona idea? La mia sensazione è, non c'è niente di sbagliato nel fare molti molti indici sul set di dati di base. Il vantaggio delle query solo indice è che le query avvengono molto velocemente. In particolare, CouchDB deve solo reindicizzare nuovi dati, anche per query come medie o checksum XOR.

Quindi, anche se si dispone di un centinaio di tipi diversi di query che è possibile eseguire, se si sa già quali sono queste query, è sufficiente scriverle. Tuttavia, se non smetterai mai di fare nuove domande, CouchDB avrebbe difficoltà a tenere il passo.

+0

Grazie per ciò, esegue il backup di ciò che ho pensato (anche se forse non l'ho detto molto chiaramente). –

+0

Diciamo che hai un logger per una risorsa. Le risorse sono accessibili da molti utenti ogni secondo. Il logger deve calcolare il numero corrente di utenti che accedono alla risorsa e il tempo medio in cui la risorsa viene utilizzata da tutti gli utenti. Attualmente MySQL non può tenere il passo con il numero di scritture. CouchDB sarebbe una soluzione migliore? – Cory

Problemi correlati