execDirect
Description
L'action fedSql.execDirect est le point d'entrée principal pour exécuter des requêtes SQL directement sur votre serveur CASMoteur analytique "in-memory" de SAS Viya. Il traite les données en parallèle (MPP) sur plusieurs nœuds pour offrir une puissance de calcul massive et une exécution ultra-rapide des actions.. Elle utilise le moteur FedSQL, une implémentation SAS du standard ANSI SQL:1999, pour interroger, joindre et manipuler des tables chargées en mémoireGemini said
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.. C'est un peu comme avoir un interprète polyglotte pour vos données : que vos tables viennent de TeradataSystème de gestion de base de données relationnelle hautement parallèle, conçu pour le stockage et l'analyse massive de données (Data Warehouse) en parfaite intégration avec SAS Viya., Oracle ou d'un simple fichier CSV, FedSQL les traite avec la même rigueur et élégance. Pas besoin de parler couramment le 'Cloud-ien', le bon vieux SQL suffit !
Paramètres Clés
Préparation des données
Préparation des données de test
Création de deux tables simples (Ventes et Magasins) pour illustrer les capacités de jointure de FedSQL.
| 1 | PROC CAS; |
| 2 | TABLE.loadTable / path="cars.sashdat", caslib="Samples", casOut={name="cars", replace=true}; |
| 3 | fedSql.execDirect / query="create table work.sales_summary{options replace=true} as select Origin, count(*) as Count, avg(MSRP) as AvgPrice from cars group by Origin"; |
| 4 | RUN; |
Exemples d'utilisation
Exécution d'un SELECT basique
Une simple interrogation pour compter le nombre de véhicules par origine.
| 1 | PROC CAS; |
| 2 | fedSql.execDirect / query="select Origin, count(*) from cars group by Origin"; |
| 3 | RUN; |
Résultat Attendu :
Jointure complexe avec analyse du plan d'exécution
Cet exemple montre comment exécuter une requête avec des options de diagnostic (method et showStages) pour comprendre comment FedSQL optimise la requête.
| 1 | PROC CAS; |
| 2 | fedSql.execDirect / |
| 3 | query="select a.Make, a.Model, b.AvgPrice from cars as a inner join sales_summary as b on a.Origin = b.Origin where a.MSRP > b.AvgPrice", |
| 4 | method=true, |
| 5 | cntl={showStages=true}; |
| 6 | RUN; |
Résultat Attendu :
Validation de syntaxe uniquement
Vérifier si une requête complexe est valide avant de la lancer en production.
| 1 | PROC CAS; |
| 2 | fedSql.execDirect / |
| 3 | query="select * from cars where Horsepower > 300", |
| 4 | validateOnly=true; |
| 5 | RUN; |