Lightdash fournit trois outils pour naviguer dans les implémentations de métriques volumineuses : les groupes dans la barre latérale, le Metrics Catalog avec les catégories Spotlight, et les paramètres pour les valeurs qui changent selon les déploiements.
Groupes dans la barre latérale
Les groupes sont des sections repliables dans la barre latérale Explore. Les utilisateurs voient “Revenus” et “Opérations” plutôt qu’une liste alphabétique plate de 40 champs. Définir des groupes est un processus en deux étapes : déclarer les groupes sur le modèle, puis affecter les champs.
Déclarer group_details
Le bloc group_details au niveau du modèle définit les sections disponibles et leurs labels :
models: - name: mrt__sales__orders meta: group_details: revenue: label: "Revenue" description: "All revenue-related metrics and dimensions" operations: label: "Operations" description: "Fulfillment, shipping, and status fields" customer: label: "Customer"La description est optionnelle mais s’affiche comme infobulle quand les utilisateurs survolent le nom du groupe. Elle est utile quand les labels de groupe sont larges ou quand le périmètre d’un groupe nécessite des précisions.
Les groupes supportent jusqu’à deux niveaux d’imbrication. Un groupe de premier niveau peut contenir des sous-groupes, créant une hiérarchie dans la barre latérale. En pratique, deux niveaux suffisent — trois niveaux ou plus signalent que le modèle a trop grossi et devrait être divisé en modèles séparés.
Affecter des champs aux groupes
Une fois les groupes déclarés, affectez les dimensions et métriques individuelles avec la propriété groups :
meta: group_details: revenue: label: "Revenue" operations: label: "Operations" metrics: average_order_value: type: number sql: "${total_revenue} / NULLIF(${total_orders}, 0)" groups: ["revenue"] columns: - name: order__revenue meta: dimension: groups: ["revenue"] metrics: total_revenue: type: sum groups: ["revenue"] - name: order__status meta: dimension: groups: ["operations"] - name: order__created_at meta: dimension: groups: ["operations"] time_intervals: ['DAY', 'WEEK', 'MONTH', 'QUARTER', 'YEAR']Les champs sans affectation groups apparaissent en haut de la barre latérale, non groupés. Si la plupart des champs ont des groupes, les champs non groupés ressortent comme éléments non encore organisés — un signal utile pendant la mise en place.
La valeur groups est une liste, donc un champ peut apparaître dans plusieurs groupes. À utiliser avec parcimonie. Une métrique lifetime_value appartenant à la fois aux groupes “Revenus” et “Clients” est raisonnable. Sur-affecter des champs à plusieurs groupes nuit à l’objectif du regroupement.
Le Metrics Catalog et Spotlight
Le Metrics Catalog (livré en janvier 2025) offre une vue consultable de toutes vos métriques, tous modèles confondus. Les utilisateurs naviguent par nom, cherchent par mot-clé, et voient les descriptions et propriétaires sans avoir besoin de savoir sur quel modèle une métrique réside. C’est la porte d’entrée pour les utilisateurs qui savent ce qu’ils souhaitent mesurer mais ne savent pas où trouver la métrique.
Les catégories Spotlight ajoutent des labels avec code couleur aux modèles dans le Catalog, configurés dans lightdash.config.yml à la racine du projet :
spotlight: categories: - name: Revenue color: orange models: [mrt__sales__orders, mrt__sales__subscriptions] - name: Marketing color: blue models: [mrt__marketing__campaigns, mrt__marketing__ad_spend] - name: Product color: green models: [mrt__product__events, mrt__product__features] - name: Finance color: purple models: [mrt__finance__invoices, mrt__finance__expenses]Dans le Catalog, chaque modèle reçoit un badge coloré selon sa catégorie. Les utilisateurs qui “travaillent en marketing” peuvent filtrer sur le badge bleu et voir immédiatement les métriques de leur domaine sans faire défiler les modèles de revenus ou de produits.
Spotlight est configuré au niveau projet plutôt qu’au niveau modèle car les catégories coupent souvent à travers plusieurs modèles. Les revenus peuvent couvrir les ventes, les abonnements et les modèles de remboursements. Le marketing peut inclure les performances des campagnes et le trafic web. La configuration au niveau projet permet de définir ces regroupements inter-modèles sans modifier le YAML des modèles individuels.
Conventions de nommage pour la découvrabilité
Le Catalog n’est utile que si les noms et descriptions qui l’alimentent le sont. Les conventions de nommage cohérentes importent ici pour la même raison qu’elles importent dans MetricFlow : les utilisateurs cherchent, et la recherche ne fonctionne que si les noms suivent des patterns prévisibles.
Gardez les noms en snake_case : total_revenue, unique_customers, average_order_value. Utilisez label pour le nom d’affichage lisible avec les unités et le contexte qui seraient maladroits dans un identifiant de code :
metrics: total_revenue: type: sum label: "Total Revenue (EUR)" description: > Sum of order revenue after discounts, in euros. Includes completed and partially-refunded orders. Excludes cancelled and pending orders.Les descriptions dans le Catalog ne sont pas tronquées — rédigez-les pour être lues. Incluez ce que la métrique mesure, ce qu’elle exclut, et les limites ou mises en garde. Dans six mois, un nouvel analyste s’appuiera sur cette description pour comprendre si cette métrique est la bonne pour son analyse.
Paramètres
Les paramètres gèrent les valeurs qui changent selon les environnements ou déploiements. Un déploiement de développement peut utiliser un symbole de devise différent, un seuil de date différent pour les données “récentes”, ou un fuseau horaire par défaut différent de la production. Sans paramètres, ces valeurs sont codées en dur dans le YAML, et chaque changement d’environnement nécessite un chercher-remplacer dans plusieurs fichiers.
Les paramètres sont définis dans lightdash.config.yml et référencés dans le YAML du modèle :
parameters: currency_symbol: default: "€" revenue_threshold: default: "500" fiscal_year_start: default: "01-01"Référencez-les dans les définitions de métriques ou dimensions avec ${ld.parameters.parameter_name} :
metrics: total_revenue: type: sum label: "${ld.parameters.currency_symbol} Total Revenue" format: '[${ld.parameters.currency_symbol}]#,##0.00' high_value_orders: type: count_distinct filters: - field: order__revenue operator: greater_than value: "${ld.parameters.revenue_threshold}"Les paramètres sont résolus au moment du déploiement, pas de la requête — ils conviennent donc à la configuration spécifique à l’environnement, mais pas aux valeurs spécifiques à l’utilisateur ou à la requête. Pour le filtrage au niveau ligne basé sur l’utilisateur courant, la fonctionnalité d’attributs utilisateur de Lightdash gère cela séparément.
Adoption progressive
Les groupes, Spotlight et les paramètres adressent des problèmes de scalabilité distincts et peuvent être adoptés indépendamment :
- Groupes : utiles à partir d’environ 20 champs sur un seul modèle, quand la barre latérale devient difficile à naviguer.
- Spotlight : utile avec plus de cinq ou six modèles visibles dans la vue Explore.
- Paramètres : nécessaires quand plusieurs environnements de déploiement requièrent des valeurs codées différentes dans les fichiers YAML.