Domanda

Ci sono stati molti parlare dei database NOSQL contro-rivoluzionari come cassandra , couchdb , ipertable , mongodb , Project Voldemort , Bigtable , e così tante altre. Per quanto mi riguarda, i professionisti più forti sono scalabilità, prestazioni e semplicità.

Sto seriamente considerando di suggerire di utilizzare un DB non relazionale per il nostro prossimo progetto. Tuttavia, alcune squadre comprendono alcuni fanatici RDBMS, quindi convincere un hard switch potrebbe essere impossibile in alcuni casi solo a causa di motivi emotivi. Inoltre, quando si tratta di modelli di dati complessi, personalmente credo ancora nella potenza di RDBMS con i loro meccanismi di esecuzione di coerenza di basso livello.

Ora qui arriva la mia domanda: mi stavo chiedendo, se qualcuno potesse seriamente prendere in considerazione seriamente l'utilizzo di entrambi, RDBMS e DB non relazionale in un nuovo progetto: il modello di dati critico complesso, ma non performance sarebbe ancora Essere implementato utilizzando un modello relazionale e DB, mentre tutti i modelli critici delle prestazioni, eppure, i modelli semplici sarebbero implementati con un DB non relazionale. Inoltre, un spostamento del paradigma così morbido sarebbe molto più facile da vendere ad alcuni membri del team altamente emozionanti che uno difficile.

Qualcuno consiglierei un approccio così simile? O preferiresti consigliare un nero o un approccio relazionale o non relazionale? Tutti i commenti Hight Benvenuti!


.

P.S.: Qualche idea se un tale mix-up funziona bene con la primavera e l'ibernazione / JPA?

È stato utile?

Soluzione

Rob Conery ha recentemente scritto sulla sua Esperienza Costruire la sua applicazione web popolare tekpub con entrambi i mongodb e mysql, evidenziando i punti di forza di entrambi:

.

Le cose ad alta leggerezza (informazioni sull'account, le produzioni e le informazioni sull'episodio) sono perfette per un tipo di cosa "in questo momento" come MongoDB. La roba "Quello che è successo ieri" è perfetto per un sistema relazionale.

Ad alto livello, ROB rompe i loro dati di applicazione in due scopi: dati di runtime e dati storici. Lo stato attuale del carrello della spesa di un utente, ad esempio, è ottimo per la conservazione del MongoDb. È un oggetto oggetto che è costantemente mutante. Per mantenere un record storico di ciò che è entrato e fuori dal carrello della spesa; quando è successo; Lo stato del checkout è ottimo per i dati relazionali e tabulari in MySQL.

si riassume con questo:

.

funziona perfettamente. Potrei NON Sii più felice con la nostra configurazione. È incredibilmente bassa manutenzione, possiamo sostenerci come qualsiasi altra soluzione, e abbiamo i dati di cui abbiamo bisogno quando ne abbiamo bisogno.

Aggiornamento maggio 2016 (6 anni dopo)

Questo è diventato solo più vero negli ultimi 6 anni. È ormai comune vedere i database NOSQL che alimentano i negozi transazionali e i database relazionali tradizionali di alimentazione dei database analitici.

Altri suggerimenti

Io uso entrambi.RDBMS è buono per analisi complesse, report e dati accessibili in diversi modi da più utenti.NOSQL è fantastico quando sto guardando un dato da una prospettiva di utenti singoli.Una domanda che mi chiedo è: "Chi sta accedendo a questi dati?".Se la risposta è 1 utente, uso NOSQL per memorizzarlo.

Certo, ci sono altre volte in cui è appropriato, ma è solo un esempio.

Come citato, NOSQL è una memorizzazione più semplice e potrebbe causare il tuo codice complesso giusto per mantenere i dati ... ad esempio, memorizzando un elenco di connessioni.

I database non relazionali del valore della chiave sono utilizzati al meglio per lo stoccaggio Blob e la memorizzazione nella cache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top