allow_approximate_optimization

Utilisation

view_name {
measure: nom_champ {
allow_approximate_optimization: oui
}
}
Hiérarchie
allow_approximate_optimization
Types de champs possibles
Mesurer

Valeur par défaut
no

Acceptation
Valeur booléenne (oui ou non)

Définition

Pour les dialectes compatibles avec les sketches HyperLogLog, Looker peut se servir de l'algorithme HyperLogLog pour estimer le nombre approximatif de tables agrégées.

L'instruction allow_approximate_optimization: yes permet à Looker de stocker les résumés HyperLogLog dans des tables agrégées, ce qui signifie que Looker peut utiliser des approximations pour des nombres distincts afin d'améliorer la notoriété globale.

Consultez la section Dialecte compatible avec des nombres distincts avec la reconnaissance globale de cette page pour obtenir la liste des dialectes qui acceptent des nombres distincts pour les tableaux agrégés utilisant des résumés HyperLogLog.

En général, les nombres distincts ne peuvent pas être pris en charge avec la notoriété globale, car vous ne pouvez pas obtenir des données précises si vous essayez d'agréger des nombres distincts. Par exemple, si vous comptez les utilisateurs distincts d'un site Web, il est possible qu'un utilisateur ait accédé au site deux fois, à trois semaines d'intervalle. Si vous essayez d'appliquer un tableau cumulé hebdomadaire pour obtenir un nombre mensuel d'utilisateurs distincts sur votre site Web, cet utilisateur sera compté deux fois dans votre requête de comptage mensuel distinct, et les données seront incorrectes.

Pour contourner ce problème, vous pouvez créer une table agrégée correspondant exactement à une requête Explorer, comme décrit sur la page de documentation sur la notoriété globale. Lorsque la requête Explorer et la requête de table agrégée sont identiques, les mesures de décompte distinctes fournissent des données précises, qui peuvent donc être utilisées pour la notoriété globale.

L'autre option consiste à utiliser des approximations pour des nombres distincts. L'algorithme HyperLogLog présente une erreur potentielle d'environ 2 %. Le paramètre allow_approximate_optimization nécessite que vos développeurs Looker acceptent qu'ils puissent utiliser des données approximatives pour que la mesure puisse être calculée approximativement à partir de tableaux cumulés.

Avec la notoriété globale, il existe deux cas où des nombres distincts entrent en jeu:

  • Le premier cas concerne les mesures de type: count_distinct.
  • Le deuxième cas de figure concerne les mesures de type: count qui sont en fait affichées par Looker en tant que types de mesures count_distinct. Comme indiqué sur la page de documentation Notoriété globale, Looker affiche les mesures count sous la forme count_distinct pour éviter les erreurs de calcul ramifiées dans les explorations qui jointent plusieurs tables de base de données.

Dans les deux cas, si votre dialecte prend en charge les résumés HyperLogLog, vous pouvez ajouter l'instruction allow_approximate_optimization: yes aux mesures pour activer les valeurs approximatives. Vous pouvez ensuite inclure ces mesures dans des tableaux cumulés.

Même pour les mesures définies avec allow_approximate_optimization: yes, Looker renvoie des données exactes lorsque cela est possible. Par exemple, si les dimensions d'une requête "Explorer" correspondent parfaitement aux dimensions d'un tableau cumulé, Looker peut fournir des données exactes pour des nombres distincts, sans avoir à se rapprocher d'elles. Dans ce cas, vous verrez dans l'onglet SQL "Explorer" que des mesures de comptage distinctes sont utilisées pour la notoriété globale sans employer l'algorithme HyperLogLog.

Exemple

La mesure apx_unique_count affichée dans cet exemple est définie sur allow_approximate_optimization: yes, ce qui signifie qu'elle peut être utilisée dans un aggregate_table.

measure: apx_unique_count {
  type: count_distinct
    allow_approximate_optimization: yes   # default value is no
  sql: ${id} ;;
}

Prise en charge de dialectes pour des nombres distincts avec une notoriété globale

Looker peut utiliser des décomptes distincts pour la notoriété globale avec les dialectes de base de données compatibles avec les résumés HyperLogLog. Dans la dernière version de Looker, les dialectes SQL suivants sont pris en charge pour des nombres distincts avec la reconnaissance globale:

Consultez la documentation de votre dialecte SQL pour comprendre la rapidité et la précision de cette méthode.