InlineQuerier

Crée des tables de base de données SQLite depuis les entités entrantes, exécute des requêtes SQL dessus et met en sortie les résultat sous forme d'entités.

Aller à la configuration

Cas d'utilisation courants

  • Effectuer des requêtes SQL sur des entités, qu'elles soient ou non originaires d'un format supportant le SQL.
  • Exécuter des requêtes complexes et faire dans jointures sans utiliser plusieurs Transformers.

Comment fonctionne-t-il ?

InlineQuerier crée une base de données SQLite temporaire, et crée une table pour chaque objet d'entrée qui lui est connecté. Dans la boîte de dialogue des paramètres, vous pouvez créer un nombre quelconque de requêtes SQL qui utilisent ces tables. Chaque requête définie est associée à un port de sortie, et les résultats de la requête sont présentés sous forme d'entités.

Les définitions des tables d'entrée peuvent être facilement créées en se connectant au port Connecter une entrée. Elles peuvent également être définies en important le schéma de n'importe quel type d'entité dans le traitement, qu'il soit connecté ou non (la table ne sera toutefois pas alimentée si le type d'entité n'est pas connecté). Un nombre illimité de tables peut être créé.

Les requêtes SQL peuvent impliquer toutes les tables et colonnes définies en entrée. En particulier, des jointures multivoie peuvent être exécutées, des opérations SQL avancées impliquant des instructions Select imbriquées et des prédicats avancés peuvent être utilisés, et les tables d'entrée peuvent être utilisées par plusieurs requêtes.

Voir la documentation SQL pour une référence détaillée de la syntaxe de déclaration SQL Select supportée.

Exemples

Notes

  • Envisagez d'utiliser InlineQuerier pour remplacer plusieurs FeatureMergers. InlineQuerier permet de réutiliser ses données d'entrée plusieurs fois dans un seul Transformer, alors que si des jointures multiples doivent être effectuées avec un FeatureMerger, plusieurs FeatureMerger doivent être employés et des copies des entités envoyées à chacun. D'autre part, il y a une certaine surcharge pour le InlineQuerier de charger la base de données SQLite sous-jacente. L'utilisation d'un seul InlineQuerier au lieu de plusieurs FeatureMergers simplifie également le traitement.
    À moins qu'un seul FeatureMerger ne soit nécessaire dans un flux de travail, le InlineQuerier peut être un meilleur choix. Les anciens traitements comportant plusieurs FeatureMergers en cascade peuvent bénéficier d'une amélioration des performances en remplaçant les FeatureMergers par un seul InlineQuerier correctement configuré.
  • Si toutes les données à requêter résident dans une source de données compatible avec le SQL, considérez utiliser SQLCreator ou SQLExecutor plutôt étant donné que ces requêtes seront plus efficaces lorsqu'utilisées sur la base de données source.
  • Si la requête est une simple jointure entre entités et une base de données source, et que les clés sont indexées dans la base de données, considérez utiliser DatabaseJoiner pour un traitement plus performant.

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 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.

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

Non applicable

Stockage des entités

Non applicable

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.