SQLExecutor

Exécute des requêtes SQL en base de données une fois pour chaque entité initiatrice qui entre dans le Transformer. Le schéma, les entités Initiator et les résultats de la requête peuvent être édités.

Aller à la configuration

Cas d'utilisations typiques

  • Extrait des enregistrements d'une base de données en tant qu'entités FME selon une déclaration SQL.
  • Exécuter une jointure de base de données
  • Effectuer des opérations sur des tables de base de données SQL (créer, supprimer, modifier, tronquer)
  • Créer ou supprimer des index ou contraintes avant ou après le chargement de données

Comment fonctionne-t-il ?

Le SQLExecutor reçoit des entités via le port Initiator et, pour chaque entité reçue, il exécute une requête SQL dans une base de données externe. Les résultats de la requête, ainsi que les entités initiatrices, sont édités.

Les instructions SQL sont construites dans le Transformer, en utilisant la syntaxe appropriée pour la base de données utilisée. Les requêtes spatiales sont supportées si la base de données supporte les prédicats spatiaux.

Des schémas peuvent également être produits s'ils sont pris en charge par la base de données. Une entité de schéma sera produite pour chaque entité Initiator.

Exemples

Notes

  • Si la base de données supporte les prédicats spatiaux, des requêtes spatiales peuvent être utilisées.
  • SchemaScanner peut également être utile comme alternative pour produire des schémas.
  • Pour des jointures simples d'une table de base de données vers des entités, DatabaseJoiner peut être plus efficace (si le(s) champ(s) clé(s) sont indexés). DatabaseJoiner ne nécessite pas de connaissances en SQL.
  • L'exécuteur SQLE ne peut être utilisé que sur des sources de données compatibles avec SQL (en plus des entités de l'initiateur). Pour utiliser SQL avec des données non-SQL, envisagez l'utilisation de InlineQuerier.
  • Si toutes les données à interroger existent déjà dans une source de données compatible SQL, il est toujours plus efficace d'utiliser SQLCreator ou SQLExecutor, car cela permet de travailler sur (et de filtrer) les données à traiter avant de les lire dans l'environnement FME.
  • Les entités qui entrent dans ce Transformer ne sont pas éditées tant que la requête SQL n'est pas terminée. Ce comportement garantit que les Transformers SQLExecutor supplémentaires, s'ils sont présents, n'exécutent pas leurs requêtes avant que la requête précédente ne soit terminée.

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 en 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 Dépendant d'un format, peut nécessiter des pilotes tiers pour certains formats.
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.