Imaginez que de nombreux utilisateurs partagent une même exploration, mais que leurs cas d'utilisation diffèrent en fonction de leur équipe ou de leur région. Chaque utilisateur souhaite consulter uniquement les champs qui s'appliquent à ses cas d'utilisation spécifiques. Pour répondre aux besoins variés de vos utilisateurs, vous pouvez utiliser les perfectionnements de LookML pour personnaliser les vues et les explorations existantes sans avoir à modifier le code LookML d'origine. Vous pouvez ensuite inclure ces vues et explorations affinées dans des fichiers de modèle distincts et dédiés, personnalisés en fonction des besoins des besoins différents.
Cette page fournit un exemple d'utilisation des améliorations LookML pour personnaliser une vue de base unique et créer des explorations distinctes pour deux équipes différentes de votre entreprise. Elle comprend également des exemples de masquage et d'ajout de champs dans le contenu affiné.
Composants
- Vues LookML
- Explorations LookML
- Fichiers de modèle LookML
- Affinements de LookML
- Fichiers LookML génériques pour des suggestions de logements
- Le paramètre LookML
include
- Le paramètre LookML
hidden
(pour les champs) - Accès aux modèles spécifique pour les lecteurs (facultatif) configuré par un administrateur Looker
Prérequis
- Un projet LookML configuré
- Autorisations pour développer LookML
- Apprendre à développer des modèles dans LookML, y compris une connaissance de concepts LookML plus avancés tels que les améliorations et les extensions
Exemple: Création de plusieurs explorations personnalisées à partir de la même vue de base
Supposons que vous disposiez d'une exploration Ventes contenant des données sur les clients, les achats, la livraison et l'emplacement. Les équipes marketing et logistique de votre entreprise doivent toutes les deux explorer ces données, mais elles se concentrent chacune sur des domaines différents de l'exploration Ventes.
Pour faciliter l'exploration, vous devez afficher uniquement les champs utiles pour chaque équipe dans le sélecteur de champs d'exploration. Pour ce faire, vous pouvez définir deux affinements différents de l'exploration Ventes et de la vue sales
sur laquelle elle est basée. L'exploration de l'équipe marketing peut afficher des champs en lien avec les clients et les tendances d'achat, tandis que l'exploration de l'équipe logistique peut afficher des champs liés à la livraison et à la localisation. Vous pouvez également ajouter à chaque vue affinée de nouveaux champs spécifiques aux besoins de chaque équipe.
Actuellement, le sélecteur de champs de l'exploration Ventes affiche tous les champs de la vue Ventes:
Le sélecteur de champs affiche également tous les champs de la vue Users jointe:
Vous pouvez affiner la vue sales
pour créer deux explorations distinctes contenant uniquement les champs présentant un intérêt pour les équipes marketing et logistique. Pour ce faire, procédez comme suit:
Créez un fichier LookML, nommé
base_analysis.lkml
dans cet exemple, contenant le code LookML de l'exploration Sales (Ventes) basé sur la vuesales
et la vueusers
jointe. Comme vous souhaitez utiliser l'explorationsales
de base et ses vues correspondantes pour créer une exploration personnalisée pour chaque équipe, vous pouvez définir tous les champs et propriétés partagés dans un seul emplacement, par exemple dans un seul fichier.# base_analysis.lkml include: "views/sales.view.lkml" include: "views/inventory_items.view.lkml" include: "views/users.view.lkml" explore: sales { join: inventory_items { type: left_outer sql_on: ${sales.inventory_item_id} = ${inventory_items.id} ;; relationship: many_to_one } join: users { type: left_outer sql_on: ${sales.user_id} = ${users.id} ;; relationship: many_to_one } }
Créez deux fichiers distincts pour héberger les améliorations de l'exploration Ventes que vous définirez pour chaque équipe. Vous pouvez nommer les fichiers
marketing_analysis.lkml
etlogistics_analysis.lkml
. Le code LookML, illustré ci-dessous, affine l'exploration de basesales
comme défini dans le fichierbase_analysis.lkml
, présenté précédemment, pour ajouter l'étiquette Analyse des ventes pour l'équipe marketing dans un nouveau fichier appelémarketing_analysis.lkml
. L'instructioninclude: "/base/base_analysis.lkml"
rend le contenu du fichierbase_analysis.lkml
disponible pour référence dans le fichiermarketing_analysis.lkml
.# marketing_analysis.lkml include: "/base/base_analysis.lkml" explore: +sales { label: "Sales Analysis for Marketing Team" }
Créez un fichier de modèle distinct pour chaque équipe, par exemple
ecommerce_marketing.model
etecommerce_logistics.model
. En hébergeant les différentes améliorations dans des modèles dédiés distincts pour chaque équipe, vous pouvez affiner plusieurs fois le même ensemble de vues et d'explorations sans remplacer les personnalisations que vous avez effectuées pour le cas d'utilisation d'une équipe. Consultez la page de documentation sur les filtres LookML pour en savoir plus.Avec le paramètre
include
, incluezmarketing_analysis.lkml
dans le modèleecommerce_marketing.model
et incluezlogistics_analysis.lkml
dans le modèleecommerce_logistics.model
.Ajoutez des filtres supplémentaires aux fichiers
marketing_analysis.lkml
etlogistics_analysis.lkml
selon vos besoins. Par exemple, vous pouvez masquer les champs inutiles et ajouter de nouveaux champs aux explorations affinées de chaque équipe.
Vous pouvez éventuellement demander à un administrateur Looker de configurer l'accès au modèle pour chaque modèle dédié afin d'accorder à des équipes spécifiques un accès au niveau de l'exploration.
Masquage des champs inutiles des explorations affinées
Vous pouvez affiner la vue sales
comme suit dans le fichier marketing_analysis.lkml
pour masquer les groupes de dimensions Rendus, Expédié, Livré et Créé, ainsi que la dimension État, car ces champs ne sont pas utilisés par l'équipe marketing:
# marketing_analysis.lkml
include: "/base/base_analysis.lkml"
explore: +sales {
label: "Sales Analysis for Marketing Team"
}
view: +sales
dimension_group: returned {
hidden: yes
}
dimension_group: shipped {
hidden: yes
}
dimension_group: delivered {
hidden: yes
}
dimension_group: created {
hidden: yes
}
dimension: status {
hidden: yes
}
}
De même, vous pouvez utiliser le code LookML suivant dans le fichier logistics_analysis.lkml
pour masquer les champs dont l'équipe logistique n'a pas besoin (comme Profit, Sale price et Average Sale price):
# logistics_analysis.lkml
include: "/base/base_analysis.lkml"
explore: +sales {
label: "Sales Analysis for Logistics Team"
}
view: +sales {
dimension: profit {
hidden: yes
}
dimension: sale_price {
hidden: yes
}
measure: average_sale_price {
hidden: yes
}
}
Étant donné que l'équipe logistique n'a pas besoin de voir des informations personnelles sur les clients, telles que leur nom, leur âge ou leur adresse e-mail, vous pouvez également ajouter un filtre pour la vue users
jointe dans le fichier logistics_analysis.lkml
afin de masquer ces champs de l'exploration:
view: +users {
dimension: age {
hidden: yes
}
dimension: email {
hidden: yes
}
dimension: first_name {
hidden: yes
}
dimension: last_name {
hidden: yes
}
dimension_group: created {
hidden: yes
}
}
Ajout de nouveaux champs aux explorations affinées
Vous pouvez également créer des champs qui intéressent l'équipe marketing dans la vue sales
affinée. Par exemple, vous pouvez ajouter les champs Prix de vente moyen, Prix soldé total et Dépenses moyennes par utilisateur dans la vue sales
améliorée:
Vous pouvez utiliser le code LookML suivant pour ajouter ces champs à la vue sales
affinée du fichier marketing_analysis.lkml
:
# marketing_analysis.lkml
view: +sales {
measure: average_sale_price {
type: average
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [detail*]
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [detail*]
}
measure: average_spend_per_user {
type: number
value_format_name: usd
sql: 1.0 * ${total_sale_price} / NULLIF(${users.count},0) ;;
drill_fields: [detail*]
}
}
L'exploration marketing que vous avez créée contiendra les nouveaux champs de la vue Ventes, en plus de ceux de la vue jointe Utilisateurs. Les groupes de dimensions Renvoyés, Expédié, Livré et Créé, ainsi que la dimension État, sont masqués, car l'équipe marketing n'en a pas besoin.
De même, pour l'équipe chargée de la logistique, vous pouvez créer des champs qui leur seront utiles, tels que Shipping Time Buckets (Segments de délai de livraison) et Average Shipping Time (Délai de livraison moyen) :
Vous pouvez utiliser le code LookML suivant pour ajouter ces champs à la vue sales
affinée du fichier logistics_analysis.lkml
:
# logistics_analysis.lkml
view: +sales {
dimension: shipping_time_buckets {
case: {
when: {
sql: ${shipping_time} <= 7 ;;
label: "One Week"
}
when: {
sql: ${shipping_time} > 7 AND ${shipping_time} <= 14 ;;
label: "Two Weeks"
}
when: {
sql: ${shipping_time} > 14 ;;
label: "Over Two Weeks"
}
else: "Note Shipped"
}
}
measure: average_shipping_time {
type: average
value_format_name: decimal_4
sql: ${shipping_time} ;;
}
}
L'exploration logistique que vous avez créée contiendra les nouveaux champs de la vue Ventes, en plus de ceux de la vue associée Utilisateurs. Les champs Bénéfice, Prix soldé et Prix de vente moyen de la vue Ventes, ainsi que les champs Âge, Adresse e-mail, Prénom, Nom et Créé de l'exploration Utilisateurs sont masqués, car l'équipe logistique n'en a pas besoin.
Chaque équipe dispose désormais d'une exploration mieux adaptée à ses besoins spécifiques. Bien que cette approche implique un peu plus de configuration en amont, en conservant les données principales au même endroit, vous pouvez les rendre plus faciles à trouver et à utiliser.