Pourquoi des valeurs nulles apparaissent-elles dans ma requête de résultats fusionnés secondaires ?

Les résultats fusionnés sont une fonctionnalité pratique qui permet de combiner rapidement les données de différentes explorations sans avoir à développer de code LookML. Les résultats fusionnés effectuent en fait une jointure gauche entre la requête principale et les requêtes secondaires. Cela signifie que les noms de champ, les valeurs correspondantes et le tableau des résultats finaux dépendent de la façon dont les données des requêtes secondaires correspondent à la principale.

Cela peut entraîner des résultats inattendus lorsque vous effectuez des fusions entre des explorations. La documentation sur les résultats fusionnés aborde certaines de ces conditions,par exemple:

Toutefois, que faire lorsque vous vous attendez à ce qu'une valeur d'une requête secondaire corresponde à une valeur de la requête principale, mais que le résultat final affiche des valeurs nulles ?

Cette page explique comment résoudre ce problème inattendu.

Exemple d'utilisation

L'exemple de cas d'utilisation suivant est basé sur un exemple d'ensemble de données d'e-commerce contenant des informations sur les utilisateurs et les commandes. Dans cet exemple, vous souhaitez fusionner une requête (nombre d'utilisateurs par ville (Nombre d'utilisateurs groupé par Ville)) avec une requête secondaire (nombre de commandes (Nombre de commandes) groupé par Ville et État) :

Requête principale

La requête principale est Nombre d'utilisateurs regroupée par Ville des utilisateurs:

Tableau de données d'exploration des résultats fusionnés affichant les résultats de la requête principale.

Requête secondaire

La requête secondaire est Nombre de commandes regroupé par Ville des utilisateurs et État des utilisateurs:

Tableau de données des résultats fusionnés affichant les résultats de la requête secondaire.

La règle de fusion est définie pour fusionner les deux requêtes par Ville des utilisateurs, le champ commun aux deux requêtes. Vous connaissez le jeu de données et le comportement attendu des résultats fusionnés, comme expliqué dans la documentation précédemment référencée. Vous savez donc que, dans chaque ligne, chaque ville doit être associée à un état et à un nombre d'utilisateurs. Vous vous attendez à ce que les résultats fusionnés correspondent à toutes les valeurs et n'affichent aucune valeur nulle.

Toutefois, il y a des valeurs nulles dans les résultats. Plus de la moitié des villes ne sont associées à aucun État ni à aucun nombre de commandes:

Tableau de données des résultats fusionnés affichant des valeurs nulles pour les champs de requête secondaire.

Solutions

Pas de panique. Si vous êtes certain qu'il existe des valeurs correspondantes dans vos données (essayez d'exécuter une requête distincte pour le confirmer), plusieurs solutions s'offrent à vous pour remédier à ce problème:

  • Triez chaque requête source de la même manière.
  • Augmentez la limite de lignes de la requête source.

Trier chaque requête source de la même manière

Les résultats fusionnés sont basés sur des explorations, qui sont limitées à 500 lignes par défaut. Il arrive donc que les résultats de la requête que vous fusionnez ne soient pas inclus dans le résultat final.

Pour résoudre ce problème, vous pouvez modifier et trier vos requêtes sources individuelles afin qu'elles correspondent mieux les unes aux autres. 

Dans l'exemple de cas d'utilisation, la requête principale est triée par ordre croissant de Ville des utilisateurs. La requête secondaire ne l'est pas. Pour mieux faire correspondre les résultats des deux requêtes, vous pouvez trier la requête secondaire de la même manière que la requête principale (dans ce cas, par ordre croissant de Ville des utilisateurs).

Si vous triez la requête secondaire de la même manière que la requête principale, les résultats de la fusion finale seront plus précis:

Tableau de données des résultats fusionnés affichant les valeurs non nulles pour les champs de requête primaire et secondaire.

Augmenter la limite de lignes de la requête source

Comme pour la première solution décrite précédemment, les valeurs nulles inattendues peuvent être causées par les limites de lignes définies dans les requêtes sources. Plus précisément, dans ce cas, la requête secondaire (limitée par les 500 lignes par défaut) ne contient pas suffisamment de lignes pour correspondre à toutes les lignes générées par la requête principale. Par conséquent, des résultats nuls s'affichent dans la fusion finale.

Pour augmenter le nombre de lignes de la requête secondaire afin qu'il corresponde à celui de la requête principale, vous pouvez augmenter la limite de lignes de la requête secondaire. Cela permet d'obtenir plus de lignes possibles à faire correspondre à la requête principale et moins de valeurs nulles dans les colonnes de la requête secondaire: 

Tableau de données des résultats fusionnés affichant les valeurs non nulles pour les champs de requête primaire et secondaire.

Résumé

En cas de résultats de fusion inattendus, vous pouvez suivre les étapes ci-dessous pour résoudre le problème:

  1. Sélectionnez l'option Effacer le cache et actualiser dans le menu en forme de roue dentée d'Explorer pour vous assurer que la requête récupère les résultats les plus récents.
  2. Vérifiez qu'il existe des valeurs correspondantes entre les requêtes sources pour lesquelles des valeurs nulles sont affichées, comme indiqué dans la section Que se passe-t-il si une requête ne comporte pas de valeur de données correspondante ? de la documentation sur les résultats fusionnés.
  3. Triez les requêtes sources pour mieux les faire correspondre.
  4. Augmentez la limite de lignes des requêtes sources au-delà de la valeur par défaut pour afficher plus de lignes pouvant être mises en correspondance et fusionnées.
  5. Si aucune des solutions présentées ici ne résout le problème, codez en dur la logique de jointure dans LookML pour obtenir un résultat plus précis, si possible.