Créer des tables dérivées SQL dynamiques avec LookML et Liquid

Atelier 15 minutes universal_currency_alt Sans frais show_chart Intermédiaire
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Ce contenu n'est pas encore optimisé pour les appareils mobiles.
Pour une expérience optimale, veuillez accéder à notre site sur un ordinateur de bureau en utilisant un lien envoyé par e-mail.

GSP932

Logo des ateliers d'auto-formation Google Cloud

Présentation

Looker est une plate-forme de données moderne intégrée à Google Cloud. Elle vous permet d'analyser et de visualiser vos données de manière interactive. Vous pouvez utiliser Looker pour effectuer des analyses de données approfondies, intégrer des insights provenant de différentes sources de données, mettre en place des workflows exploitables basés sur les données et créer des applications de données personnalisées.

Dans cet atelier, vous allez apprendre à créer et à mettre à jour des tables dérivées SQL pour générer des valeurs dynamiques et répondre à plusieurs cas d'utilisation.

Objectifs de l'atelier

  • Créer des tables dérivées SQL pour répondre à plusieurs cas d'utilisation
  • Mettre à jour une table dérivée SQL afin de générer des valeurs dynamiques à l'aide de filtres basés sur des modèles avec Liquid
  • Comprendre comment les utilisateurs métiers exploitent les tables dérivées SQL dynamiques pour répondre à des questions complexes

Prérequis

Une bonne maîtrise du langage LookML est nécessaire. Nous vous recommandons de suivre l'atelier Comprendre LookML dans Looker avant de commencer celui-ci.

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; n'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer votre atelier et vous connecter à Looker

  1. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

    Le volet "Détails concernant l'atelier" s'affiche avec les identifiants temporaires que vous devez utiliser pour cet atelier.

    Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement.

    Notez les identifiants qui vous ont été attribués pour cet atelier dans le volet "Détails concernant l'atelier". Ils vous serviront à vous connecter à l'instance Looker de cet atelier.

    Remarque : Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.
  2. Cliquez sur Ouvrir Looker.

  3. Saisissez le nom d'utilisateur et le mot de passe fournis dans les champs Adresse e-mail et Mot de passe.

    Nom d'utilisateur :

    {{{looker.developer_username | Username}}}

    Mot de passe :

    {{{looker.developer_password | Password}}} Important : Vous devez utiliser les identifiants fournis dans le volet "Détails concernant l'atelier" sur cette page. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Si vous possédez un compte Looker personnel, ne l'utilisez pas pour cet atelier.
  4. Cliquez sur Connexion.

    Une fois la connexion établie, l'instance Looker de cet atelier s'affichera.

Tâche 1 : Créer une table dérivée SQL unique pour répondre à plusieurs cas d'utilisation

Dans LookML, vous pouvez définir des tables dérivées à l'aide de requêtes SQL pour définir une table dérivée SQL ou de requêtes d'exploration pour définir une table dérivée native. Les tables dérivées SQL sont souvent plus faciles à comprendre et à utiliser pour les développeurs SQL qui débutent avec les tables dérivées dans Looker.

Dans cette tâche, vous allez créer une table dérivée SQL appelée user_facts, suffisamment flexible pour répondre à plusieurs questions sur le comportement des clients, telles que les suivantes :

  • Quels sont les revenus moyens à vie et le nombre moyen de commandes à vie pour tous les clients de chaque État américain ?
  • Quelles sont la date de la première commande et la date de la dernière commande d'un client, en plus de ses revenus totaux (à vie) et du nombre total de commandes (à vie) ?

Définir une table dérivée à l'aide d'une requête SQL

  1. Tout d'abord, en bas à gauche de l'interface utilisateur de Looker, cliquez sur le bouton d'activation pour passer en mode Développement.
  1. Cliquez sur l'onglet Développer, puis sur Exécuteur SQL.

  2. Dans la fenêtre Requête SQL, ajoutez la requête suivante :

SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10

Dans cet exemple, la requête souhaitée sélectionne la colonne user_id, compte le nombre total de commandes passées par cet utilisateur, puis additionne les prix pour obtenir les revenus totaux générés par l'utilisateur. Il détermine également les valeurs minimale et maximale de la colonne created_at comme étant respectivement la date de la première commande et celle de la dernière commande.

La clause GROUP BY permet de regrouper les résultats par user_id, et la clause LIMIT permet de limiter les résultats, car vous n'avez besoin d'examiner qu'un sous-ensemble d'enregistrements pour vous assurer que votre requête fonctionne correctement.

  1. Cliquez sur Exécuter pour afficher les résultats de votre requête.

