Syntaxe des expressions de dimension

Dernière mise à jour : 2022-10-05
  • Créé pour :
  • User
    Admin
IMPORTANT

En savoir plus sur le Data Workbench Annonce de fin de vie.

Les expressions de Dimension ne sont jamais utilisées seules, mais peuvent être utilisées partout où une dimension est appelée dans une mesure ou une expression de filtre.

  1. Les mots soulignés doivent être littéralement saisis dans le texte de l’expression.
  2. Le formulaire {TEXT}? représente le texte facultatif.
  3. Le formulaire {TEXT}* représente le texte qui peut se produire zéro ou plusieurs fois.
  4. Le formulaire {A | B | C |...} représente le texte qui comprend exactement l’une des options données, comme A, B ou C…
  5. Le formulaire [A,B) représente une plage de nombres, de A à B, mais pas.

Identifiant

Un identifiant fait référence à une dimension nommée. Pour connaître les règles régissant les identifiants légaux, voir Syntaxe des identificateurs .

Exemple : Sessions[ Session_Number = "1" ] est le nombre de sessions dont le numéro de session est "1". Le numéro de session est une dimension nommée référencée par l’identifiant.

(Dimension)

Le résultat de (Dimension) est le même que le résultat de la Dimension. Les parenthèses spécifient l’ordre des opérations dans une expression.

Exemple : Sessions[ (Page) = "/home" ] est le nombre de sessions qui visitent la page "/home".

Dim par niveau

Définit une dimension qui contient les mêmes éléments que la dimension Dim, mais qui est liée à d’autres dimensions au niveau de la dimension.

En particulier, un élément de la nouvelle dimension se rapporte aux mêmes éléments de niveau que le même élément de dimension et se rapporte aux éléments de toute autre dimension qui se rapportent à l’un de ces éléments de niveau.

Exemple : Sessions[ (Page par visiteur)="/home?lang=fr" ] est le nombre de sessions de visiteurs qui ont visité la page "/home".

shift(Dim,Level,Group,N)

Définit une dimension qui contient les mêmes éléments que la dimension Dim. L’élément eth du niveau de dimension se rapporte au même élément de la nouvelle dimension que l’élément Dim associé à l’élément e+Nth du niveau, à condition que les éléments eth et e+Nth du niveau se rapportent au même élément du groupe de dimensions.

Exemple : Page_Views[ shift(Page, Page_View, Session, 1)="/home?lang=fr" ] est le nombre de pages vues pour lesquelles la prochaine page vue dans la même session est "/home".

next(Dim,Level,Group,N)

Similaire à shift (Dim, Level, Group, N), sauf que si la dimension contient des valeurs vides, elles sont ignorées.

segment(Level {,String->Filter}*)

Définit une dimension qui classe les éléments du niveau d’après une liste de filtres. Les éléments de la nouvelle dimension sont les chaînes données en tant qu’arguments. Chaque élément du niveau correspond au premier élément de la dimension de segment dont le filtre admet l’élément du niveau. Ceci est similaire à la visualisation de segment.

Exemple : segment(Visiteur, "Visiteurs uniques" -> Visitor_Sessions = 1, "Visiteurs très fidèles" -> Visitor_Sessions > 10, "Tous les autres" -> True) crée une dimension qui classe les visiteurs en trois groupes — Les visiteurs une fois sont ceux qui n’ont qu’une seule session, les visiteurs très fidèles sont ceux qui ont plus de dix sessions et tous les autres visiteurs ont une valeur "Tous les autres."

bucket(Level, Metric, Count, Format {, Start {, Size}? }?)

Définit une dimension dont les éléments sont des plages de nombres (de taille fixe, par exemple, [0-9], [10-19],...). Les éléments de niveau sont associés à l’élément de la plage dim du compartiment dont la plage contient la valeur de Mesure pour cet élément de niveau. Format est la chaîne de format printf utilisée pour formater les éléments de Mesure.

Exemple : Si Page_Duration_Minutes est une dimension de niveau Page vue qui représente le nombre de minutes passées sur chaque page, alors bucket(Session, sum(Page_Duration_Minutes, Page_View), 100, "%0.0f minutes", 0, 5) est une dimension de niveau session qui représente le nombre de minutes passées dans chaque session ; ses éléments sont des intervalles de 5 minutes {[0-5), [5-10),...,[495-500)}.

Start est la valeur de départ du premier intervalle (par défaut : 0) et Taille est la taille de l’intervalle (par défaut : 1).

prefix(Level {,ElementName->(Prefix{,Prefix}* )}* )

