Requetes sur plusieurs bases de données

falafala
Invité n'ayant pas de compte PHPfrance

13 sept. 2010, 10:36

Bonjour,

J utilise phpmyadmin.

Je dispose de 150 bases, chacune pour un client different.
Dans chaque base, il y a plusieurs tables dont une qui s'appelle interv (qui a la meme forme dans chaque base)

Je voudrais realiser une requete sql sur phpmyadmin pour regrouper dans une seule base (ou un fichier excel) l'ensemble des donnees de ces tables, les unes a la suite des autres, avec la possibilite de rajouter une colonne pour inserer le nom de la base de donnees pour chaque element.

J avoue que je galere un peu.

Je vous remercie par avance pour votre aide!

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 sept. 2010, 11:08

À ta place je regarderai du côté d'un ETL, exemple Talend OS: http://www.talend.com/products-data-int ... studio.php

C'est graphique, réutilisable, et ça permet de prendre en main un outil qui pourra être utile de nombreuses fois.

Petit nouveau ! | 2 Messages

13 sept. 2010, 11:41

Je suis en train de regarder, j'ai téléchargé la version de base.

Ca m'a l'air assez compliqué pour ce que je veux faire.

Est ce que quelqu'un sait comment relier cet outil à mes bases de données??

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 sept. 2010, 14:00

C'est peut-être plus compliqué car tu ne connais pas encore, donc ça te semblerait plus simple de faire une requête SQL/un script PHP. Ceci dit j'utilise ça quand j'ai des manipulations de données, même simples, à faire désormais car tu peux faire des exécutables de tes process, les réutiliser, les modifier, voir le chemin et les actions dans l'éditeur, mettre des logs etc.

De plus, en prenant en main sur un truc simple, tu commences à connaître l'outil ce qui pourrait t'être utile lorsque que tu auras vraiment besoin de faire un import complexe (surveiller un répertoire pour importer des excels déposés, les lier avec des valeurs en base etc). Sur la droite de l'outil tu dois pouvoir filtrer sur "mysql" pour voir tous les connecteurs disponibles.

Bon peut-être que ce n'est pas le bon moment pour essayer. Si tu as 150 bases (tu as vraiment besoin de faire une base par client?) tu peux faire une petite boucle sur tes bases, et à l'intérieur faire la connexion, un select, envoyer le résultat dans un fichier texte, correctement formaté en CSV, puis faire un msql load je sais plus quoi (voir la FAQ pour un exemple). Solution artisanale mais qui devrait fonctionner, peut-être un peu longue si tes tables sont grosses :)