Table des résultats affichant 10 lignes de données

Dans cet exemple, la requête renvoie bien l'ID utilisateur, le nombre total de commandes passées, les revenus totaux générés par l'utilisateur, ainsi que les dates des première et dernière commandes.

Notez que la clause LIMIT est utilisée pour réduire la quantité de données renvoyées lors de ce test. Vous supprimerez la clause LIMIT dans une prochaine étape lorsque vous créerez un fichier d'affichage pour la table dérivée SQL.

Créer un fichier d'affichage pour la table dérivée SQL

  1. Cliquez sur Paramètres (Icône des paramètres en forme de roue dentée) à côté d'Exécuter (en haut à droite de la page), puis sélectionnez Ajouter au projet.

  2. Dans le champ Projet, sélectionnez qwiklabs-ecommerce.

  3. Dans le champ Nom de la vue, saisissez user_facts.

  4. Cliquez sur Ajouter.

Vous êtes redirigé vers l'IDE Looker pour examiner le fichier d'affichage nouvellement créé pour votre table dérivée SQL. Vous pouvez constater que Looker génère automatiquement un fichier d'affichage pour la table dérivée SQL en fonction de la requête que vous avez saisie dans SQL Runner. Les 12 premières lignes du fichier d'affichage sont affichées ci-dessous :

view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10 ;; }

Dans Looker, votre fichier doit se présenter comme suit :

Fichier user_facts.view affichant 10 lignes de code

Notez que la nouvelle vue user_facts a été créée en dehors du dossier views. Il est recommandé d'organiser les fichiers d'affichage dans le projet.

  1. Cliquez sur la flèche à côté de views pour afficher la liste des vues.

  2. Cliquez sur user_facts.view et faites-le glisser sous le dossier views.

  3. Cliquez sur user_facts.view pour afficher le fichier d'affichage de la table dérivée SQL.

Looker génère automatiquement une dimension pour chaque colonne de la clause SELECT de la requête SQL, ainsi qu'une nouvelle mesure de décompte. Dans les étapes suivantes, vous allez modifier le fichier d'affichage pour supprimer la clause LIMIT, qui n'est plus nécessaire, masquer la nouvelle mesure de décompte et ajouter une clé primaire pour la vue.

  1. Supprimez la ligne de code pour LIMIT 10 du paramètre sql.

Comme nous l'avons vu précédemment, Looker génère automatiquement une mesure de décompte avec les dimensions utilisées dans la table dérivée. Parfois, cette mesure de nombre générée automatiquement n'est pas utile si vous disposez déjà d'un nombre dans une autre vue qui fournit le même résultat.

Dans cet exemple, la mesure de comptage générée automatiquement compte les ID de commande, et il existe déjà un comptage des commandes dans la vue order_items.

Vous pouvez supprimer ou masquer la mesure de décompte à l'aide du paramètre hidden: yes. Il est judicieux de masquer la mesure si vous souhaitez la conserver pour la validation, au cas où ce décompte serait identique à un autre.

  1. Dans la définition de measure: count, ajoutez une ligne avant type: count, puis insérez ce qui suit :
hidden: yes

Enfin, il est recommandé de s'assurer que la nouvelle vue comporte une clé primaire.

Dans cet exemple, vous pouvez ajouter le paramètre primary_key: yes à la dimension user_id, qui est l'ID d'organisation central de cette vue fournissant des détails sur chaque commande.

  1. Dans la définition dimension: user_id, ajoutez une ligne avant type: number et insérez ce qui suit :
primary_key: yes

La nouvelle vue user_facts est maintenant prête. Vous pouvez créer des dimensions et des mesures, la joindre à l'exploration dans le fichier de modèle et/ou terminer le workflow Git pour envoyer vos modifications en production. Vous continuerez à développer cette application dans les sections suivantes.

  1. Cliquez sur Enregistrer les modifications. Le code mis à jour doit ressembler à ce qui suit :
view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id ;; } measure: count { hidden: yes type: count drill_fields: [detail*] } dimension: user_id { primary_key: yes type: number sql: ${TABLE}.user_id ;; }

Dans Looker, votre fichier doit se présenter comme suit :

Fichier user_facts.view affichant 28 lignes de code

Valider les modifications et les déployer en production

  1. Cliquez sur Valider le LookML, puis sur Valider les modifications et envoyer.

  2. Ajoutez un message de commit, puis cliquez sur Valider.

  3. Enfin, cliquez sur Déployer en production.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer le fichier d'affichage pour la table dérivée SQL

