FeatureJoiner

Joindre 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

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é Gauche (Left) correspond à une entité Droite (Right) lorsque chaque paire de clés spécifiée dans la table Jointure a la même valeur. Lorsqu'une correspondance se produit, les attributs/géométries de l'entité gauche et de l'entité droite sont combinés et l'entité combinée est envoyée au 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.

Mode Jointure

Port de sortie Joined

 

Inner (Interne)
  • Seules les entités qui ont des paires Gauche et Droite correspondantes.
Left (Gauche)
  • Entités qui ont une correspondance de paires Gauche et Droite  ET
  • Toutes les autres entités Gauche sans correspondance.
Complète (Full)
  • Entités qui ont une correspondance de paires Gauche et Droite  ET
  • Toutes les entités Gauche et Droite 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 touches. 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éthode de jointure (Intérieure, Gauche ou Complète).

Cardinalité

Description

Sortie (présumant 1 valeur-clé)

1:1 Un à un : Si chaque entité Gauche a une seule correspondance parmi les entités Droite (par exemple, une entité ponctuelle seule est mappée à une table d'adresses via un clé d'ID adresses unique), il s'agit d'une correspondance 1:1 et cela produit une seule entité Joined.

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 seul enregistrement d'adresse est apparié à une liste d'applications de tournées pour cette adresse), il s'agit d'une correspond 1:M (un à un plusieurs) et cela produit une entité Joined pour chaque correspondance.

1 Gauche correspond à 10 Droite :

10 entités Joined en sortie

M:1 Plusieurs à un : Si plusieurs entités Gauche correspondent à une seule entré d'entité Droite (par exemple, un nombre d'adresse correspondant au même bureau de recensement via un champ de code postal), il s'agit d'une correspondance M:1 (plusieurs à un) et cela produit une entité Joined 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 nombre d'adresses correspondent aux enregistrements de coupures de courant), il s'agit d'une correspondance M:N (plusieurs à plusieurs) et cela produit une entité Joined pour chaque correspondance.

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 de la Méthode de jointure (Intérieure, Gauche ou Complet). Les modes Gauche et Complet entraînent la sortie de certaines ou de toutes les entités non correspondantes via le port joint, en fonction du mode :

Méthode de jointure

Port de sortie des entités Gauche sans correspondance

Port de sortie des entités Droite sans correspondance

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

À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments du traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.

Définir les valeurs

Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres d'espace de travail. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.

Options - Tables

Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.

Références

Comportement

Basé sur le regroupement

Stockage des entités

Oui

Dépendances Aucun
Alias  
Historique  

FME Community

FME Community iest l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.

Rechercher tous les résultats sur ce Transformer sur FME Community.

 

Les exemples peuvent contenir des informations sous licence Open Government - Vancouver et/ou Open Government - Canada.

Hasklig-Bold.ttf

Hasklig-BoldIt.ttf

Hasklig-Regular.ttf

OpenSans-Bold.ttf

OpenSans-BoldItalic.ttf

OpenSans-Italic.ttf

OpenSans-Regular.ttf

SourceSansPro-Bold.ttf

SourceSansPro-BoldItalic.ttf

SourceSansPro-Italic.ttf

SourceSansPro-Regular.ttf