Création d'une application Direct Query à l'aide d'une requête custom SQL
Créez des modèles de données dans le script de chargement à l'aide d'une requête custom SQL dans votre application Direct Query. Custom SQL offre une alternative à l'utilisation de Gestionnaire de modèle de données pour définir votre modèle de données pour Direct Query.
L'utilisation de custom SQL pour créer des modèles de données Direct Query vous permet d'employer des instructions SQL pour définir des tables et des champs générés par la requête SQL elle-même. De plus, les instructions custom SQL dans une application Qlik peuvent utiliser des variables de script de chargement et des macros d'expressions Qlik dans vos instructions custom SQL. Cela permet d'obtenir un modèle de données plus dynamique et permet à vos tables et colonnes définies par custom SQL de s'adapter aux résultats d'évaluation d'expressions ou de variables.
Custom SQL peut être utilisé seul dans votre script de chargement. Vous pouvez également utiliser une combinaison de Gestionnaire de modèle de données et de custom SQL dans Éditeur de chargement de données pour définir votre modèle de données.
Si des parties du modèle de données peuvent être spécifiées via Gestionnaire de modèle de données, utilisez le Gestionnaire de modèle de données pour spécifier ces portions afin d'obtenir des performances SQL optimales. Gestionnaire de modèle de données est plus efficace dans les définitions de table à utiliser lors de l'exécution de requêtes Direct Query dans le modèle de données défini.
Pour créer des modèles de données avec custom SQL :
-
Ajoutez section directquery à votre script de chargement.
Il ne peut exister qu'une seule section SECTION DIRECTQUERY dans le script de chargement. La section doit être la dernière d'un script de chargement.
Même si vous n'avez pas défini de modèle de données avec Gestionnaire de modèle de données, l'ajout d'une instruction LIB CONNECT, puis d'une instruction section directquery à votre script de chargement et le chargement du script convertiront votre application en application Direct Query.
-
Élaborez votre modèle de données à l'aide des instructions suivantes :
-
SELECT
Utilisez des instructions SELECT pour sélectionner les tables et les colonnes à charger. Par exemple : <TableName> SELECT <custom SQL>.
Si vous ne définissez pas vos propres noms de table dans le script de chargement, les tables seront nommées Table<numéro de ligne du script>.
-
CREATE RELATIONSHIP
Utilisez CREATE RELATIONSHIP pour définir des relations entre les champs et les tables du modèle de données.
-
DROP RELATIONSHIP
Utilisez DROP RELATIONSHIP pour abandonner des relations précédemment définies du modèle de données.
-
DROP TABLE
Utilisez DROP TABLE pour abandonner des tables précédemment définies du modèle de données afin d'éviter d'éventuels conflits entre les tables.
-
LET, SET
Utilisez les instructions LET et SET pour définir des variables ou des expressions Qlik.
Les noms des tables et des champs de votre modèle de données doivent être uniques. Si vous définissez une table dans le Gestionnaire de modèle de données et si vous tentez de redéfinir la table dans custom SQL, l'opération échouera, sauf si vous abandonnez la table créée dans Gestionnaire de modèle de données ou si vous renommez la table et les champs dans votre requête custom SQL.
-
Toute instruction de script non supportée dans la section section directquery génère une erreur lors du chargement des données. Tout paramètre visant à déboguer un script ou à forcer la poursuite de l'opération est ignoré.
Pour des exemples de scripts de chargement custom SQL, voir Exemples de custom SQL for Direct Query.
Custom SQL, variables et expressions
Les définitions custom SQL dans Direct Query vous permettent d'utiliser des variables de script et des macros d'expressions Qlik dans une instruction custom SQL.
Cette capacité offre une influence et une flexibilité dynamiques aux variables et aux expressions d'un modèle de données d'une application comportant des tables et des colonnes définies par custom SQL en les adaptant aux résultats d'évaluation de variables ou d'expressions Qlik.
Variables dans custom SQL
Utilisez des instructions SET ou LET pour définir vos variables. Ajoutez des variables à votre script de chargement via le format $(<variable name>).
Exemple : Élaboration d'un modèle de données incluant des variables
Les références à des variables dans custom SQL sont évaluées lors de l'actualisation. Si la valeur de la variable change lors de l'utilisation de l'application, la modification n'est pas reflétée dans la requête custom SQL qui utilise cette variable, sauf en cas d'actualisation du script de chargement.
Si vous souhaitez utiliser des variables dynamiques dans des définitions custom SQL, référencez les variables comme faisant partie d'expressions Qlik pour forcer l'évaluation de ces variables à chaque exécution de la requête qui utilise ces définitions custom SQL.
Pour plus d'informations sur les variables, voir Utilisation des variables dans l'éditeur de chargement de données.
Expressions dans custom SQL
Vous pouvez utiliser des expressions pour modifier le contenu de requêtes custom SQL envoyées à la base de données distante pour représenter les tables et les colonnes dans le modèle de données de l'application. Les expressions utilisées dans le modèle de données doivent être résolues sur une seule valeur.
Pour tester si votre expression est évaluée sur une seule valeur, ajoutez-la sous la forme d'une expression à un ICP. Si cela fonctionne, votre expression peut être utilisée dans votre requête custom SQL.
Les expressions sont évaluées dynamiquement à chaque exécution d'une requête qui utilise ces définitions SQL. Chaque fois qu'une instruction custom SQL de tables ou de champs utilise des expressions Qlik lors de l'exécution d'une requête, ces expressions Qlik sont évaluées en premier pour récupérer les résultats actuels des expressions. Ces résultats insérés dans l'instruction custom SQL doivent être exécutés pour le compte de la requête d'origine. Il est possible que ces évaluations d'expressions Qlik génèrent à leur tour des requêtes SQL envoyées à la base de données distante. Il est possible que ces évaluations d'expressions Qlik génèrent à leur tour des requêtes SQL envoyées à la base de données distante.
En cas d'échec d'expansion d'une expression lors du chargement, l'expression renvoie une valeur nulle. Cela ne signifie pas pour autant que votre expression n'est pas valide. Pour être évaluée, votre expression peut nécessiter qu'un utilisateur effectue des sélections dans une application.
Exemple : Élaboration d'un modèle de données avec des expressions Qlik
Création d'un modèle de données avec custom SQL et Gestionnaire de modèle de données
Vous pouvez utiliser une combinaison de custom SQL et de Gestionnaire de modèle de données pour créer votre modèle de données pour Direct Query. En revanche, vous devez tenir compte des considérations pratiques suivantes :
-
Comme bonne pratique, effectuez toute modélisation de votre choix dans Gestionnaire de modèle de données avant d'ajouter custom SQL au script de chargement. L'utilisation combinée de custom SQL et de Gestionnaire de modèle de données est optimale lorsque Gestionnaire de modèle de données est utilisé pour définir les tables chargées et les relations entre les champs et lorsque custom SQL est utilisé à des fins de personnalisation supplémentaire.
-
La portion du modèle de données créée par Gestionnaire de modèle de données et la portion créée par custom SQL sont gérées séparément, puis combinées lors de l'actualisation du script. Gestionnaire de modèle de données n'affiche aucun élément du modèle de données défini par custom SQL. Pour afficher la vue de votre modèle de données complet, utilisez Visionneur de modèle de données.
-
Le modèle de données créé par Gestionnaire de modèle de données et le modèle de données défini par votre custom SQL doivent utiliser la même connexion de base de données.
-
Vous pouvez déplacer l'instruction IMPORT LIVE ajoutée à votre script de chargement par Gestionnaire de modèle de données. Le script de chargement est évalué de manière séquentielle ; par conséquent, sa nouvelle position peut avoir un impact sur les conditions de votre requête custom SQL. Par exemple, cela peut avoir pour conséquence de créer des relations indésirables ou de dupliquer des noms de table dans le modèle de données final.
-
Les noms des tables et des champs de votre modèle de données doivent être uniques. Si vous définissez une table dans le Gestionnaire de modèle de données et si vous tentez de redéfinir la table dans custom SQL, l'opération échouera, sauf si vous abandonnez la table créée dans Gestionnaire de modèle de données ou si vous renommez la table et les champs dans votre requête custom SQL.
Limitations
Custom SQL for Direct Query présente les limitations suivantes :
-
Custom SQL peut utiliser uniquement une seule base de données.
-
Une application Direct Query qui utilise une ou plusieurs instructions custom SQL avec des macros d'expressions Qlik incorporées ne peut pas être utilisée comme application de sélection pour les applications On-Demand. Cela est dû au fait qu'aucun modèle d'application généré, étant par nature une application en mémoire, ne peut prendre en charge des macros d'expressions Qlik dans son script de chargement.
-
Direct Query Les requêtes custom SQL ne sont pas supportées pour les scripts ajoutés dans le centre d'activités Analyses. Pour plus d'informations sur les scripts, consultez Utilisation de scripts dans le catalogue.