Tâche 2 : Ajouter des mesures pour répondre à des questions métier

Dans cette section, vous allez ajouter deux mesures pour répondre à la question initiale sur le comportement des clients qui vous intéressait : Quels sont les revenus moyens à vie et le nombre moyen de commandes à vie pour tous les clients de chaque État américain ?

  1. Dans la vue user_facts.view, ajoutez deux mesures : average_lifetime_revenue et average_lifetime_order_count, qui calculent les revenus moyens à vie et le nombre moyen de commandes à vie :
measure: average_lifetime_revenue { type: average sql: ${TABLE}.lifetime_revenue ;; } measure: average_lifetime_order_count { type: average sql: ${TABLE}.lifetime_order_count ;; }
  1. Cliquez sur Enregistrer les modifications. Votre vue doit se présenter comme suit :

Fichier user_facts.view affichant les lignes 25 à 43 de code, imitant la mise en page de l'étape précédente

Joindre une nouvelle vue à une exploration

Dans cette section, vous allez examiner et tester la nouvelle table dérivée. Vous allez d'abord la joindre à la définition d'exploration order_items dans le fichier de modèle, puis utiliser l'exploration Order Items pour vérifier ce que les utilisateurs professionnels verraient si vous déployiez les modifications en production.

  1. Sur la même page, cliquez sur le fichier training_ecommerce.model dans le dossier model pour modifier son contenu.

  2. Recherchez la définition explore: order_items. Notez que plusieurs jointures sont déjà définies, comme celle de la vue users.

Fichier training_ecommerce.model affichant les lignes 14 à 28

  1. Dans la définition explore: order_items, au-dessus de la jointure existante pour users, ajoutez une jointure pour user_facts en spécifiant :
join: user_facts { type: left_outer sql_on: ${order_items.user_id} = ${user_facts.user_id};; relationship: many_to_one }

Le paramètre sql_on identifie le champ de jointure comme étant user_id. Le paramètre relationship indique qu'il peut y avoir plusieurs instances d'un user_id dans order_items, mais qu'il n'y a qu'une seule instance de chaque user_id dans user_facts, qui est organisé sous la forme d'une ligne de résumé pour chaque commande.

  1. Cliquez sur Enregistrer les modifications. Votre exploration doit désormais inclure les éléments suivants :
explore: order_items { join: user_facts { type: left_outer sql_on: ${order_items.user_id} = ${user_facts.user_id};; relationship: many_to_one } join: users { type: left_outer sql_on: ${order_items.user_id} = ${users.id} ;; relationship: many_to_one } ... ... ... }

Dans Looker, votre vue devrait maintenant ressembler à ceci :

Le fichier training_ecommerce.model avec l'exploration user_facts ajoutée, affichant les lignes 1 à 29

  1. Maintenant que vous avez joint la vue à l'exploration, accédez à la page "Exploration" pour Order Items.

  2. Dans la vue Faits sur les utilisateurs, sélectionnez la dimension ID utilisateur, ainsi que les mesures Nombre moyen de commandes à vie et Revenus moyens à vie.

  3. Définissez la limite de lignes sur 100.

  4. Cliquez sur Exécuter. Les résultats doivent ressembler à ceci :

Table des résultats affichant 10 lignes de données pour la dimension ID utilisateur et les mesures Nombre moyen de commandes à vie et Revenus moyens à vie

  1. À présent, supprimez la dimension ID utilisateur et ajoutez la dimension État à partir de la vue "Utilisateurs".

  2. Cliquez sur la dimension Pays et ajoutez un filtre.

  3. Sélectionnez États-Unis.

Filtre États-Unis

  1. Cliquez sur Exécuter pour exécuter à nouveau la requête.

Vous pouvez voir comment les mêmes mesures peuvent désormais être utilisées pour calculer une valeur pour les revenus moyens à vie et une autre pour le nombre moyen de commandes à vie par utilisateur et par État.

  1. Les résultats doivent se présenter comme suit :

Table des résultats affichant 10 lignes de données pour les mesures Pays des utilisateurs, État des utilisateurs, Nombre moyen de commandes à vie et Revenus moyens à vie

  1. Revenez au fichier de modèle training_ecommerce.

Valider les modifications et les déployer en production

  1. Cliquez sur Valider le LookML, puis sur Valider les modifications et envoyer.

  2. Ajoutez un message de commit, puis cliquez sur Valider.

  3. Enfin, cliquez sur Déployer en production.

