Rédaction de la requête SQL
- Rédaction manuelle de la requête SQL
- Génération graphique de la requête SQL via l'assistant SQL
- Configuration du mode incrémental
Pour la rédaction de votre requête SQL, deux choix s'offrent à vous : la rédaction manuelle de la requête SQL ou la génération graphique du SQL via l'assistant SQL.
Rédaction manuelle de la requête SQL
Vous avez la possibilité de rédiger directement votre requête dans le champ Requête SQL.
La requête peut inclure des conditions utilisant des variables. Les variables permettent de personnaliser les graphes pour afficher uniquement les données de l'utilisateur connecté. Vous pouvez utiliser comme variables tous les attributs présents dans le serveur LDAP. A l'affichage du graphe, la variable est remplacée par sa valeur dans le serveur LDAP.
Pour définir une condition utilisant une variable, utilisez la syntaxe suivante : where Nom_colonne Opérateur {variable}.
Par exemple, where Nom = ${user.displayName}.
A l'affichage du graphe, la variable ${user.displayName} est remplacée par le nom de l'utilisateur connecté (valeur de l'attribut displayname dans LDAP).
Génération graphique de la requête SQL via l'assistant SQL
Vous pouvez générer graphiquement votre requête SQL via l'assistant SQL. Pour ce faire cliquez sur Assistant SQL....La boîte Assistant de création de requête SQL s'affiche, la fenêtre dispose de trois onglets correspondant à trois étapes :
- Étape 1 : Sélection des tables et application des jointures
- Étape 2 : Sélection des colonnes et application des filtres
- Étape 3 : Prévisualisation de la requête générée
Étape 1 : Sélection des tables et application des jointures
Sur la gauche l'ensemble des tables et des vues de la base sélectionnée sont disponibles. L'objectif de cette fenêtre consiste à créer un schéma relationnel. Vous allez pouvoir :
- sélectionner un ensemble de tables
- appliquer des jointures entre les tables sélectionnées
- appliquer des alias sur les tables
Les actions disponibles sont les suivantes :
Opération | Réalisation |
Ajouter une table | Glisser-déposer la ou les table(s) contenant les informations souhaitées sur le panneau de droite. |
Supprimer une table | Lorsqu'une table est déposée sur le panneau de dessin, faites un clic droit sur l'entête de la table, puis cliquez sur Supprimer la table. |
Ajouter une jointure | Pour ajouter une jointure entre deux tables figurant sur le panneau de dessin, faites un clic gauche sur la colonne sur laquelle vous souhaitez appliquer la jointure, puis faites un second clic gauche sur une autre colonne d'une table différente. Une jointure entre les deux colonnes va apparaître. |
Supprimer une jointure | Sur une jointure déjà en place, faites un clic droit sur le symbole central, puis cliquez sur Supprimer la jointure. |
Changer le type de jointure | Sur une jointure déjà en place, faites un clic droit sur le symbole central, puis cliquez sur Changer le type de jointure. Une liste apparaît, sélectionnez le type de jointure souhaité. |
Changer le sens d'une jointure | Sur une jointure déjà en place, faites un clic droit sur le symbole central, puis cliquez sur Inverser le sens de lecture. |
Ajouter un alias de table | Lorsque qu'une table est déposée sur le panneau de dessin, faites un clic droit sur l'entête de la table, puis cliquez sur Ajouter ou éditer un alias de table. L'alias de table va apparaître en dessous du nom de la table. |
Ajouter un alias de colonne | Faites un clic droit sur une colonne puis cliquez sur Ajouter ou éditer un alias. L'alias de la colonne va apparaître à droite de la colonne. |
Ajouter une agrégation sur une colonne | Faites un clic droit sur une colonne puis cliquez sur Ajouter une agrégation. Sélectionnez ensuite le type d’agrégation souhaité. |
Légende :
Symbole | Signification | |
Catalogue chargé | ||
Schéma chargé | ||
Table non sélectionnée | ||
Table sélectionnée mais ne possédant pas de jointure | ||
Table sélectionnée et possédant au moins une jointure | ||
Vue non sélectionnée | ||
Vue sélectionnée mais ne possédant pas de jointure | ||
Vue sélectionnée et possédant au moins une jointure | ||
Jointure à gauche (LEFT JOIN) | ||
Jointure à droite (RIGHT JOIN) | ||
Jointure complète (FULL JOIN) | ||
Exemple de table :
|
Quand votre schéma est terminé pour poursuivre la création de la requête cliquez sur Suivant >.
Étape 2 : Sélection des colonnes et application des filtres
Cette nouvelle étape vous propose trois tableaux :
- le tableau situé à gauche contient l'ensemble des colonnes disponibles dans le schéma que vous avez crée
- le tableau situé en haut à droite va contenir les colonnes que vous souhaitez afficher
- le tableau situé en bas à droite va contenir les colonnes sur lesquelles vous souhaitez appliquer un filtre
Les actions disponibles sont les suivantes :
Opération | Réalisation |
Sélectionner une colonne | Glissez-déposez la ou les colonnes(s) souhaitée(s) sur le tableau situé en haut à droite. |
Filtrer une colonne | Glissez-déposez la ou les colonnes(s) souhaitée(s) sur le tableau situé en bas à droite. Une fenêtre va s'afficher, sélectionnez le type de filtre que vous souhaitez appliquer. |
Lorsque vous avez terminé la sélection et le filtrage de vos colonnes, cliquez sur Suivant >.
Étape 3 : Prévisualisation de la requête générée :
- Cette étape vous permet de prévisualiser la requête générée et le cas échéant de la modifier. Une fois votre requête finalisée, cliquez sur Terminer.
Configuration du mode incrémental
La source de données SQL supporte un mode incrémental permettant de minimiser les requêtes vers la base de données.
- Cliquez sur Options... dans la boite de configuration de la source de données.
- Cochez la case Mode données incrémentales. Un message d'avertissement vous informe que :
- Le mode incrémental utilise une colonne de référence qui identifie chaque enregistrement du résultat de manière unique (par exemple un AUTO_INCREMENT, un identifiant, une date...)
- Le requête doit être triée sur cette colonne de référence (et contenir cette colonne)
- La requête doit contenir une clause WHERE sur cette colonne comparant sa valeur à une variable ${LASTVAL}. Exemple : where colonne > '${LASTVAL}'
- Le mode incrémental a été prévu pour traiter incrémentalement des grand volume de données, et n'est pas optimal pour de faibles volumes.
- Si la requête est modifiée à l'avenir, l'historique précédemment accumulé dans le cube sera invalidé. ${LASTVAL} sera évalué à 0 et, selon la clause WHERE spécifiée, l'intégralité des données sera rapatriée de la base de données.
- Saisissez le nom de la colonne qui sera utilisée comme référence incrémentale dans le champ Colonne de référence.
- Ajoutez une clause WHERE à votre requête SQL qui teste si la colonne de référence est supérieure à '${LASTVAL}'. La syntaxe exacte peut dépendre de votre base de données et du type de la colonne. La comparaison est faite de manière lexicographique, il est préférable donc que la comparaison soit faite via une chaîne de caractère.