MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Tabella di Azure vs MongoDB in Azure

Archiviazione tabelle è una funzionalità di archiviazione di base di Windows Azure, progettata per essere scalabile (100 TB 200 TB 500 TB per account), durevole (replica tripla nel data center, facoltativamente georeplicata in un altro data center) e senza schema (ogni riga può contenere le proprietà desiderate). Una riga è individuata dalla chiave di partizione + chiave di riga, fornendo una ricerca molto veloce. Tutto l'accesso a Table Storage avviene tramite un'API REST ben definita utilizzabile attraverso qualsiasi linguaggio (con SDK, basati sulle API REST, già in atto per .NET, PHP, Java, Python e Ruby).

MongoDB è un database orientato ai documenti. Per eseguirlo in Azure, è necessario installare MongoDB su un Web/ruoli di lavoro o su una macchina virtuale, puntarlo su un'unità cloud (fornendo così una lettera di unità) o su un disco collegato (per macchine virtuali Windows/Linux), facoltativamente attivare il journaling (che consiglierei) e, facoltativamente, definire un endpoint esterno per il tuo utilizzo (o accedervi tramite rete virtuale). Il Cloud Drive/disco collegato, tra l'altro, è in realtà archiviato in un BLOB di Azure, offrendo la stessa durabilità e replica geografica delle tabelle di Azure.

Quando si confrontano i due, ricorda che Table Storage è Storage-as-a-Service:accedi semplicemente a un noto endpoint REST. Con MongoDB, sei responsabile della manutenzione del database (ad es. ogni volta che MongoDB Inc (ex 10gen) pubblica una nuova versione di MongoDB, dovrai aggiornare il tuo server di conseguenza).

Per quanto riguarda la versione alpha di MongoDB Inc indicata da jtoberon:se la guardi da vicino, vedrai alcune cose chiave:

  • La configurazione è per un'istanza mongodb standalone, senza set di repliche o shard. Per quanto riguarda i set di repliche, ottieni comunque numerosi vantaggi utilizzando la versione Standalone, grazie al modo in cui funziona l'archiviazione BLOB.
  • Per fornire un'elevata disponibilità, puoi eseguire con più istanze. In questo caso, solo un'istanza serve il database e una è un "warm-standby" che avvia il processo mongod non appena l'altra istanza ha esito negativo (per riavvio della manutenzione, guasto hardware, ecc.).

Mentre il wrapper di Windows Azure di 10gen è ancora considerato "alpha", mongod.exe non lo è. Puoi avviare mongod exe proprio come faresti con qualsiasi altro exe di Windows. È solo il codice di gestione relativo al lancio, ed è quello che sta dimostrando l'implementazione di alpa.

EDIT 8-12-2011:Questo non è più in uno stato alfa. Puoi scaricare l'ultimo progetto MongoDB+Windows Azure qui, che fornisce supporto per i set di repliche.

Per le prestazioni, penso che dovrai fare un po' di benchmarking. Detto questo, considera quanto segue:

  • Quando accedi a Table Storage o MongoDB da, ad esempio, un ruolo Web, stai ancora contattando il sistema di archiviazione di Windows Azure.
  • MongoDB utilizza molta memoria per la propria cache. Per questo motivo, molti sistemi MongoDB su larga scala vengono distribuiti su istanze di dimensioni maggiori. Per l'accesso a Table Storage, non avrai la stessa considerazione della dimensione della memoria.

EDIT 7 aprile 2015 Se vuoi usare un database basato su documenti come servizio, Azure ora offre DocumentDB.