SchemaScanner
Produit une entité de schéma représentant la définition du type de caractéristique pour chaque groupe de caractéristiques de données d'entrée.
Usages habituels
-
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 manipulation des schémas.
-
Générer des schémas après une fusion ou manipulation de 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 analyse soit toutes les entités, soit un nombre déterminé d'entre elles, et peut exclure certains attributs en fonction de leur nom, comme les attributs spécifiques au format ou les attributs internes de FME.
Les schéma en sortie est une nouvelle entité schéma, avec une forme particulière d'attribut de liste et est générée via le port <Schema> . Il reçoit également un attribut et une valeur spéciaux : fme_schema_handling = ‘schema_only’, qui indiquent à un Writer dynamique d'utiliser cette entité comme schéma, puis de la supprimer de la sortie.
L'entité originale ressort par le port 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 Sortie des entités de schéma avant les données. Pour une utilisation avec des données destination dynamiques, les entités de schéma doivent être sorties 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, selon les paramètres Types de données Numérique et Chaîne de caractères :
-
Types Standards produits des résultats comme fme_real64 , fme_int8 et fme_buffer.
-
Précision et Largeur explicites produit des types tels que :
-
fme_decimal(a,b) where a is the number of digits before a decimal, and b the number of digits after (precision).
-
fme_varchar(a) où a est le nombre maximal de caractères dans une chaîne de caractères.
-
Lors de l'utilisation de Précision et largeur explicites, envisager de balayer toutes les entités (Nombre d'entités à analyser) pour s'assurer que toutes les tailles de valeurs d'attributs existantes sont prises en compte.
Travailler avec des dates
Les dates et les heures peuvent être scannées en option.
Si les chaînes correspondent au format de date FME de %Y%m%d%H%M%S, elles peuvent être recherchées avec Détecter les dates FME. .
Pour rechercher les chaînes qui correspondent à un autre format de date ou d'heure, utilisez Convertir le format de date d'entrée en date FME . Notez que cette option n'est disponible que si Générer le schéma avant les entités de données est défini sur Oui.
See Formats standards FME d'heure et de date pour les détails de formatage.
Attributs exclus
SchemaScanner traite tous les attributs des caractéristiques entrantes, y compris les attributs fme et format. Il est possible d'ignorer les attributs en utilisant le paramètre Ignore 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 suivante ^fme_|^multi_|^csv_ pour ignorer tout attribut commençant par fme_, multi_, ou csv_.
Entités schéma
Les fonctionnalités de schéma peuvent être utilisées pour stocker ou transmettre des structures de schéma - aux rédacteurs dynamiques, par exemple. Le schéma est stocké dans un attribut de liste nommé attribut, comme illustré ici.
Chaque attribut a un name et un fme_data_type - notez que l'attribut LAT a un type de données correspondant de fme_real64.
Les types de données sont les types de données FME internes.
Notes d'usage
- Les entités schéma peuvent également être générées manuellement, ou en utilisant les options de schéma du FeatureReader. Deux Readers génèrent également des schémas - le Reader de schémas (tout format) et le Reader Schema (From Table).
- Lorsque vous utilisez le SchemaScanner avec un Writer dynamique, le paramètre Générer le schéma avant les entités de données doit être défini sur Yes, afin que le schéma arrive au Writer avant les fonctionnalités de données.
Configuration
Ports d'entrée
Ce Transformer accepte tout type d'entités
Ports de sortie
Toutes les entités de données qui ont été entrées sont sorties ici, avec un Nom de la définition du schéma ajouté comme spécifié dans les paramètres.
Les entités ne seront pas modifiées, sauf si Conversion du format de date d'entrée en date FME est utilisé.
L'ordre initial des entités peut changer si le traitement des groupes est activé.
Une ou plusieurs entités de schéma - selon que le traitement de groupe est activé ou non. Chaque entité de schéma possède un attribut de liste de la forme suivante :
attribute{}.name
attribute{}.fme_data_type
Un élément pour chaque attribut dans les entités des données d'entrée.
Le Transformer ajoute un attribut et une valeur spéciaux :
fme_schema_handling = ‘schema_only’
Parameters
Group By |
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. |
Complete Groups |
Lorsque toutes les entités sont reçues : comportement par défaut. Le traitement n'aura lieu qu'une fois que toutes les entités en entrée seront présente. Quand le groupe change (avancé) : ce Transformer traitera les groupes en entrée dans l'ordre. Les changements de la valeur du paramètre Regrouper par sur le flux d'entrée déclencheront le traitement du groupe en cours de regroupement. Cela peut améliorer la vitesse globale (en particulier avec plusieurs groupes de taille égale), mais peut provoquer un comportement indésirable si les groupes en entrée ne sont pas ordonné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 projet avec vos données est le seul moyen sûr d'identifier le gain de performance. |
Générer le schéma avant les entités de données |
Sélectionnez une option de commande pour les entités du schéma :
|
Nombre d'entités à scanner |
Indiquez le nombre d'entités à analyser pour déterminer le schéma du jeu de données. Si ce nombre 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 jeux de données très volumineux, la définition de ce paramètre peut améliorer les performances. La valeur par défaut est blank - analyse de toutes les entités. |
Ignorer les attributs contenant | Saisissez une expression régulière. Les attributs dont les noms correspondent seront exclus du schéma. |
Ignorer les attributs | Sélectionner la sensibilité à la casse : - Sensibilité à la casseou Insensible à la casse -pour Ignorer les attributs contenant l'expression régulière correspondante |
Numérique |
Sélectionnez le type de traitement des valeurs numériques à utiliser dans le schéma :
|
Chaîne de caractères |
Sélectionnez le type de traitement des valeurs de chaîne à utiliser dans le schéma :
|
Attributs vides |
Sélectionnez une méthode de traitement des attributs vides :
|
Sélectionnez une méthode d'interprétation des chaînes de date et d'heure.
Voir aussi Formats standards FME d'heure et de date
Pas de détection de dates | Ignorer les dates. |
Détecter les dates FME (%Y%m%d%H%M%s$) | Détecter les chaînes de date et d'heure correspondant au format standard de FME. |
Conversion du format de date d'entrée en date FME |
Lorsque Générer le schéma avant les entités de données est défini sur Yes, les formats de date non FME peuvent être détectés et convertis. Sélectionnez un seul format parmi les options disponibles ou saisissez une chaîne personnalisée. Note: Les entités de sortie peuvent être modifiées (et pas seulement scannées) en utilisant cette option, et donc le schéma doit ê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 qui contient le nom de la définition du schéma généré, à ajouter à toutes les entités de sortie. Cet attribut est généralement utilisé par un rédacteur dynamique pour lier le schéma aux données. Le nom d'attribut par défaut, fme_feature_type_namepeut être utilisé sur le paramètre Nom de la définition de schéma du Writer 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 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.
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 projet 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.
Reference
Processing Behavior |
|
Feature Holding |
If Output Schema Features Before Data is Yes then the transformer will block all the incoming data features. This is usually required if you are using the schema feature with a dynamic writer. Target Number of Features to Scan will also block the data features - up to the number of features selected (or all features, if left blank). |
Dependencies | None |
Aliases | |
History |
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.
Search for all results about the SchemaScanner on the FME Community.
Les exemples peuvent contenir des informations sous licence Open Government - Vancouver et/ou Open Government - Canada.