Domanda

Non sono sicuro, se si adatta esattamente StackOverflow, tuttavia, come Sono in cerca di un po 'di codice, piuttosto che uno strumento, penso di sì.

Sto cercando un modo di come replicare / sincronizzare i diversi sistemi di database - in questo caso: mysql e MongoDB. Ci sono in esecuzione sia per scopi diversi. Abbiamo iniziato con un database mysql e abbiamo aggiunto MongoDB in seguito per applicazioni speciali. C'è dati che vorremmo avere in entrambi i database, dove si vogliono avere vincoli nel dbrefs respectivly mysql in MongoDB. Per esempio: Abbiamo bisogno di un'user-record nel mysql, ma anche in MongoDB per i riferimenti tra tabelle oggetti respectivly. Al momento abbiamo un cronjob, che scarica i dati MySQL e lo importa in MongoDB. Tuttavia se funziona abbastanza bene, non è la soluzione che vorremmo avere.

Credo che per il momento una replica a senso unico sarebbe sufficiente -. Mysql> MongoDB, la parte importante è, che la replica funziona in "tempo reale", proprio come funziona un mysql Master-> replica Slave

Ci sono già delle soluzioni per questo problema o idee a nessuno di come raggiungere questo obiettivo?

Grazie!

È stato utile?

Soluzione

Quello che stai cercando si chiama EAI ( Enterprise Application Integration ). Ci sono un sacco di strumenti commerciali in giro, ma sotto il link fornito, troverete anche un soluzioni paio OSS. La base di EAI è che avete fonti di dati e lavelli di dati. Il quadro EAI offre strumenti per costruire pompe personalizzati tra i due.

Suggerisco usare sia per un trigger DB per avviare la sincronizzazione o di inviare un segnale di attivazione nelle applicazioni. Si noti che non esiste una soluzione buco della serratura a partire dalla sincronizzazione può diventare arbitrariamente complessi (ad esempio, come si fa a fare in modo che tutte le righe vengono copiate?).

Altri suggerimenti

SymmetricDS è open source, il software di sincronizzazione dati / replica basata su Java, web-enabled, base di dati indipendente che potrebbe fare il trucco con un paio di modifiche. Ha un punto di estensione chiamato IDataLoaderFilter che si potrebbe usare per implementare una MongodbDataLoader.

Questo aiuterebbe con la replica del database in un modo. Potrebbe essere un po 'più difficile da sincronizzato da MongoDb -.> Database relazionale, ma la squadra SymmetricDS sarebbe molto utile nel cercare di trovare la soluzione

Per quanto vedo è necessario sviluppare una sorta di "programma di controllo" che ha i driver per ogni DBMS ed eseguirlo come demone. Il demone dovrebbe avere un trigger o un piccolo intervallo di ricontrollo per mantenere i DB sincronizzati

Tecnicamente, è possibile impostare un processo che analizza il log binario del server MySQL e replicare le relative query SQL. Non ho mai fatto una cosa del genere con un un database differente come schiavo, ma forse vale la pena un colpo?

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