Evolution #125
fermé
Fusionner deux couches (copier/coller) en mappant les champs de deux structures différentes
Ajouté par Pascal Geraut il y a plus de 8 ans.
Mis à jour il y a plus de 2 ans.
Description
DREAL Pays de la Loire
Il s'agit de pouvoir fusionner deux couches ou de copier/coller des objets dans une couche existante de structure attributaire différente : une possibilité de mapper un ou plusieurs attributs serait offerte.
Au moins en 2.14 il est possible de coller les entités dans une table de structure différente. Les champs qui ne sont pas en correspondance sont mis à NULL.
Est-ce que la demande couvre le fait de mapper des champs qui auraient des noms différents dans les deux tables (proche d'un ETL !) ?
Dans ce cas est-ce qu'un algorithme ne serait pas le plus adapté ?
C'est typiquement le cas d'une covadisation de données (assez fréquent).
Les champs de la table locale ne correspondent pas un pour un à ceux de la table covadis : il faut faire un mapping comme on le fait avec un ETL (ce qu'on fait actuellement).
Je n'ai pas vu la 2.14 : mais elle le fait dans l'ordre de la structure, pas par reconnaissance du nom de champ ?
A priori c'est bien par reconnaissance de champs commun...ma question était de savoir si c'était satisfaisant pour vous ?
si ça ne l'est pas... je ne crois pas qu'il faille modifier le copier/coller, mais plutôt envisager un nouvel algorithme, à moins que refactor field fasse l'affaire ?
OK pour un nouvel algo.
Refactor fields est actuellement utilisé, mais la souplesse n'est pas au RDV : plutôt que de faire un mapping à la volée en copiant/collant, il faut, pour ne pas modifier la couche locale :
- sauvegarder les objets à transférer dans une couche temporaire
- modifier cette couche temporaire avec Refactor
- copier/coller les objets
- détruire cette couche temporaire.
lourd !
Pour être sûr de bien comprendre... vous souhaitez pouvoir indiquer qu'un champ de nom quelconque de la table de départ correspond à un champ de la table d'arrivée.
Bien sûr il faut que le typage soit correct.
Faut-il envisager la possibilité de réaliser des fonctions (calculateur de champs) entre le champ de départ et le champ d'arrivé (par exemple pour un cast,...) ?
Un champ d'arrivé peut-il être le résultat de plusieurs champs de départ (concaténation,...) ?
est-ce que les enregistrements sont toujours en mode 'ajouter' dans la table d'arrivée...
Les champs n'ayant pas de correspondance seraient mis à NULL.
OK ?
Complément d'information de Philippe Terme
Si nouvel algo, il doit être capable de :
- Réaliser un ajout d'objets d'une table à une autre par mapping des champs, ok pour bénéficier en plus de la calculatrice pour la mapping
- Lorsque les champs à mapper contiennent un identifiant identique, les attributs et les objets sont remplacés (sorte de jointure)
Pour l'instant mis en relation avec la demande #88 (algorithme de mise à jour d'une couche).
La réalisation fait pour l'instant l'objet de discussions car pas facile.
- Version cible mis à A_etudier
- # ref changé de 2363 à 2365
- Statut changé de Nouveau à Fermé
Formats disponibles : Atom
PDF