Bonjour,
J'aimerai pouvoir effectuer une copie d'une base de données MySql distante vers une base de données MySql locale avec Talend.
Est-ce possible?
Si oui, quels composants utiliser?
D'avance merci.
Bonjour,
J'aimerai pouvoir effectuer une copie d'une base de données MySql distante vers une base de données MySql locale avec Talend.
Est-ce possible?
Si oui, quels composants utiliser?
D'avance merci.
miniil
Bonjour,
Pourrais-tu préciser ce que tu comptes faire ?
Est-ce qu'il s'agit de compier l'ensemble de la base ou certaines données ?
Est-ce que tu comptes faire des transformations sur les données que tu vas récupérer ?
S'il s'agit de récupérer des données d'une table de ta base distance et de les insérer dans une table de ta base locale, tu peux utiliser les composants tMysqlInput et tMysqlOutput, avec éventuellement un tMap entre les 2 si tu souhaites transformer les données.
Nicolas
Bonjour,
Merci de votre réponse.
Je souhaite copier toute ma DB de mon forum phpBB (±60 tables) dans une db locale, tous les enregistrements, sans transformation.
En effet avec TMysqlInput et TMysqlOutput c'est tout à fait possible mais il faut répéter l'opération pour les 60 tables.
Je voulais simplement savoir si il y avait un moyen de faire ça de manière plus "rapide".
D'avance merci.
miniil
A première vue, je ne vois pas d'intérêt à utiliser un ETL pour faire cette opération.
Le plus simple doit être de faire des exports/imports des tables.
Je ne connais pas trop mysql, mais cela doit être possible assez simplement avec des scripts shells ou windows, suivant le système que tu utilises.
Nicolas
Oui bien sûr qu'on peut le faire sans talend mais talend m'aurait permis en un click de faire la manipulation (une fois le job créé)
miniil
Et bien justement, non
Sinon tu peux faire dans Talend ce que tu peux faire par shell :
Lister les tables de la base par une requête sur les tables systèmes, et envoyer ça dans un composant shell qui fait l'export pour chaque table.
Dans un autre job, parcourir les fichiers exports pour les importer un par un, toujours via un composant shell.
Mais bon, ça a l'air plus simple à faire en ligne de commande.
Merci.
Mais existe-t-il une solution pour ne pas devoir faire table par table?
C'est pas compliqué mais quand même assez long.
miniil
Ben je viens de te la donner...
Je ne pense pas que tu trouveras mieux avec un ETL.
Sinon, dans Talend, tu pourrais faire quelque chose comme ça :
Récupérer la liste de toutes les tables dans la BDD MySQL dans un fichier plat par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select table_name from information_schema.TABLES where table_schema = 'MonSchema' and table_type = 'BASE TABLE'
Pour chaque valeur du fichier (nom d'une table), la charger dans une variable globale.
Faire la copie de la table à l'aide de la variable globale.
J'espère avoir été assez clair.
Bon courage à toi.
A+
Merci, je vais essayer cette solution également.
REM : Quelqu'un peut-il m'expliquer comment faire un job sequence ?
miniil
Un job sequence est un job "classique" qui te permet d'orchestrer tes jobs.
Pour te faciliter la création, tu peux faire du glisser / déposer directement depuis le "Directory".
Tous les autres composants restent utilisables dans ce genre de jobs pour effectuer d'autres actions.
Bon courage à toi.
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager