Principe de la syntaxe des scripts et des structures de données

Extraction, transformation et chargement

En général, la façon dont les données sont chargées dans l'application peut s'expliquer par le processus d'extraction, de transformation et de chargement (ETL) :

  • Extraction

    La première étape consiste à extraire les données de leur source. Dans un script, utilisez les instructions SELECT ou LOAD à cette fin. Les différences entre ces instructions sont les suivantes :

    • SELECT permet de sélectionner des données à partir d'une source de données ODBC ou d'un fournisseur OLE DB. L'instruction SELECT SQL est évaluée par le fournisseur de données, pas par Qlik Sense.
    • L'instruction LOAD permet de charger des données à partir d'un fichier, de données définies dans le script, d'une table déjà chargée, d'une page Web, du résultat d'une instruction SELECT ultérieure, ou en générant les données automatiquement.
  • Transformation

    L'étape de transformation implique de manipuler les données au moyen de règles et de fonctions de script afin d'en dériver la structure de modèle de données souhaitée. Les opérations classiques sont les suivantes :

    • Calcul de nouvelles valeurs
    • Traduction des valeurs codées
    • Modification des noms de champ
    • Jonction de tables
    • Agrégation des valeurs
    • Pivotement
    • Validation des données
  • Chargement

    L'étape finale consiste à exécuter le script pour charger le modèle de données défini dans l'application.

Votre objectif doit consister à créer un modèle de données permettant de manipuler les données de façon efficace dans Qlik Sense. Le plus souvent, cela signifie qu'il est recommandé de concevoir un schéma en étoile ou en flocon raisonnablement normalisé, sans aucune référence circulaire (bref, un modèle dont chaque entité figure dans une table distincte). Autrement dit, un modèle de données type devrait avoir l'aspect suivant :

  • une table centrale répertoriant les faits, qui contient les identifiants des dimensions et des nombres utilisés pour calculer les mesures (nombre d'unités, montants des ventes, montants budgétaires, etc.) ;
  • des tables environnantes contenant les dimensions assorties de tous leurs attributs (produits, clients, catégories, calendrier, fournisseurs, etc.).
Remarque: La plupart du temps, il est possible de résoudre une tâche (des agrégations, par exemple) soit en créant un modèle de données plus riche dans le script de chargement, soit en effectuant les agrégations dans les expressions de graphique. En règle générale, vous obtiendrez de meilleurs résultats en conservant les transformations de données dans le script de chargement.
Conseil: Il est recommandé de tracer une esquisse du modèle de données sur une feuille. Ceci vous aidera en fournissant une structure sur les données à extraire, et les transformations à effectuer.

Instructions de chargement de données

Les données sont chargées par des instructions LOAD ou SELECT. Chacune de ces instructions génère une table interne. Il est toujours possible d'afficher une table sous forme de liste d'éléments, chaque enregistrement (ligne) représentant une nouvelle instance du type d'objet et chaque champ (colonne) correspondant à un attribut ou une propriété propre à l'objet.

Les différences entre ces instructions sont les suivantes :

  • SELECT permet de sélectionner des données à partir d'une source de données ODBC ou d'un fournisseur OLE DB. L'instruction SELECT SQL est évaluée par le fournisseur de données, pas par Qlik Sense.
  • L'instruction LOAD permet de charger des données à partir d'un fichier, de données définies dans le script, d'une table déjà chargée, d'une page Web, du résultat d'une instruction SELECT ultérieure, ou en générant les données automatiquement.

Règles

Les règles suivantes s'appliquent lors du chargement des données dans Qlik Sense :

  • Qlik Sense ne fait aucune différence entre les tables générées par les instructions LOAD ou SELECT. Autrement dit, si plusieurs tables sont chargées, cela n'a pas d'importance que ce soit l'instruction LOAD, SELECT ou un mélange des deux qui en soit à l'origine.
  • L'ordre des champs dans l'instruction ou dans la table d'origine de la base de données est arbitraire pour la logique Qlik Sense.
  • Les noms des champs servent à identifier les champs lors des traitements ultérieurs et à effectuer des associations. Comme ces champs respectent la casse des caractères, il est souvent nécessaire de les renommer dans le script.

Exécution du script

Pour une instruction LOAD ou SELECT type, les événements se déroulent à peu près dans l'ordre suivant :

  1. Évaluation des expressions
  2. Modification des noms des champs par as
  3. Modification des noms des champs par alias
  4. Qualification des noms des champs
  5. Mappage des données si les noms des champs correspondent
  6. Stockage des données dans une table interne