|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Bonjour ,
J'aimerai faire la transformation suivante par Pentaho. je veux extraire les données d'un fichier log et les mettre dans une table MySQL. mon fichier log contient plusieurs ligne de format différent, donc mon soucis est de distinguer entre les lignes de telle façon que chaque champ du fichier aille dans le champ lui correspondant dans la table. exple simple: la table MySQL contient les champs suivant: Nom, Prenom, Adresse, Age j'ai deux lignes dans mon fichier log ligne 1: AAAA ; aaaa ; Maroc ligne 2: BBBB ; bbbb ; 13 comment faire pour que les les données Maroc s'enregistre dans le champ Adresse, et la données 13 s'enregistre dans le champ Age. Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
si tu as une dimension géographique ou une table avec les pays tu peux faire une étape 'recherche dans base de données' à condition que t'es la même orthographe que dans ton fichier ou tu fais 'une évaluation par reg exp' par contre si t'as plusieurs lignes ça doit être gourmand surtout si tu n'as pas de structure définie pour chaque lignes ce qui fait que tu devras tester chaque champs pour chaque lignes...
__________________
Développeur informatique contrarié... |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Merci pour votre réponse.
Mais franchement je n'est pas bien compris (genre pas du tout, je suis débutante). je n'ai donné qu'un simple exemple, car les ligne de mon fichier log sont très longues et ont plusieurs formats.(j'ai 5 format dans mon fichiers) pouvez vous SVP m'expliquer en détails comment utiliser "évaluation par Regex" ? |
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
si tu utilises kettle qui est normalement intégré dans pentaho, je te dirai plutôt d'utiliser un script java interprété vu la complexité de ton fichier. si tu sais coder en java tu pourras manipuler chaque champs de chaque ligne que tu affecteras à une variable de ton choix et du type de ton choix.
Code :
-tu fais une extraction depuis ton fichier csv (si tu as des entêtes de colonnes tant mieux sinon kettle nommera chaque champs par défaut) et tu mets tout tes champs en string. -tu lies ça à une étape 'Appel script interprété Rhino', tu coches mode compatible et le bout de code du dessus teste si le champs est numérique admettons l'age et vérifie que c'est bien sur 1 ou 2 chiffres comme l'age et pas autre chose...une fois que tu as fini ton script tu cliques sur 'transmettre les variables' et tu choisies celles que tu veux transmettre...
__________________
Développeur informatique contrarié... |
||
|
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Étudiant Inscription : mars 2011 Messages : 6 ![]() |
utilise le script pour séparer les champ suivant sa nature:
- dans le fichier d'extraction, g définit 3 champs: ch1, ch2, ch3 - dans le script java, g utilisé la fonction isNum (dans fct d'évaluation) Code :
ça a marché pour moi |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com