SchemaMapper
Convertit le schéma existant (modèle de données) des entités vers une nouvelle structure, basée sur des mappages (correspondances) définis dans une table de correspondance externe.
Cette technique est très utile quand les mappages sont potentiellement complexes ou quand ils doivent être gérés par une personne pour laquelle le fonctionnement de FME n'est pas familier. L'utilisation d'une table de consultation externe pour définir ces mappages simplifie l'exécution de ces tâches.
La table de correspondance du schéma, utilisée par le Transormer SchemaMapper, définit des séries de conditions qui doivent être rencontrées (filtres), et des séries d'actions qui doivent être exécutées quand les conditions sont remplies.
La table de correspondance peut être de différents formats comme : un fichier texte simple ou à séparateur décimal ; une feuille de calcul (Excel) ; ou une base de données comme Oracle, PostGRES, Informix, SQL Server, etc.
Si une entité entrante correspond à l'une des règles de la table, les actions possibles du Transformer sur cette entité sont listées ci-dessous :
Correspondances des types d'entités :
Les types d'entités - tels que définis par fme_feature_type - sont convertis de leur valeur existante en une valeur qui définit le nouveau type d'entité. Par exemple :
Routes → Lignes
Mappage des attributs :
Un ou plusieurs attributs de l'entité sont mis en correspondance en renommant leur(s) nom(s) d'attribut existant(s) en un nouveau nom. Par exemple :
Name_of_Road → RoadName
Définir de nouveaux attributs
Un nouvel attribut, dont le nom et la valeur sont définis dans la table de correspondance, est créé.
Ports de sortie
Les entités sur lesquelles une action est exécutée sont émises via le port Mapped. Dans le cas contraire, elles sont émises via le port Unmapped.
En plus du type d'entités, la géométrie de chaque entité n'est pas modifiée.
Les entités produites par le port Mapped recevront un nouvel attribut qui spécifie les lignes de la table de mappage de schéma qui ont été appliquées à l'entité. Les lignes sont spécifiées sous forme de chaîne séparée par des virgules (par exemple, "3,4,5"). Cet attribut est spécifié par le paramètre Attribut de ligne sélectionné et ne peut être modifié qu'à partir du volet Navigateur. Si vous définissez ce paramètre sur une valeur vide, l'attribut ne pourra pas être ajouté aux entités.
Utilisations de SchemaMapper
Vous pouvez utiliser SchemaMapper pour :
Mappage de domaine : où les valeurs des attributs peuvent être remappées en fonction d'un domaine bien défini ou d'une table de consultation. Par exemple :
- Primary Route → Autoroute
- Route secondaire -> Nationales
- Primary Route → Départementales
Les conversions dynamiques : les traitements sont créés pour supporter n'importe quel modèle de données.
Le mappage automatique de schéma : les connexions manuelles entre les schémas source et destination sont établies automatiquement à l'aide d'une table de correspondance externe.
Exemple d'utilisation du Transformer SchemaMapper
L'exemple suivant décrit un scénario typique
Correspondance (mappage) de types d'entités
En utilisant une table de correspondance externe (fichier .csv), vous pouvez mapper des types d'entités pour simplifier un schéma en appariant l'ancien type d'entités vers un nouveau type d'entités :
Ancien type d'entités | Nouveau type d'entités |
---|---|
River | Water |
Lake | Water |
Canal | Water |
Road | Transportation |
Railway | Transportation |
Airport | Transportation |
Mappage des attributs
En utilisant une table de correspondance externe, vous pouvez mapper des attributs avec de nouveaux noms :
Ancien Attribut | Nouvel attribut |
---|---|
River_Name | WaterName |
River_Alt_Name | AltWaterName |
River_Country | WaterCountry |
River_Length | WaterSize |
River_Owner | WaterOwner |
Filtres
Vous pouvez utiliser des filtres pour définir vos règles de mappage. Par exemple, si vous voulez faire correspondre un "ancien type de tuyau" à un "nouveau type de tuyau", vous pouvez définir la règle (filtre) en fonction de la taille des tuyaux :
Ancien type de tuyau | Attribut taille de tuyau | Taille du tuyau | Nouveau type de tuyau |
---|---|---|---|
Gas | PipeSize | 6 | GasSmall |
Gas | PipeSize | 12 | GasMedium |
Gas | PipeSize | 24 | GasLarge |
Water | Diameter | 6 | WaterSmall |
Water | Diameter | 12 | EauMedium |
Water | Diameter | 24 | WaterLarge |
Sewage | PipeDiam | 6 | SewageSmall |
Sewage | PipeDiam | 12 | SewageMedium |
Sewage | PipeDiam | 24 | SewageLarge |
Gestion de valeur d'attribut vide ou null
Lors de la création d'un filtre, le paramètre Valeur d'attribut vide détermine comment les valeurs d'attributs vides ou nulls sont gérées.
Ignorer |
Les valeurs d'attributs vides ou nulls sont ignorées et ne se voient pas assignées de nouvelles valeurs par le filtre. |
Ne pas ignorer. |
Les valeurs d'attribut vides ou nulles seront traitées comme toute autre valeur d'attribut. Elles peuvent être référencées dans les valeurs source ou destination comme une chaîne vide (""). |
Expressions
Les expressions sont prises en charge dans les actions Filtrer les entités (FilterValue) et Définir de nouveaux attributs (TargetValue).
Ceux-ci sont définis dans la table de recherche externe et sont identifiés par le préfixe de mot-clé fmeexpression=.
Filtre
Cet exemple de table de recherche filtrera les entités en fonction de la valeur de l'attribut attr. Si :
-
inférieur ou égal à 15, ou
-
supérieur ou égal à 450
l'entité est considérée comme mappée et est transmise à l'action suivante (ou sort par le port Mapped, s'il n'y a pas d'autres actions).
Ajouter des attributs
En utilisant le même exemple de table de recherche, si l'action est Définir de nouveaux attributs, les entités recevront deux nouveaux attributs - attr_scaled10 et attr_scaled100 , tous deux avec des valeurs calculées par des expressions.
Exemple d'utilisation du mappage du type d'entités et du filtrage
Vous pouvez utiliser l'assistant SchemaMapper pour définir les filtres et le type de mappage dont vous avez besoin. Vous accomplissez cette tâche en créant des actions à exécuter sur le schéma source.
Pour ouvrir l'assistant SchemaMapper, cliquez sur le bouton Propriétés du Transformer. La boîte de dialogue SchemaMapper Parameters s'ouvre.
- Spécifiez le format et l'emplacement de la table de correspondance des schémas (table de recherche) à utiliser. Vous souhaiterez peut-être modifier les paramètres de format, mais vous pouvez utiliser les valeurs par défaut fournies par FME Workbench. Cliquez sur Suivant.
- Si un jeu de données comporte plus d'une table, indiquez la table à utiliser. Cliquez sur Suivant.
- Dans le volet Créer des actions, cliquez sur Ajouter et sélectionnez le type d'action. Pour cet exemple, nous allons sélectionner le type d'entité Carte.
- Sélectionnez les champs de type d'entité source et destination. Vous pouvez afficher/masquer les colonnes du tableau et actualiser le contenu.
- Cliquer sur OK pour revenir à la page "Création des actions", qui devrait maintenant montrer l'action "Mappage du type d'entité" que vous venez juste de définir.
- Pour ajouter une autre action, sélectionnez dans le menu déroulant Ajouter. Dans cet exemple, nous allons sélectionner Filtre pour afficher la boîte de dialogue Créer un filtre :
- Sélectionnez les colonnes de la table dans les champs Nom et Valeur de l'attribut. Par défaut, les valeurs d'attribut vides sont ignorées mais vous pouvez choisir de les inclure.
- Cliquez sur OK pour revenir à la boîte de dialogue Créer des actions. La colonne Action affiche maintenant deux actions : Types d'entités cartographiques et entités de filtrage
- Cliquer sur "Finir" pour définir les paramètres de SchemaMapper.
Plus d'informations
- Consulter Crouching Schema Hidden Dragon pour avoir un aperçu d'une utilisation de SchemaMapper.
- Cet article sur FME Community contient descriptions et exemples.
É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 de 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 de traitement. 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.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au traitement peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
FME Community
FME Community est 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.
Voir tous les résultats à propos de ce Transformer sur FME Community.