Mysql
 sql >> Base de données >  >> RDS >> Mysql

Perl :comment copier/miroir une ou plusieurs tables MYSQL distantes vers une autre base de données ? Peut-être une structure différente aussi?

Les deux termes que vous recherchez sont soit "réplication " ou "ETL".

Tout d'abord, approche de réplication.

Supposons que votre serveur d'administration dispose des tables T1, T2, T3 et que votre serveur public dispose des tables TP1, TP2.

Donc, ce que vous voulez faire (puisque vous avez différentes structures de table comme vous l'avez dit) est :

  1. Prenez les tables du serveur public et créez des copies exactes de ces tables sur le serveur d'administration (TP1 et TP2).

  2. Créez un déclencheur sur les tables d'origine du serveur d'administration pour remplir les données de T1/T2/T3 dans la copie du serveur d'administration de TP1/TP2.

  3. Vous devrez également remplir les données initiales de T1/T2/T3 dans la copie du serveur d'administration de TP1/TP2. Euh.

  4. Configurer la "réplication " du TP1/TP2 du serveur admin vers le TP1/TP2 du serveur public

Une approche différente consiste à écrire un programme (ces programmes sont appelés ETL - Extract-Transform-Load) qui extraira les données de T1/T2/T3 sur le serveur d'administration (la partie "E" de "ETL"), massera les données dans un format adapté au chargement dans les tables TP1/TP2 (la partie "T" de "ETL"), transfert (via ftp/scp/whatnot) de ces fichiers vers un serveur public, et la seconde moitié du programme (le "L") chargera les fichiers dans les tables TP1/TP2 sur le serveur public. Les deux moitiés du programme seraient lancées par cron ou votre planificateur de choix.

Il y a un article avec un très bon exemple de comment commencer à construire Perl/MySQL ETL :http://oreilly.com/pub/a/databases/2007/04/12/construire-un-entrepôt-de-données -avec-mysql-et-perl.html?page=2

Si vous préférez ne pas créer le vôtre, voici une liste de systèmes ETL open source, jamais utilisés, donc pas d'avis sur leur utilisabilité/qualité :http://www.manageability.org/blog/stuff/open-source-etl