#1 Fri 13 May 2011 14:27
Exploser les attributs "redondants" d'une table
Bonjour,
Parfois un schéma vaut mieux qu'une explication :
J'ai une table pas très "merise" qui possède des champs comme ceci :
-Table 1 --Objet 1
--\--Champs de l'objet 1 :
-truc
-protection_1
-protection_2
-protection_3
-nom_1
-nom_2
-nom_3
-bidule
Je cherche une façon de faire pour faire en sorte de créer plusieurs entrées avec les champs "redondants" :
Entrée 1 :
protection_1
nom_1
Entrée 2 :
protection_2
nom_2
...
Pouvez vous me donner une astuce car là je sèche :s
@bientôt et merci
Dernière modification par heretik25 (Fri 13 May 2011 14:28)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#2 Fri 13 May 2011 14:42
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Exploser les attributs "redondants" d'une table
Aloha
Les outils de listes sont là pour ça. Que je comprenne bien : vous avez un attribut nommé protection1, un autre protection 2... Si c'est le cas, ListPopulator devrait créer une liste protection{} contenant les valeurs protection{0}, protection{1}.... A relancer pour créer la liste nom{}...
Ensuite, il est possible à l'aide de list duplicate remover de supprimer les doublons et de listexploder de créer un objet pour chaque éléments de liste.
Si besoin, j'ajouterai un exemple de projet FME.
Cordialement,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#3 Fri 13 May 2011 15:06
Re: Exploser les attributs "redondants" d'une table
Bonjour et merci pour votre réponse.
L'objectif est de récupérer tous les attributs finissant par "_1" pour créer une entrée, tous les attributs finissants par "_2" est de créer une autre entrée.
Il faut savoir qu'il m'est nécessaire de savoir que les attributs "_1" sont rattachés à l'objet 1 et que les attributs "_2" sont aussi par exemple rattachés à l'objet 1.
Ce n'est pas facilement explicable mais j'espère que vous avez compris
P.S : Je veux bien un exemple de projet !
@bientôt et merci
Dernière modification par heretik25 (Fri 13 May 2011 15:19)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#4 Mon 16 May 2011 15:33
Re: Exploser les attributs "redondants" d'une table
Un petit up également
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#5 Mon 16 May 2011 16:43
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Exploser les attributs "redondants" d'une table
Bonjour,
Avez-vous testé les pistes évoquées ?
Sinon, ci-joint un projet qui peut servir d'inspiration.
PS. "up" ce n'est pas francophone, merci.
Cordialement
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#6 Tue 17 May 2011 09:44
Re: Exploser les attributs "redondants" d'une table
Bonjour,
Oui, j'avais essayé avec ce transformer que je ne connaissais pas (listpopulator) mais sans succès.
Le projet workbench que vous proposez est intéressant mais ne fait pas tout à fait ce que j'attends.
En effet, selon mon attente le fichier source devrait générer que 5 ligne alors qu'il en génère 16.
Je vous joint le fichier Excel que vous m'avez donné en exemple avec en dessous le résultat attendu.
Par avance merci pour votre aide.
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#7 Tue 17 May 2011 11:39
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Exploser les attributs "redondants" d'une table
Bonjour,
Ci joint un projet modifié. Si possible modifier votre fichier excel en entrée afin de débuter les itérations par 0 et non par 1.
Il faut peut-être remplacer l'AttributeCopier par un attributeRenamer (pas de doublons créés ainsi).
Le principe du projet :
-créer les listes sur la base des attributs commençant par protection_ ou nom_ (donc 2 listes)
-numéroter les objets
-dans un flux de données, recréer un objet par membre de la liste 1, dans un autre flux de données, recréer un objet par membre de la liste 2, et dans le dernier flux, prendre les éléments de base et les purger
-assembler les deux flux issus des listes
-joindre ce flux aux éléments de base
Cordialement,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#8 Tue 17 May 2011 12:13
Re: Exploser les attributs "redondants" d'une table
Bonjour, de nouveau merci pour votre implication.
Je viens de regarder le projet et en sortie, il y a 7 lignes alors qu'en théorie seul 5 cas sont possibles.
Sur les 7 lignes, il n'y a pas les 5 bonnes lignes attendues. (CF. Fichier Excel "resultat_attendu.xls")
Je ne comprends pas d'où viennent ces sept lignes, pouvez-vous me l'expliquer ?
Par avance merci.
@bientôt
Dernière modification par heretik25 (Tue 17 May 2011 12:28)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#9 Tue 17 May 2011 13:56
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Exploser les attributs "redondants" d'une table
Bonjour,
Pourquoi 7 lignes : comme écrit dans mon précédent message, vos attributs étant numérotés de 1 à n, il faut les renuméroter de 0 à n-1. Avec un attribute copier, il reste le n. Donc au lieu de 5 lignes en sorties, on en a 2 de +, une par liste.
J'ai modifié la jointure sur les deux flux issus des listes. Comme on souhaite conserver l'ordre des éléments de liste, la jointure se fait pour chacun des objets (le group by count) sur l'attribut element_count (l'index de l'élément de liste).
Une fois ceci fait, on obtient 7 lignes en sorties. Remplacer l'attributeCopier par un renamer, et cela devrait fonctionner. Ou par une fonction python ou tcl.
Cordialement,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#10 Tue 17 May 2011 14:49
Re: Exploser les attributs "redondants" d'une table
Bonjour,
Merci beaucoup, cela correspond à mon besoin, longue vie à GeoRezo !
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne