Exécuter des instructions SQL avec l'action SQL
L'action SQL vous permet d'écrire une requête SQL et de l'exécuter sur vos datasets et tables en tant qu'action du Data Processing Engine
Objectif
L'action SQL vous permet d'écrire une requête SQL et de l'exécuter sur vos datasets et tables en tant qu'action du Data Processing Engine. Comme toute autre action, elle peut être exécutée à la demande, planifiée avec un déclencheur cron, ou orchestrée au sein d'un workflow.
Les requêtes s'exécutent sur le moteur Trino sous-jacent, les tables sont donc désignées sous la forme complète catalog.schema.table. Le panneau Tables (voir ci-dessous) construit ces noms pour vous, vous n'avez donc rarement besoin de les saisir à la main.
Par défaut, une action SQL s'exécute sur 2 DPU ; vous pouvez ajuster l'allocation depuis le sélecteur de ressources en haut de l'écran de configuration.
Configurer une action SQL
L'écran de configuration comporte deux panneaux : le navigateur Tables à gauche pour vous aider à trouver et référencer des ressources, et l'éditeur SQL query à droite où vous écrivez et validez votre instruction.
Parcourir les tables et copier les noms
Le panneau Tables liste les datasets de votre projet, chacun pouvant être développé pour afficher ses tables et leurs attributs. Utilisez la zone de recherche pour localiser rapidement une ressource, puis cliquez dessus pour copier son nom dans le presse-papiers, mis en forme pour s'insérer directement dans votre requête :
Cela vous évite d'avoir à retenir comment chaque dataset correspond à son catalog et à son schema Trino, et aide le moteur à résoudre votre requête du premier coup.
Écrire et valider la requête
Saisissez votre requête dans l'éditeur SQL query. Si vous avez besoin d'un point de départ, ouvrez le tiroir Query examples en bas de la page et cliquez sur n'importe quel exemple pour le copier dans l'éditeur.
Une fois votre requête prête, cliquez sur Validate. Cela exécute la requête en mode simulation et, en cas de succès, affiche un résumé de validation en bas de l'éditeur : une version enrichie d'EXPLAIN qui vous indique ce que la requête va faire, avec les détails clés pour ce type de requête.
Validate ne conditionne pas la création. Le bouton Create est toujours disponible, mais valider au préalable est une bonne pratique : cela confirme que la requête est bien formée et se résout correctement sur vos tables avant de valider l'action.
Lorsque vous êtes satisfait, cliquez sur Create en haut à droite pour créer l'action.
Types de requêtes pris en charge
L'action SQL prend en charge un large éventail d'instructions. Le moteur reconnaît le type de chaque requête et se comporte en conséquence :
- Read : retourne des lignes sans rien modifier.
- Metadata : inspecte le schéma ou les plans de requête.
- DML : modifie les lignes d'une table.
- DDL : modifie la structure d'une table.
Sélectionnez un onglet ci-dessous pour voir un exemple de requête pour chaque type :
Les instructions de contrôle d'accès telles que GRANT et REVOKE ne sont pas prises en charge et seront rejetées lors de la validation.
Créer une table à partir d'une requête
Lorsque vous exécutez un SELECT, l'action propose l'option de créer une nouvelle table à partir du résultat de la requête.
Si vous créez et exécutez une action avec un CREATE TABLE AS SELECT (CTAS), ou toute autre instruction CREATE, la table est créée sur le dataset cible, et la table logique correspondante est également enregistrée et construite dans le Lakehouse Manager. La nouvelle table est alors disponible dans toute la platform comme n'importe quelle autre table du Lakehouse Manager.
Validation à l'exécution
La validation n'a pas lieu uniquement lors de l'écriture de la requête. À chaque exécution de l'action, la requête est revalidée avec EXPLAIN avant que toute instruction ne soit exécutée.
Cela permet de détecter les cas où la requête ne correspond plus à la table. Par exemple, si une colonne référencée par la requête a été renommée ou supprimée parce que le schéma de la table a changé depuis la création de l'action, la validation à l'exécution échoue et l'action est arrêtée avant d'exécuter quoi que ce soit, afin qu'une requête obsolète ne puisse pas s'exécuter sur une table incompatible et corrompre vos données.
Comme la validation s'exécute avant l'exécution à chaque lancement, une action SQL qui échoue soudainement à la validation est souvent le signe qu'une table en amont a changé. Vérifiez le schéma de la table avant de mettre à jour la requête.
Utiliser le mode avancé
Si vous devez accéder au fichier de configuration JSON de l'action, activez le mode Advanced en cliquant sur Advanced en haut de la page.
Aller plus loin
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.
Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.
Rejoignez notre communauté d'utilisateurs.