Appliquer une transformation SQL
Cet article décrit un composant du concepteur Azure Machine Learning.
Le composant Appliquer une transformation SQL permet d’effectuer les opérations suivantes :
Créer des tables pour les résultats et enregistrer les jeux de données dans une base de données portable.
Effectuer des transformations personnalisées sur des types de données ou créer des agrégats.
Exécuter des instructions de requête SQL pour filtrer ou modifier des données, et retourner les résultats de requête dans une table de données.
Important
Le moteur SQL utilisé dans ce composant est SQLite. Pour plus d’informations sur la syntaxe SQLite, consultez SQL as Understood by SQLite.
Ce composant transfère des données vers SQLite, qui se trouve dans la base de données de mémoire, de sorte que l’exécution du composant nécessite beaucoup plus de mémoire et risque d’aboutir à une erreur Out of memory
. Assurez-vous que votre ordinateur dispose de suffisamment de RAM.
Comment configurer le module Appliquer une transformation SQL
Le composant peut prendre jusqu’à trois jeux de données en entrée. Quand vous référencez les jeux de données connectés à chaque port d’entrée, vous devez utiliser les noms t1
, t2
et t3
. Le numéro de table indique l’index du port d’entrée.
Voici un exemple de code pour illustrer comment joindre deux tables. t1 et t2 sont deux jeux de données connectés aux ports d’entrée de gauche et du milieu d’Application d’une transformation SQL :
SELECT t1.*
, t3.Average_Rating
FROM t1 join
(SELECT placeID
, AVG(rating) AS Average_Rating
FROM t2
GROUP BY placeID
) as t3
on t1.placeID = t3.placeID
Le paramètre restant est une requête SQL, qui utilise la syntaxe SQLite. Quand vous tapez plusieurs lignes dans la zone de texte Script SQL, utilisez un point-virgule pour terminer chaque instruction. Sinon, les sauts de ligne sont convertis en espaces.
Ce composant prend en charge toutes les instructions standard de la syntaxe SQLite. Pour obtenir la liste des instructions non prises en charge, consultez la section Notes techniques.
Notes techniques
Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.
Une entrée est toujours obligatoire sur le port 1.
Placez toujours les identificateurs de colonne qui contiennent un espace ou un autre caractère spécial entre crochets ou guillemets doubles quand vous référencez la colonne dans les clauses
SELECT
ouWHERE
.Si vous avez utilisé Modifier des métadonnées pour spécifier les métadonnées de colonne (de catégories ou champs) avant Appliquer une transformation SQL, les sorties de Appliquer une transformation SQL ne contiendront pas ces attributs. Vous devez utiliser Modifier des métadonnées pour modifier la colonne après Appliquer une transformation SQL.
Instructions non prises en charge
Bien que SQLite prenne en charge la plupart des normes ANSI SQL, il n’inclut pas de nombreuses fonctionnalités prises en charge par les systèmes de base de données relationnelle du commerce. Pour plus d’informations, consultez SQL as Understood by SQLite. Par ailleurs, gardez à l’esprit les restrictions suivantes quand vous créez des instructions SQL :
SQLite utilise le typage dynamique des valeurs, au lieu d’attribuer un type à une colonne comme dans la plupart des systèmes de base de données relationnelle. Il est faiblement typé et autorise la conversion de type implicite.
LEFT OUTER JOIN
est implémenté, mais pasRIGHT OUTER JOIN
niFULL OUTER JOIN
.Vous pouvez utiliser les instructions
RENAME TABLE
etADD COLUMN
avec la commandeALTER TABLE
, mais les autres clauses ne sont pas prises en charge, notammentDROP COLUMN
,ALTER COLUMN
etADD CONSTRAINT
.Vous pouvez créer une vue dans SQLite, mais les vues suivantes sont en lecture seule. Vous ne pouvez pas exécuter d’instruction
DELETE
,INSERT
ouUPDATE
sur une vue. Toutefois, vous pouvez créer un déclencheur qui se déclenche à chaque tentative d’exécution deDELETE
,INSERT
ouUPDATE
sur une vue, et exécuter d’autres opérations dans le corps du déclencheur.
En plus de la liste des fonctions non prises en charge fournie sur le site officiel de SQLite, le wiki suivant donne une liste d’autres fonctionnalités non prises en charge : SQLite - Unsupported SQL
Étapes suivantes
Consultez les composants disponibles pour Azure Machine Learning.