Transformers FME: 2025.0

Categories
Base de données
Filtres et jointures
Related Transformers
DatabaseDeleter
DatabaseJoiner
DatabaseUpdater
FeatureMerger
InlineQuerier
ListBasedFeatureMerger
Matcher
SQLCreator
SQLExecutor

FeatureJoiner

Joins des entités en combinant les attributs et/ou la géométrie d'entités basées sur des valeurs d'attributs clés communs. Effectue des jointures gauches, internes et complètes.

Aller à la configuration

Cas d'utilisations typiques

  • Effectue des jointures simples entre entités en utilisant un (ou des) valeur(s) d'un attribut comme clé(s).

Comment fonctionne-t-il ?

FeatureJoiner effectue de simples opérations de jointure, à l'instar d'une jointure SQL, sans avoir besoin de savoir construire une requête SQL.

Il possède deux ports d'entrée -Left et Right- où deux flux d'entités à joindre sont acheminés vers le Transformer. Un ou plusieurs attributs sont sélectionnés pour être joints.

Une entité Left correspond à une entité Right quand chaque paire de clés spécifiées dans la table Jointure a la même valeur. Quand il y a correspondance, les attributs et géométries des entités Left et Right sont combinés dans une nouvelle entité ressortant par le port Joined.

Notez que toutes les entités d'entrée doivent avoir le même système de coordonnées, à la fois à Left et à Right.

Méthode de jointure

Le paramètre Méthode de jointure définit le type de jointure à effectuer, déterminant quelles entités ressortiront via le port de sortie Joined.

Méthode de jointure

Port de sortie Joined

 

Inner (Interne)
  • Seules les entités qui ont des paires Gauche (Left) et Droite ( Right) correspondantes.
Left (Gauche)
  • Entités qui ont une correspondance de paires Gauche (Left) et Droite ( Right)  ET
  • Toutes les autres entités Gauche (Left) sans correspondance.
Complète (Full)
  • Entités qui ont une correspondance de paires Gauche (Left) et Droite ( Right)  ET
  • Toutes les autres entités Gauche (Left) et Droite ( Right) sans correspondance.

Comportement de jointure

Une entité jointe est produite chaque fois qu'une entité Left (gauche) est mise en correspondance avec une entité Right (droite) par le biais de ses clés. Le nombre d'entités de sortie produites dépendra de la correspondance ou non de plusieurs entités gauche et droite.

Le type de jointure est déterminé par la nature des données utilisées (il ne s'agit pas d'un paramètre). Tous ces types de jointures peuvent être produits par l'une des Méthodes de jointure (Intérieure, Gauche ou Complète).

Cardinalité

Description

Sortie (présumant 1 valeur-clé)

1:1