Définit une dimension dont les éléments sont les chaînes ElementName données et sont associés aux jeux correspondants de chaînes Prefix. Les éléments de niveau sont associés à l’élément du préfixe dim, associé au préfixe le plus long associé au nom de l’élément de niveau donné. Les préfixes se terminant par le caractère spécial "$" doivent correspondre exactement.

Par exemple, prefix(URI, "Products" -> ("/products/"), "Services" -> ("/services/", "/products/service/"), "Warranties" -> ("/products/warranty.html$", "/services/warranty.html$", "All Else" -> ("/") crée une dimension qui classe les URI dans les quatre catégories répertoriées. L’effet sur différentes pages est le suivant :

/products/warranty.html entre dans la garantie, car elle correspond exactement au préfixe /products/warranty.html$.

/products/cars/specialcar.html Va dans les produits, car il correspond au préfixe /products/ et ne correspond plus au préfixe

/products/service/something.html accède à Services, car il correspond au préfixe /products/service/ qui est plus long que le préfixe /products/ .

/companyinfo/aboutus.html entre dans la catégorie "Tous les autres", puisque le seul préfixe correspondant est "/".

latence(Level, Clip, Dim, Filter, MaxBefore, MaxAfter, FormatString)

Voir Création de Dimensions de latence .

cartesian_product(Separator {,Dim}*)

Définit une dimension dont les éléments sont toutes les combinaisons ("le produit cartésien") des éléments des dimensions données. Le nom de chaque élément est constitué de la concaténation des éléments correspondants dans les dimensions d’entrée, séparés par la chaîne du Séparateur donnée.

Par exemple, si la dimension D1 contient des éléments {"a", "b"} et que la dimension D2 contient les éléments {"x", "y"}, alors produit cartésien("-", D1, D2) contient les éléments {"a-x", "a-y", "b-x", "b-y"}.

Notez que, en interne, chacune des dimensions d’entrée est traitée comme si le nombre de ses éléments était la puissance supérieure suivante de deux. Cela entraîne la présence d’éléments factices dans le produit cartésien. Lors de l’utilisation de l’API du Data Workbench, selon le format de sortie, ces éléments peuvent être omis ou affichés sous la forme "#nnn", où nn est l’ordinal de l’élément (et doit être ignoré par le client).

Par exemple, dans l’exemple ci-dessus, si D2 avait les trois éléments {"x", "y", "z"}, il serait traité comme s’il avait quatre éléments, et le produit cartésien aurait les éléments {"a-x", "a-y", "a-z", "#3", "b-x", "b-y", "b-z", "#7"}.

Si aucune dimension n’est donnée, le résultat est une dimension avec un élément, "#0", qui équivaut à la dimension Aucun .

le plus proche_countable(Dim)

Fait référence à une dimension déjà existante : l’ancêtre dénombrable le plus proche de Dim dans le schéma. Par exemple, le compte à rebours le plus proche (URI) est identique à Page_View.

normalized(Dim,Count)

Définit une dimension normalisée à partir de la dimension Denormal, avec jusqu’à des éléments Comptage .

last_n(Dim, TimeMetric, FormatString, Count, Offset, TrimToData {, WeekStart}?)

Définit une dimension qui comporte un sous-ensemble des éléments de la dimension Dim, dont les éléments représentent des tranches de temps, par exemple, jours, semaines ou années.

Le sous-ensemble est une plage autour d’une heure spécifique, la valeur de la mesure constante TimeMetric, qui est interprétée comme une valeur temporelle en secondes depuis minuit UTC le 1er janvier 1970. La plage comporte des éléments Count, dont le dernier est des éléments Offset après l’élément de la dimension donnée dont le nom est le résultat du formatage de la valeur de la mesure avec la chaîne FormatString donnée. FormatString utilise les mêmes échappement % que la fonction de bibliothèque C standard strftime.

Si la valeur de trimToData est true, tous les éléments situés au début de la dimension obtenue, qui se trouveraient avant le début de la dimension Dim, sont supprimés. S’il est défini sur false, le nombre exact d’éléments spécifié par le paramètre Count sera toujours présent. Notez qu’il peut toujours y avoir des éléments à la fin de la dimension résultante qui ne sont pas réellement dans Dim.

Le WeekStart facultatif, s’il est spécifié, doit être un des { "Sun", "Lun", "Tue", "Wed", "Thu", "Fri", "Sat" }. Elle modifie TimeMetric en la faisant reculer à l’occurrence la plus récente de ce jour de semaine.

Exemple : Si Semaine comporte les éléments { "10/03/10", "10/10/10", ..., "12/12/10" } et que la mesure intégrée En tant que de a la valeur 1292348109 (représentant une heure à la mi-décembre 14 décembre 2010), alors last n(Week, As_Of, "%m/%d/%y", 4, 0, false, "Sun") définit la dimension avec des éléments { "12/12/10", "12/19/10", ", "12/23/10", "12/30/10" }.

Exemple 2 : Si la dimension Semaine ne contient que les éléments {"12/19/10", "12/26/10", ..., "01/30/11"} et que la mesure À partir de est comme ci-dessus, alors la dernière n(Semaine, As_Of, "%m/%d/%y", 4, 0, true, "Sun") donne une dimension avec des éléments {"12/19/10", "12/23/10", "12/30/10"}.

days_of_previous_months(Dim, TimeMetric, FormatString, nMonths, includeThisMonth, TrimToData)

Définit une dimension qui comporte un sous-ensemble des éléments de Dim, dont les éléments représentent des jours. Le sous-ensemble est une plage autour d’une heure spécifique, la valeur de la mesure constante TimeMetric, qui est interprétée comme une valeur temporelle en secondes depuis minuit UTC le 1er janvier 1970. La plage inclura les éléments correspondant à chaque jour dans les n mois précédant l'heure indiquée. Si includeThisMonth a la valeur true, la plage inclut également chaque jour du mois qui contient l’heure spécifiée.

FormatString spécifie la mise en forme des éléments de Dim, en utilisant des échappement "%" comme dans la fonction de bibliothèque C standard strftime.

Si la valeur de trimToData est true, tous les éléments situés au début de la dimension obtenue, qui se trouveraient avant le début de la dimension Dim, sont supprimés. S’il est défini sur false, le nombre exact d’éléments spécifié par le paramètre Count sera toujours présent. Notez qu’il peut toujours y avoir des éléments à la fin de la dimension résultante qui ne sont pas réellement dans Dim.

Exemple : Si Day comporte les éléments { "01/01/10", "01/02/10", ..., "12/31/10" } et que la mesure intégrée "A partir de" a la valeur 1292348109 (représentant une heure à la mi-décembre 14 décembre 2010), alors les jours des mois précédents (Jour, Comme_de, "%m/%d/%y", 2, false, false) auront des éléments { "10/01/10", "10/02/10", . ., "11/30/10" }.

days_of_current_month(Dim, TimeMetric, FormatString, allMonth, trimToData)

Similaire aux jours des mois précédents, à la différence que les éléments ne correspondent qu’aux jours du même mois, à l’heure spécifiée par TimeMetric. Si allMonth est défini sur true, un élément sera présent pour chaque jour du mois approprié. sinon, seuls les jours à partir du premier du mois approprié jusqu’au jour contenant l’heure spécifiée font partie de la dimension.

days_of_future_months(Dim, TimeMetric, FormatString, nMonths, includeThisMonth, TrimToData)

Similaire aux jours des mois précédents, sauf que les éléments correspondent aux jours des mois qui suivent, plutôt qu’avant, le mois contenant l’heure spécifiée par la mesure Temps.

hours_of_day(Dim, Metric, TimeFormatString, nDaysForward, TrimData)

Définit une dimension qui comporte un sous-ensemble des éléments de Dim, dont les éléments représentent les heures. Le sous-ensemble est une plage autour d’une heure spécifique, la valeur de la mesure constante TimeMetric, qui est interprétée comme une valeur temporelle en secondes depuis minuit UTC le 1er janvier 1970. La plage inclut les éléments correspondant à chaque heure du jour nDaysForward après le jour contenant l’heure spécifiée par la mesure de temps.

FormatString spécifie la mise en forme des éléments de Dim, en utilisant des échappement "%" comme dans la fonction de bibliothèque C standard strftime. La chaîne de format doit toujours générer une chaîne représentant minuit au début du jour de l’heure transmise.

Si la valeur de trimToData est true, tous les éléments situés au début de la dimension obtenue, qui se trouveraient avant le début de la dimension Dim, sont supprimés. S’il est défini sur false, le nombre exact d’éléments spécifié par le paramètre Count sera toujours présent. Notez qu’il peut toujours y avoir des éléments à la fin de la dimension résultante qui ne sont pas réellement dans Dim.

Exemple : Si l’heure comporte les éléments { "01/01/10 00:00", "01/01/10 01:00", ..., "12/31/10 23:00" }, et que la mesure intégrée "A partir de" a la valeur 1292348109 (représentant une heure à la mi-décembre 14 décembre 2010), alors heures de la journée (Heure, As_Of, "%x 00:0 0", 0, false) contient les éléments { "12/12/10 00:00", "12/12/10 01:00", ..., "12/12/10 23:00" }.

Sur cette page