Cliquez sur Vérifier ma progression pour valider l'objectif. Ajouter des mesures pour répondre à des questions métier

Tâche 3 : Mettre à jour une table dérivée SQL afin de générer des valeurs dynamiques à l'aide de filtres basés sur des modèles

Comme vous l'avez vu dans l'atelier précédent, les filtres basés sur des modèles suivent le même schéma logique que les paramètres. Là encore, la principale différence est que les filtres basés sur des modèles permettent aux utilisateurs finaux de choisir parmi plusieurs opérateurs de filtre. Pour le type de données "Nombre", il peut s'agir de "est égal à", "est supérieur à", "est compris entre", etc.

Dans les filtres basés sur un modèle, les valeurs ne sont pas codées en dur. Elles sont saisies par les utilisateurs, puis transmises à la requête SQL générée. Toutefois, vous pouvez afficher un menu déroulant d'options en spécifiant une exploration et une dimension dans la définition du filtre.

Dans cette section, vous allez modifier la définition de la table dérivée SQL de la première section afin qu'elle recalcule toutes les valeurs en fonction de la période sélectionnée par un utilisateur.

  1. Revenez à la vue user_facts dans l'IDE Looker.

  2. Tout d'abord, modifiez la définition de la table dérivée SQL comme suit pour inclure la clause WHERE conditionnelle :

derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items WHERE {% condition select_date %} order_items.created_at {% endcondition %} GROUP BY user_id;; }
  1. Ensuite, ajoutez un filtre sous la définition derived_table pour que les utilisateurs puissent sélectionner une date :
filter: select_date { type: date suggest_explore: order_items suggest_dimension: order_items.created_date }

Les 18 premières lignes du fichier d'affichage doivent maintenant ressembler à ce qui suit :

view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items WHERE {% condition select_date %} order_items.created_at {% endcondition %} GROUP BY user_id;; } filter: select_date { type: date suggest_explore: order_items suggest_dimension: order_items.created_date }
  1. Cliquez sur Enregistrer les modifications. Votre fichier doit maintenant ressembler à ceci :

Fichier user_facts.view affichant les lignes 1 à 18

Vous allez maintenant tester la table dérivée SQL dynamique dans l'exploration Order Items en répétant les requêtes de la tâche précédente pour voir que les valeurs changent lorsque le filtre est ajouté.

  1. Revenez à l'exploration Order Items.

  2. Sélectionnez les mesures Nombre moyen de commandes à vie et Revenus moyens à vie dans la vue "Faits sur les utilisateurs".

  3. Sélectionnez la dimension État dans la vue "Utilisateurs".

  4. Cliquez sur l'icône de filtre à côté du nouveau champ de filtre uniquement intitulé Sélectionner une date sous la vue "Faits sur l'utilisateur".

  5. Pour la première valeur de filtre en haut de l'UI, laissez l'option "est dans le passé" sélectionnée.

  6. Pour la deuxième valeur de filtre, sélectionnez Années complètes et ajoutez 1 dans la zone de valeur vide.

  7. Dans la vue "Utilisateurs", ajoutez un filtre sur le pays et définissez-le sur États-Unis.

  8. Cliquez sur Exécuter pour afficher les résultats.

Vous verrez le nombre moyen de commandes à vie et les revenus moyens à vie pour chaque État ou pays au cours de la dernière année complète.

  1. Cliquez sur l'onglet "SQL" pour examiner le code SQL.

  2. À ce stade, vous pouvez tester les valeurs de filtre et consulter l'onglet "SQL" pour voir comment le filtre basé sur un modèle modifie les valeurs en conséquence.

  3. Revenez à la vue user_facts.

Valider les modifications et les déployer en production

  1. Cliquez sur Valider le LookML, puis sur Valider les modifications et envoyer.

  2. Ajoutez un message de commit, puis cliquez sur Valider.

  3. Enfin, cliquez sur Déployer en production.

Cliquez sur Vérifier ma progression pour valider l'objectif. Mettre à jour une table dérivée SQL afin de générer des valeurs dynamiques à l'aide de filtres basés sur des modèles

Félicitations !

Dans cet atelier, vous avez créé des tables dérivées SQL afin de générer des valeurs dynamiques à l'aide de filtres basés sur des modèles avec Liquid, et vous avez utilisé des tables dérivées SQL dynamiques pour répondre à des questions complexes.

Étapes suivantes et informations supplémentaires

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 24 avril 2024

Dernier test de l'atelier : 24 avril 2024

Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Le meilleur moyen d'exécuter cet atelier consiste à utiliser une fenêtre de navigation privée. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.