Question

Je ne sais pas, si elle correspond exactement à stackoverflow, mais comme je suis en quête d'un code plutôt qu'un outil, je pense qu'il fait.

Je cherche un moyen de savoir comment répliquer / synchroniser les systèmes de bases de données différentes - dans ce cas: MySQL et MongoDB. Nous courons à la fois à des fins différentes. Nous avons commencé avec une base de données MySQL et ajouté mongodb plus tard pour des applications spéciales. Il y a des données que nous aimerions avoir dans les deux bases de données, où nous voulons avoir des contraintes dans DBREFS mysql de respectivly dans MongoDB. Par exemple: Nous avons besoin d'un enregistrement utilisateur dans MySQL, mais aussi dans MongoDB des références entre les tables objets respectivly. Actuellement, nous avons une tâche cron, qui décharge les données mysql et il importe dans MongoDB. Mais si cela fonctionne très bien, ce n'est pas la solution que nous aimerions avoir.

Je pense que pour le moment une réplication à sens unique serait assez -. Mysql> MongoDB, la partie importante est que la réplication fonctionne en « temps réel », un peu comme un mysql master-> œuvres de réplication esclave

Y at-il déjà des solutions à ce problème ou des idées de tout le monde comment y parvenir?

Merci!

Était-ce utile?

La solution

Qu'est-ce que vous cherchez est appelé EAI ( intégration d'applications d'entreprise ). Il y a beaucoup d'outils commerciaux autour, mais sous le lien fourni, vous trouverez aussi quelques solutions OSS. La base de l'EAI est que vous avez des sources de données et des puits de données. Le cadre EAI propose des outils pour construire des pompes personnalisées entre les deux.

Je suggère d'utiliser soit un déclencheur DB pour démarrer la synchronisation ou d'envoyer un signal de déclenchement dans vos applications. Notez qu'il n'y a pas de solution clé-trou puisque la synchronisation peut devenir arbitrairement complexe (par exemple, comment voulez-vous assurez-vous que toutes les lignes sont copiées?).

Autres conseils

SymmetricDS est open source, basé sur Java, compatible Web, base de données indépendante, logiciel de synchronisation de données / de réplication qui pourraient faire l'affaire avec quelques coups secs. Il a un point d'extension appelé IDataLoaderFilter que vous pouvez utiliser pour mettre en œuvre un MongodbDataLoader.

Cela contribuerait à une réplication de base de données de manière. Il est peut-être un peu plus difficile à synchroniser de MongoDB -.> Base de données relationnelle, mais l'équipe de SymmetricDS serait très utile pour essayer de trouver la solution

Pour autant que je vois que vous avez besoin de développer une sorte de « programme de contrôle » qui a les pilotes pour chaque SGBD et l'exécuter comme un démon. Le démon doit avoir un déclencheur ou un très petit intervalle recheck pour garder les blocs de données synchronisées

Techniquement, vous pourriez mettre en place un processus qui analyse le journal binaire du serveur MySQL et répliquer les requêtes SQL pertinentes. Je ne l'ai jamais fait une telle chose avec une autre base comme un esclave, mais peut-être il vaut la peine un coup de feu?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top