Les explorations dans Looker sont conçues par vos développeurs Looker pour combiner de façon optimale les données de vos tables de base de données, en utilisant des relations définies entre les champs de données et les tables. C'est pourquoi il est généralement préférable d'utiliser une seule exploration pour examiner vos données.
Il peut arriver cependant que vos développeurs Looker n'aient pas créé les relations dont vous avez besoin ou qu'ils rencontrent des contraintes techniques. Dans ce cas, la page Joindre des données vous permet de joindre (ou de fusionner) les résultats de deux requêtes ou plus provenant de différentes explorations (même de modèles ou de projets différents) et d'afficher les résultats de la requête comme s'il s'agissait d'une seule requête. Vous pouvez utiliser des requêtes jointes pour créer des tables de données sur lesquelles explorer et créer des visualisations, et comme démonstration de faisabilité pour développer et définir davantage vos projets et modèles LookML.
Comprendre les résultats joints
Lorsque vous joignez ou fusionnez des requêtes, vous créez d'abord une première requête à partir d'une seule exploration, puis vous combinez d'autres requêtes à celle-ci.
Par défaut, la première requête est considérée comme la requête primaire. La requête primaire est importante, car quand Looker met en correspondance les données pour créer les résultats joints, il le fait uniquement par rapport à cette requête pour chaque requête ajoutée. Ainsi, quand vous ajoutez une requête, vous devez inclure une dimension qui peut être mise en correspondance avec une dimension de la requête primaire.
Prenons l'exemple des requêtes suivantes.
La requête primaire renvoie les résultats suivants :
| Catégorie de produits | Nombre de produits |
|---|---|
| Actif | 5 |
| Jean | 9 |
| Tenues de soirée | 3 |
La requête secondaire renvoie les résultats suivants :
| Catégorie de produits | Nombre d'articles dans l'inventaire |
|---|---|
| Actif | 11 |
| Jean | 16 |
| Tenues de soirée | 6 |
Si vous joignez ces requêtes sur le champ catégorie de produits, Looker produit les résultats joints suivants :
| Catégorie de produits | Nombre de produits | Nombre d'articles dans l'inventaire |
|---|---|---|
| Actif | 5 | 11 |
| Jean | 9 | 16 |
| Tenues de soirée | 3 | 6 |
Les résultats joints n'effectuent pas de jointure SQL réelle (sauf si vous utilisez des requêtes de fusion dans la base de données). Toutefois, pour les personnes qui connaissent les jointures SQL, la jointure de requêtes combine les résultats de plusieurs explorations de la même manière qu'une jointure gauche. Les résultats de la requête ajoutée sont combinés à ceux de la requête primaire, comme s'ils étaient joints à gauche dans la requête primaire.
Vous n'avez pas besoin de connaître le concept de jointure gauche pour comprendre le fonctionnement des résultats joints. En pratique, la désignation de la requête primaire est importante pour les raisons suivantes :
- Apparence des noms de champs : pour les champs correspondants, les noms de champs de la requête primaire sont utilisés dans les résultats joints, comme illustré dans l'exemple précédent.
Comment les résultats joints gèrent une requête sans valeur correspondante : la section suivante, Que se passe-t-il si une requête n'a pas de valeur de données correspondante ?, explique comment Looker gère la fusion des données lorsque seules certaines requêtes ont des valeurs spécifiques dans les dimensions correspondantes.
Pour obtenir d'autres conseils de dépannage concernant les valeurs de résultats de jointure manquantes ou nulles, consultez Pourquoi y a-t-il des valeurs nulles dans ma requête de résultats de jointure secondaire ? la page "Bonnes pratiques".
Comment les résultats joints gèrent une requête comportant plusieurs valeurs correspondantes : la section Que se passe-t-il si une requête comporte plusieurs lignes pour la même valeur ? plus loin sur cette page explique comment Looker gère la fusion des données lorsque certaines requêtes comportent plusieurs lignes avec une valeur spécifique (ou une combinaison de valeurs) dans les dimensions correspondantes.
Que se passe-t-il si une requête n'a pas de valeur de données correspondante ?
La requête primaire est également importante en raison de la façon dont les valeurs nulles sont gérées dans les dimensions mises en correspondance :
- Si une ligne existe dans la requête principale, mais pas dans la requête supplémentaire, les champs de la requête ajoutée affichent NULL (
∅) pour cette ligne. - Si une ligne existe dans la requête ajoutée, mais pas dans la requête primaire, elle n'apparaît pas du tout dans les résultats.
Pour illustrer ce comportement, examinons les exemples de requêtes suivants.
La requête primaire renvoie les résultats suivants :
| Catégorie de produits | Service des produits | Nombre de produits |
|---|---|---|
| Actif | Kids | 522 |
| Actif | Adultes | 545 |
| Robes | Adultes | 878 |
| Tenues de soirée | Adultes | 349 |
La requête secondaire renvoie les résultats suivants :
| Catégorie de produits | Nom de la marque du produit | Nombre d'articles dans l'inventaire |
|---|---|---|
| Actif | Marque 1 | 223 |
| Robes | Marque 2 | 80 |
| Robes | Marque 3 | 3 |
| Jean | Marque 3 | 8 |
| Jean | Marque 2 | 19 |
Si vous joignez ces requêtes sur le champ catégorie de produits, Looker produit les résultats joints suivants :
| Catégorie de produits | Service des produits | Nom de la marque du produit | Nombre de produits | Nombre d'articles dans l'inventaire |
|---|---|---|---|---|
| Actif | Adultes | Marque 1 | 545 | 223 |
| Actif | Kids | Marque 1 | 522 | 223 |
| Robes | Adultes | Marque 2 | 878 | 80 |
| Robes | Adultes | Marque 3 | 878 | 3 |
| Tenues de soirée | Adultes | ∅ | 349 | ∅ |
La requête primaire comporte une ligne pour Formalwear (Vêtements de cérémonie). Les résultats joints affichent donc cette ligne. La requête ajoutée ne comporte pas de ligne Formalwear. Par conséquent, tous les champs de la requête ajoutée affichent NULL (∅) pour Formalwear.
La requête ajoutée comporte deux lignes pour Jeans, mais la requête primaire n'en comporte aucune. Par conséquent, ces lignes ne sont pas affichées dans les résultats de la jointure.
Dans cet exemple, si vous changez de requête primaire pour que la requête ajoutée devienne la nouvelle requête primaire, Looker produit les résultats joints suivants :
| Catégorie de produits | Nom de la marque du produit | Service des produits | Nombre d'articles dans l'inventaire | Nombre de produits |
|---|---|---|---|---|
| Actif | Marque 1 | Adultes | 223 | 545 |
| Actif | Marque 1 | Kids | 223 | 522 |
| Robes | Marque 2 | Adultes | 80 | 878 |
| Robes | Marque 3 | Adultes | 3 | 878 |
| Jean | Marque 2 | ∅ | 19 | ∅ |
| Jean | Marque 3 | ∅ | 8 | ∅ |
Looker n'affiche plus les lignes Formalwear, car elles n'existent pas dans la nouvelle requête primaire. Cependant, Looker affiche désormais les lignes Jeans, et ces lignes affichent NULL (∅) pour les dimensions et les mesures qui ne figurent que dans la requête ajoutée à la requête primaire.
Pour obtenir d'autres conseils de dépannage concernant les valeurs de résultats de jointure manquantes ou nulles, consultez la section Pourquoi y a-t-il des valeurs nulles dans ma requête de résultats de jointure secondaire ?. la page "Bonnes pratiques".
Que se passe-t-il si une requête comporte plusieurs lignes pour la même valeur ?
La désignation de la requête primaire est également importante en raison de la manière dont sont gérées les lignes multiples avec des valeurs correspondantes. Si la requête ajoutée comporte au moins deux lignes dont les valeurs correspondent à une ligne de la requête primaire, la ligne de la requête primaire est dupliquée autant de fois.
Dans l'exemple suivant, la requête added comporte deux lignes pour Dresses. Dans les résultats joints, les valeurs Dresses de la requête primaire apparaissent deux fois, une fois pour chacune des lignes Dresses de la requête ajoutée.
La requête primaire renvoie les résultats suivants :
| Catégorie de produits | Service des produits | Nombre de produits |
|---|---|---|
| Actif | Kids | 522 |
| Actif | Adultes | 545 |
| Robes | Adultes | 878 |
| Tenues de soirée | Adultes | 349 |
La requête secondaire renvoie les résultats suivants :
| Catégorie de produits | Nom de la marque du produit | Nombre d'articles dans l'inventaire |
|---|---|---|
| Actif | Marque 1 | 223 |
| Robes | Marque 2 | 80 |
| Robes | Marque 3 | 3 |
| Jean | Marque 3 | 8 |
| Jean | Marque 2 | 19 |
La requête de résultats joints, qui fusionne sur le champ Catégorie de produits, renvoie les résultats suivants :
| Catégorie de produits | Service des produits | Nom de la marque du produit | Nombre de produits | Nombre d'articles dans l'inventaire |
|---|---|---|---|---|
| Actif | Adultes | Marque 1 | 545 | 223 |
| Actif | Kids | Marque 1 | 522 | 223 |
| Robes | Adultes | Marque 2 | 878 | 80 |
| Robes | Adultes | Marque 3 | 878 | 3 |
| Tenues de soirée | Adultes | ∅ | 349 | ∅ |
Si vous changez de requête primaire dans ce cas, vous aurez toujours deux lignes Dresses, car la nouvelle requête primaire désignée comporte deux lignes pour Dresses. Lorsque vous joignez des requêtes, les résultats peuvent comporter plus de lignes que la requête primaire, mais jamais moins.
Requêtes de fusion dans la base de données
Par défaut, les requêtes jointes sont traitées dans la mémoire de Looker. Par conséquent, chaque requête est limitée à 5 000 lignes pouvant être jointes. Si votre administrateur Looker a activé la fonctionnalité Labs Looker Requêtes de fusion dans la base de données, la jointure entre deux requêtes sur la même connexion BigQuery est effectuée dans la base de données BigQuery elle-même. L'exécution de la jointure dans la base de données améliore les performances et permet de joindre un nombre illimité de lignes.
De plus, lorsque vous créez chacune des requêtes d'exploration pour un résultat fusionné, l'interface utilisateur de Looker contient un champ Limite de lignes. Looker utilise le champ Limite de lignes de différentes manières, selon la façon dont la requête de résultat fusionné est traitée :
- Pour une requête jointe calculée dans la mémoire de Looker, Looker récupère le nombre de lignes spécifié dans le champ Limite de lignes pour chaque requête et joint ces données pour créer le résultat joint.
- Pour une requête fusionnée dans la base de données, Looker ignore les valeurs de limite de lignes pour chacune des requêtes sources et joint les ensembles de données complets pour chaque requête source.
Si Looker est en mesure d'effectuer une jointure dans la base de données pour votre requête fusionnée, une bannière s'affiche pour indiquer que les requêtes sont exécutées dans votre base de données et que Looker omet les limites de lignes de chacune des requêtes sources.
Ensuite, dans la table de résultats d'une requête fusionnée dans la base de données, Looker affiche un champ Résultats fusionnés au lieu d'un champ Limite de lignes. Le champ Résultats fusionnés limite les lignes affichées dans le tableau des résultats, et non les lignes traitées, car les requêtes de résultats fusionnés dans la base de données n'ont pas de limite quant au nombre de lignes pouvant être traitées.
Requêtes de jointure
Pour joindre les résultats de plusieurs requêtes, procédez comme suit :
- Créez la première requête source, appelée requête primaire.
- Ajouter une requête source secondaire.
- (Facultatif) Configurez des règles de jointure pour la requête jointe.
- (Facultatif) Visualisez la requête jointe.
- Une fois la requête jointe créée, enregistrez-la ou partagez-la.
- Modifiez éventuellement la requête jointe.
Créer la requête primaire
Pour joindre les résultats de plusieurs requêtes, commencez par préparer la requête primaire en sélectionnant une exploration dans le menu Explorer, puis en sélectionnant les dimensions et les mesures qui vous intéressent dans le sélecteur de champs. Ne pivotez aucune dimension au cours de cette étape. Vous pouvez également sélectionner une présentation ou un tableau de bord, puis cliquer sur Explorer à partir d'ici dans la présentation ou sur une vignette du tableau de bord.
Vous pouvez maintenant commencer à fusionner les résultats. Toutefois, vous pouvez également affiner votre requête de l'une des manières facultatives suivantes :
- Ajoutez des filtres pour les données.
- Incluez des calculs de table pour créer des métriques ad hoc. Tous les calculs de table des requêtes sources sont affichés en tant que dimensions standards dans les résultats joints.
- Cliquez sur Exécuter pour afficher les résultats de votre requête primaire et tester vos filtres et calculs de table.
Ajout de la requête source secondaire…
Une fois que vous avez créé votre requête d'exploration principale, ajoutez une autre requête source en procédant comme suit :
- Dans le panneau Configurer de l'exploration, cliquez sur Fusionner les requêtes (joindre des données) pour ouvrir la page Joindre des données.
Dans la fenêtre Ajouter une jointure, choisissez la méthode que vous utiliserez pour ajouter une autre requête source :
- Créer une requête à partir d'une exploration : Looker affiche une liste d'explorations. Choisissez l'exploration que vous souhaitez utiliser comme requête source, puis cliquez sur Ajouter une requête. Looker affiche la page Configurer les champs joints. Sélectionnez les dimensions et les mesures de votre nouvelle requête, puis ajoutez des filtres ou des champs personnalisés. Ne pivotez aucune dimension dans la requête source. Pivotez plutôt les dimensions dans les résultats joints. Assurez-vous d'inclure au moins une dimension dont les valeurs correspondent exactement à une dimension de la requête primaire. Lorsque vous avez terminé de configurer votre nouvelle requête source, cliquez sur Enregistrer et continuer.
- Coller l'URL de la requête prédéfinie : dans le champ Ajouter l'URL de la requête prédéfinie, saisissez l'URL de la requête, du Look ou de la vignette de tableau de bord que vous souhaitez utiliser comme requête source, puis cliquez sur Ajouter une requête.
- Sélectionner un Look : Looker affiche une liste de Looks. Choisissez le Look que vous souhaitez utiliser comme requête source, puis cliquez sur Ajouter une requête.
- Sélectionner une vignette de tableau de bord : Looker affiche une liste de tableaux de bord. Choisissez un tableau de bord. Looker affiche alors la liste des vignettes qu'il contient. Sélectionnez une vignette, puis cliquez sur Ajouter une requête.
Configurer des règles de jointure
Pour joindre deux requêtes ou plus, Looker recherche dans celles-ci les dimensions dont les valeurs peuvent être mises en correspondance. Chaque requête ajoutée doit comporter au moins une dimension commune dont les valeurs peuvent correspondre exactement à une dimension de la requête primaire. Par exemple, si vous souhaitez ajouter des données client à une exploration des commandes, et que l'exploration des commandes et la requête client comportent toutes deux un champ ID client avec des valeurs correspondantes, vous pouvez utiliser le champ ID client pour joindre les requêtes. Cependant, si les deux requêtes possèdent une dimension Date, mais que l'une utilise le format "2017-10-01" et l'autre "October 2017", Looker ne peut pas utiliser cette dimension pour joindre les requêtes.
Une fois que vous avez sélectionné et configuré vos requêtes sources principale et supplémentaires, Looker sélectionne automatiquement les champs de jointure les plus adaptés et crée des règles de jointure dans la fenêtre Configurer les jointures de la page Joindre des données. La requête primaire et chaque règle de jointure s'affichent sous forme d'entrées distinctes sous Requêtes sources et règles de jointure.
Dans la section Requêtes sources et règles de jointure, vous pouvez modifier les règles de jointure de l'une des manières suivantes :
- Modifiez le champ de jointure de la requête primaire ou d'une requête source.
- Ajoutez des champs de jointure.
- Supprimez les champs de jointure.
- Définir une requête source comme requête primaire Lorsque vous changez de requête primaire, les résultats joints sont susceptibles de changer. Consultez Comprendre les résultats joints pour comprendre le rôle de la requête primaire.
- Ajoutez une requête source en cliquant sur Ajouter une jointure.
Configurer le style du graphique
Pour visualiser vos requêtes jointes, cliquez sur Sélectionner un graphique afin de choisir un type de visualisation. Vous pouvez également utiliser l'option Visualisation automatique pour laisser Gemini sélectionner une visualisation appropriée. Sélectionnez ensuite le style de graphique pour configurer les options de ce type de graphique.
Pour obtenir un guide complet de tous les paramètres de visualisation disponibles et des types de graphiques compatibles, consultez Configurer et modifier des visualisations.
Enregistrer ou partager la requête jointe
Une fois que vous avez créé votre requête de jointure, vous pouvez cliquer sur Enregistrer ou partager pour effectuer les actions suivantes :
- Enregistrer sur un nouveau tableau de bord : Looker affiche la fenêtre Enregistrer en tant que nouveau tableau de bord. Attribuez un titre au nouveau tableau de bord et sélectionnez le dossier dans lequel vous souhaitez l'enregistrer.
- Enregistrer dans un tableau de bord existant : Looker affiche la fenêtre Ajouter à un tableau de bord dans ce dossier. Saisissez un titre pour la nouvelle vignette du tableau de bord, puis sélectionnez le tableau de bord dans lequel vous souhaitez enregistrer la requête.
- Copier l'URL : Looker affiche la fenêtre Partager les URL, qui contient l'URL courte et l'URL étendue de la requête. Vous pouvez partager l'URL ou l'ajouter aux favoris de votre navigateur pour exécuter à nouveau la même requête jointe à l'avenir. Vous ne pouvez pas enregistrer les résultats joints en tant que Look.
Une fois que vous avez ajouté votre requête jointe à un tableau de bord, vous pouvez ajouter ou appliquer des filtres de tableau de bord à votre vignette de requête jointe, réorganiser la vignette, modifier la vignette ou ajouter de nouvelles vignettes à votre tableau de bord. Vous ne pouvez pas télécharger les données directement à partir d'une vignette basée sur des résultats joints, mais vous pouvez télécharger le tableau de bord au format PDF ou sous forme de collection de fichiers CSV.
Modifier la requête jointe
Une fois que vous avez créé votre requête de jointure, vous pouvez interagir avec les résultats et modifier la requête de la manière suivante sur la page Joindre des données :
- Examinez et triez les données, y compris en affichant le détail des données. Toutefois, si vous explorez la dimension utilisée pour joindre les deux explorations, Looker n'affiche que les champs d'exploration de l'exploration principale.
- Dans la fenêtre Configurer les jointures, sélectionnez Modifier la requête à côté de la requête principale pour ouvrir la table de données de la requête et apporter des modifications à l'aide du sélecteur de champs, par exemple en ajoutant ou en supprimant des champs, en ajoutant des calculs de table ou en modifiant les filtres de la requête source (notez que vous ne pouvez pas ajouter de filtre directement aux résultats joints). Vous pouvez également sélectionner Options à côté de la requête principale pour la renommer ou la supprimer.
- Dans la fenêtre Configurer les jointures, sélectionnez Modifier la requête à côté de la requête que vous souhaitez modifier dans la règle de jointure. Pour chaque requête source supplémentaire, vous pouvez également sélectionner Options et renommer ou supprimer la requête (si vous souhaitez ajouter de nouveau la requête dans les résultats joints après l'avoir supprimée, vous pouvez utiliser le bouton Retour de votre navigateur) ou faire de cette requête source la requête principale pour les requêtes jointes.
- Dans l'onglet Champs joints de la fenêtre Champs joints et style de graphique, pivotez un ou plusieurs champs de la requête jointe et ajoutez des calculs de table. Notez que les calculs de table des requêtes sources sont affichés en tant que dimensions standards dans les résultats fusionnés.
- Dans l'onglet Style de graphique de la fenêtre Champs joints et style de graphique, modifiez les paramètres de la visualisation de la requête jointe.
- Utilisez le bouton bascule Totaux pour ajouter ou supprimer des totaux de la requête jointe. Looker calcule les totaux de chacune des requêtes de composant et utilise ces totaux dans les résultats joints. Par conséquent, les totaux peuvent sembler trop élevés, car ce que vous voyez sont des totaux calculés avant que les résultats ne soient joints. Pour afficher toujours les données les plus récentes, vous pouvez aligner les filtres sur chaque requête.
- Cliquez sur Modifier le graphique pour sélectionner une autre visualisation pour votre requête jointe.
Après avoir apporté des modifications, vous pouvez afficher les résultats de la requête jointe mise à jour en cliquant sur Exécuter pour mettre à jour.
Modifier une vignette de requête de jointure dans un tableau de bord
Pour modifier une vignette de requête de jointure sur un tableau de bord, procédez comme suit :
- Mettez le tableau de bord en mode Édition.
- Sélectionnez Modifier la requête fusionnée sur la vignette.
- Looker ouvre la page Joindre des données directement dans le canevas de modification du tableau de bord.
- Apportez vos modifications à la requête primaire, aux requêtes sources supplémentaires, aux règles de jointure ou à la visualisation.
- Sélectionnez Enregistrer pour mettre à jour les paramètres des requêtes jointes, puis sélectionnez Enregistrer pour mettre à jour la vignette sur le tableau de bord.
Fusionner des requêtes dans des Looks, des tableaux de bord et des explorations intégrés
Vous pouvez joindre des requêtes dans des Looks, tableaux de bord et explorations intégrés si vous disposez des autorisations appropriées :
- Pour joindre la requête d'une présentation intégrée ou d'une vignette de tableau de bord intégrée à une autre requête, ouvrez l'exploration à partir de la présentation ou de la vignette de tableau de bord en cliquant sur Explorer à partir d'ici, puis suivez les étapes pour joindre des requêtes.
- Dans une exploration intégrée, cliquez sur Fusionner les requêtes (joindre des données) dans le panneau Configurer, puis suivez les étapes pour joindre des requêtes.
Remarques
- Tous les champs de la requête primaire sont affichés dans les résultats joints, qui utilisent les noms de la requête primaire pour les champs. Si la requête primaire et une requête ajoutée utilisent des noms différents pour une dimension correspondante, seul le nom de la dimension de la requête primaire s'affiche dans les résultats.
Votre requête jointe peut avoir des limites de lignes :
- Par défaut, la jointure d'une requête fusionnée est traitée dans la mémoire de Looker. Par conséquent, chacune des requêtes fusionnées est limitée à 5 000 lignes pouvant être fusionnées (ou jusqu'à 50 000 lignes si une limite plus élevée est spécifiée par votre administrateur). Si vous joignez une requête qui renvoie plus de lignes que le nombre maximal autorisé, les résultats joints n'afficheront aucune des lignes qui dépassent cette limite.
- Si votre administrateur Looker a activé la fonctionnalité Labs Looker Requêtes de fusion dans la base de données et que vous fusionnez les résultats de deux requêtes sur la même connexion BigQuery, la jointure entre les deux requêtes est effectuée dans la base de données BigQuery elle-même. Les requêtes de fusion dans la base de données améliorent les performances et peuvent joindre un nombre illimité de lignes. Pour en savoir plus, consultez la section Requêtes de fusion dans la base de données de cette page.
Pour les requêtes jointes traitées dans la mémoire de Looker, la fusion de requêtes est une fonctionnalité de traitement post-requête qui, si elle n'est pas utilisée de manière réfléchie, peut surcharger les ressources de l'instance Looker et ralentir la réponse de votre instance Looker pour tous les utilisateurs. Si vous ne pouvez pas utiliser les requêtes de fusion dans la base de données, la bonne pratique consiste à définir des fonctions et une logique dans LookML, qui génère du code SQL traité par votre base de données. Pour en savoir plus sur l'optimisation des performances de Looker, consultez la page de bonnes pratiques Optimiser les performances de Looker.
Conclusion
Dans la mesure du possible, utilisez les données d'une seule exploration, car vos développeurs Looker ont soigneusement réfléchi à la manière dont les données de différentes tables de base de données doivent être combinées. Toutefois, lorsque cela est nécessaire, la jointure de requêtes est une technique puissante qui vous permet de combiner des données provenant de plusieurs explorations et bases de données.