SchemaScanner
Produit un élément de schéma représentant la définition du type d'entité pour chaque groupe d'entités de données d'entrée.
Cas d'utilisations typiques
-
Génération d'une entité de schéma pour les données destination dynamiques
-
Génération d'entités de schéma à des fins de comparaison pour la validation et la dérive des schémas
-
Générer des schémas après avoir fusionné ou manipulé des jeux de données
Comment fonctionne-t-il ?
SchemaScanner reçoit les entités et détermine leur schéma en recherchant les noms d'attributs et les types de données, sur la base de la structure et des valeurs d'attributs des entités.
Il analysera soit toutes les entités, soit un nombre spécifié d'entre elles, et peut exclure certains attributs en fonction des noms, tels que les attributs spécifiques au format ou les attributs internes de FME.
Le schéma résultant est édité sous la forme d'une nouvelle entité de schéma, qui possède une forme spécifique d'attribut de liste et sort via le port <Schema>. Elle reçoit également un attribut et une valeur spéciaux : fme_schema_handling = 'schema_only', qui indique à un Writer dynamique d'utiliser cette entité en tant que schéma et de la supprimer ensuite de la sortie.
Les entités d'entrée originales sont transmises via le port de sortie Output.
L'ordre de sortie des entités de schéma par rapport aux données (entités d'entrée) peut être contrôlé à l'aide de l'option Générer le schéma avant les entités de données. Pour une utilisation avec des données destinations dynamiques, les entités de schéma doivent être éditées en premier.
Génération d'attribut
Les schémas peuvent être générés avec des types de données standard ou explicitement définis, en fonction des paramètres de types de données Numerique et Chaîne de caractères :
-
Types standards produisent des types tels que fme_real64 , fme_int8 et fme_buffer.
-
Précision et largeur explicites produit des données comme :
-
fme_decimal(a,b) où a est le nombre de chiffres avant la virgule et b le nombre après (précision).
-
fme_varchar(a) où a est le nombre maximum de caractères dans une chaîne de caractères.
-
Lors de l'utilisation de précision et largeur explicites, il convient d'examiner toutes les entités (nombre d'entités à analyser) afin de s'assurer que toutes les longueurs de valeurs d'attributs existantes sont prises en compte.
Travailler avec des dates
Les dates et heures peuvent être analysées en option.
Si les chaînes correspondent au format de date FME %Y%m%d%H%M%S, elles peuvent être recherchées à l'aide de la fonction Détecter les dates FME.
Pour rechercher les chaînes qui correspondent à un autre format de date ou d'heure, utilisez l'option Convertir le format de date en entrée en date FME. Notez que cette option n'est disponible que si l'option Générer le schéma avant les entités de données est réglée sur Oui.
Voir Formats standards FME d'heure et de date pour les détails de formatage.
Exclure des attributs
SchemaScanner traite tous les attributs des entités entrantes, y compris les attributs fme et format. Il est possible d'ignorer des attributs à l'aide du paramètre Ignorer les attributs contenant.
Entrez une expression régulière, et les attributs correspondants seront ignorés.
Par exemple, si les données sources sont de type CSV, vous pouvez utiliser l'expression régulière ^fme_|^multi_|^csv_ pour ignorer tous les attributs commençant par fme_, multi_, ou csv_.
Entités schéma
Les entités de schéma peuvent être utilisées pour stocker ou transmettre des structures de schéma - à des données destinations, par exemple. Le schéma est stocké dans un attribut de liste nommé attribut , comme indiqué ici.
Chaque attribut a un nom et un type de données fme_data_type - notez que l'attribut LAT a un type de données correspondant fme_real64 .
Les types de données sont des types de données internes à FME.
Notes
- Les entités de schéma peuvent également être générées manuellement, ou en utilisant les options de schéma de FeatureReader. Deux Readers génèrent également des schémas : le Reader Schema (Any Format) et le Reader Schema (From Table).
- Lorsque le SchemaScanner est utilisé avec un Writer dynamique, le paramètre Générer le schéma avant les entités de données doit être réglé sur Oui, afin que le schéma arrive au Writer avant les entités de données.
Configuration
Ports d'entrée
Ce Transformer accepte tous types d'entités.
Ports de sortie
Toutes les entités de données qui ont été saisies sont éditées ici, avec un attribut Nom de définition du schéma ajouté comme spécifié dans les paramètres.
Les entités ne seront pas modifiées si l'option Convertir le format de la date d'entrée en date FME n'est pas utilisée.
L'ordre initial des entités peut être modifié si le traitement de groupe est activé.
Une ou plusieurs entités de schéma - selon que le traitement des regroupements est activé ou non. Chaque entité de schéma possède un attribut de liste sous la forme :
attribute{}.name
attribute{}.fme_data_type
Un élément pour chaque attribut des entités des données d'entrée.
Le Transformers ajoute un attribut et une valeur spéciaux :
fme_schema_handling = ‘schema_only’
Paramètres
Regrouper par |
Si les attributs Regrouper par sont sélectionnés, les entités ayant les mêmes valeurs dans les attributs Regrouper par sont regroupées, et un schéma par groupe sera produit. |
||||
Traitement des regroupements |
Sélectionnez le moment du traitement où les groupes sont traités :
Considérations sur l'utilisation de Regrouper par
Il y a deux raisons typiques d'utiliser Quand le groupe change (avancé). La première concerne les données entrantes qui sont destinées à être traitées en groupes (et qui sont déjà classées ainsi). Dans ce cas, c'est la structure qui dicte l'utilisation de Regrouper par - et non des considérations de performance. La seconde raison possible est le potentiel gain de performances. Les gains de performance sont plus visibles quand les données sont déjà triées (ou lues en utilisant une déclaration SQL ORDER BY) puisque moins de travail est requis de la part de FME. Si les données doivent être ordonnées, elles peuvent être triées dans le traitement (bien que la surcharge de traitement supplémentaire puisse annuler tout gain). Le tri devient plus difficile en fonction du nombre de flux de données. Il peut être quasiment impossible de trier des flux de données multiples dans l'ordre correct, car toutes les entités correspondant à une valeur Regrouper par doivent arriver avant toute entité (de tout type d'entité ou jeu de données) appartenant au groupe suivant. Dans ce cas, l'utilisation de Regrouper par avec Lorsque toutes les entités sont reçues peut être une approche équivalente et plus simple. Note De multiples types d'entités et entités de multiples jeux de données ne vont généralement pas arriver dans l'ordre correct.
Comme pour beaucoup de scénarios, tester différentes approches dans votre traitement avec vos données est le seul moyen sûr d'identifier le gain de performance. |
Générer le schéma avant les données |
Sélectionnez une option de commande pour les entités du schéma :
|
Nombre d'entités à analyser |
Indiquer le nombre d'entités à analyser pour déterminer le schéma du jeu de données. Si ce champ est vide, toutes les entités sont analysées. Si ce nombre est supérieur au nombre d'entités reçues, toutes les entités sont analysées. Pour les très grands jeux de données, le réglage de ce paramètre peut améliorer les performances. La valeur par défaut est "blank" (vide), ce qui signifie que toutes les entités sont analysées. |
Ignorer les attributs contenant |
Saisir une expression régulière. Les attributs dont les noms correspondent seront exclus du schéma. |
Ignorer les attributs |
Choisir la sensibilité à la casse : Sensibilité à la casse ou Insensibilité à la casse pour les correspondances avec l'expression régulière indiquée dans le champ Ignorer les attributs contenant . |
Numérique |
Sélectionner le type de gestion de valeur numérique à utiliser dans le schéma :
|
Chaîne de caractères |
Sélectionner le type de valeur de chaîne de caractères à utiliser pour le schéma :
|
Attributs Manquants/Nulls/Vides |
Sélectionner une méthode pour le traitement des attributs sans valeur :
|
Sélectionner une méthode pour interpréter les chaîne de caractères de date et heure.
Voir aussi Formats standards FME d'heure et de date
Pas de détection de date |
Ignorer les dates. |
Détecter les dates FME (%Y%m%d%H%M%s$) |
Détecter les chaînes de dates correspondant au format date/heure standard de FME. |
Conversion du format de date en entrée en date FME |
Lorsque l'option Générer le schéma avant les données est définie sur Oui, les formats de date/heure autres que ceux de FME peuvent être détectés et convertis. Sélectionnez un format unique parmi les options disponibles ou entrez une chaîne personnalisée. Note Les entités de sortie peuvent être modifiées (et pas seulement numérisées) à l'aide de cette option, et le schéma doit donc être sorti en premier. Envisagez d'utiliser le paramètre Nombre d'entités à analyser pour améliorer les performances.
|
Nom de définition de schéma |
Nom l'attribut contenant le nom de la définition du schéma généré, à ajouter à toutes les entités de données de sortie. Cet attribut est généralement utilisé par un Writer <dynamique> pour lier le schéma aux données. Le nom d'attribut par défaut, fme_feature_type_name, peut être utilisé sur le paramètre Nom de la définition du schéma du rédacteur dynamique correspondant. |
É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.
Références
Comportement |
|
Stockage des entités |
Si l'option Générer les entités de schéma avant les données est Oui, le Transformers bloquera toutes les entités des données entrantes. Cela est généralement nécessaire si vous utilisez l'entité schéma avec un Writer dynamique. L'option Nombre d'entités à analyser bloque également les entités de données - jusqu'au nombre d'entités sélectionné (ou toutes les entités, si l'option est laissée vide). |
Dépendances | Aucun |
Alias | |
Historique |
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.
Les exemples peuvent contenir des informations sous licence Open Government - Vancouver et/ou Open Government - Canada.