Un pour un : si chaque entité gauche a une correspondance unique parmi les entités droite (par exemple, une entité ponctuelle est mise en correspondance avec une table d'adresses via une clé d'identification d'adresse unique), il s'agit d'une correspondance 1:1 qui produit une entité Joined unique en sortie.

1 Gauche correspond à 1 Droite :

1 entité Joined en sortie

1:M

Un à plusieurs : Si chaque entité gauche a plusieurs correspondances parmi les entités droite (par exemple, un enregistrement d'adresse unique est mis en correspondance avec une liste de demandes de permis de construire pour cette adresse), il s'agit d'une correspondance 1:M (une à plusieurs) qui produit une entité Joined en sortie pour chaque correspondance qui se produit.

1 Gauche correspond à 10 Droite :

10 entités Joined en sortie

M:1

Plusieurs à un : si plusieurs entités gauche correspondent à un seul enregistrement d'entité droite (par exemple, un certain nombre d'adresses correspondent aux mêmes données de recensement via un champ de code postal), il s'agit d'une correspondance M:1 (plusieurs à un) et une entité Joined est produite pour chaque correspondance.

10 Gauche correspondent à 1 Droite :

10 entités Joined en sortie

M:N

Plusieurs à plusieurs : Si plusieurs entités gauche correspondent à plusieurs entités droite (par exemple, un certain nombre d'adresses correspondent à un certain nombre d'enregistrements de pannes d'électricité), il s'agit d'une correspondance M:N (plusieurs à plusieurs) qui produit une entité Joined pour chaque correspondance qui se produit.

10 Gauche correspondent à 10 Droite :

100 entités Joined en sortie*

*Quand toutes les entités ont des valeurs clés identiques - toutes les Gauche correspondent à toutes les Droite.

Entités sans correspondance

Les entités (gauche et droite) qui ne trouvent pas de correspondance sont traitées en fonction du mode de jointure (intérieur, gauche ou complet). Les modes Gauche et Complet entraînent la sortie d'une partie ou de la totalité des entités non appariées via le port Joined, en fonction du mode de jointure :

Méthode de jointure

Port de sortie des entités Gauche Unmatched

Port de sortie des entités Droite Unamtched

Interne (Inner) UnjoinedLeft UnjoinedRight
Gauche (Left) Joined UnjoinedRight
Complète (Full) Joined Joined

Exemples

Notes

  • FeatureJoiner et FeatureMerger :
    • Si les conditions de jointure sont simples, FeatureJoiner donnera de meilleures performances
    • Si les conditions de jointures sont complexes (comme la construction de clés, l'utilisation d'expressions, la résolution de conflits de nommage...), privilégiez FeatureMerger.
    • Si vous souhaitez seulement avoir une entité jointe, quel que soit le nombre de jointures (une jointure 1:M produit 1 entité avec une liste de jointures plutôt qu'1 entité pour chaque jointure que fait FeatureJoiner), privilégiez FeatureMerger.
    • FeatureJoiner n'effectue pas toutes les opérations avancées de création de listes ou de gestion de géométries, tel que le fait FeatureMerger, mais il est possible d'utiliser d'autres Transformers en complément.
    • FeatureMerger peut être capable de joindre des entités avec des systèmes de coordonnées différents.
  • Pour des jointures complexes utilisant la syntaxe SQL, ou plus de deux flux d'entités en entrée, privilégiez plutôt InlineQuerier.
  • Si les entités d'entrée ne sont pas toutes dans le même système de coordonnées, les Transformers CoordinateSystemSetter, Reprojector et les Transformers connexes peuvent être utiles.

Choisir une méthode de jointure d'entités

De nombreux Transformers peuvent effectuer des jointures de données sur la base d'attributs, d'expressions et/ou de géométries correspondants. Lorsque vous en choisissez un pour une tâche de jointure spécifique, vous devez prendre en compte la complexité de la jointure, le format des données, l'indexation, la gestion des conflits et les résultats souhaités. Certains Transformers utilisent la syntaxe SQL, d'autres accèdent directement aux bases de données externes. Ils peuvent ou non prendre en charge la lecture et la création d'attributs de liste.

En général, le choix de la méthode la plus spécifique à la tâche à accomplir permet d'obtenir des résultats optimaux en termes de performances. S'il existe plus d'une façon de procéder (ce qui est souvent le cas), il peut être utile de consacrer du temps à tester les performances des autres méthodes. Les performances peuvent varier considérablement selon l'existence d'index clés lors de la lecture de tables externes (par opposition aux entités déjà présentes dans le traitement).

Configuration

Ports d'entrée

Ports de sortie

Paramètres

Éditer les paramètres des Transformers

Les paramètres du Transformer peuvent être définis en saisissant directement des valeurs, en utilisant des expressions ou en faisant référence à d'autres éléments de l'espace de travail tels que des valeurs d'attributs ou des paramètres utilisateur. Divers éditeurs et menus contextuels sont disponibles pour vous aider. Pour voir ce qui est disponible, cliquez sur à côté du paramètre concerné.

Pour plus d'information, consulter la section Options des Transformers.

Références

Comportement

Basé sur le regroupement

Stockage des entités

Oui

Dépendances Aucun
Alias  
Historique  

FME Community

FME Community dispose d'une mine de connaissances sur FME, avec plus de 20 000 membres actifs dans le monde entier. Obtenez de l'aide sur FME, partagez vos connaissances et entrez en contact avec des utilisateurs du monde entier.

Voir tous les résultats à propos de ce Transformer sur FME Community.

 

Examples may contain information licensed under the Open Government Licence – Vancouver, Open Government Licence - British Columbia, and/or Open Government Licence – Canada.