Ces bonnes pratiques reflètent les recommandations partagées par une équipe interfonctionnelle de chercheurs expérimentés. Ces informations sont le fruit d'années d'expérience avec les clients de Looker, de la mise en œuvre à la réussite à long terme. Ces pratiques sont conçues pour s'appliquer à la plupart des utilisateurs et des situations. Toutefois, comme toujours, veuillez faire preuve de bon sens lorsque vous implémentez l'une des suggestions de cette page.
Cette page fournit des recommandations pour écrire un code LookML durable et facile à gérer. Ces recommandations sont décrites plus en détail dans les sections suivantes:
- Utiliser des opérateurs de substitution
- Définir des ensembles de champs
- Éviter de répéter le code
- Consolider des éléments tels que les calques de carte et les formats de valeur
- Créer des consignes de développement
Utiliser des opérateurs de substitution
Des opérateurs de substitution doivent être utilisés dans tous les fichiers LookML. Un modèle LookML ne doit avoir qu'un seul point de référence pour chaque objet du modèle de données physiques. Toute définition ultérieure devant faire référence à cet objet doit le faire en pointant vers l'objet LookML déjà défini.
Utilisez la syntaxe ${TABLE}.field_name
lorsque vous référencez la table de base de données sous-jacente, pour toutes les dimensions de base qui extraient des données directement des colonnes de base de données sous-jacentes. Si un schéma ou un nom de table change, un développeur peut mettre à jour le schéma ou le nom de la table au même endroit (dans le paramètre sql_table_name
) et le propager dans le reste du code.
Utilisez la syntaxe ${field_name}
pour faire référence à des dimensions ou des mesures déjà définies dans le code LookML. Si le nom d'une colonne change, cette modification ne doit être mise à jour que dans le paramètre sql
de la ou des mesures de base. Cette modification sera alors automatiquement appliquée à tous les autres champs qui font référence à la colonne. Par exemple, si le nom d'une colonne de votre base de données passe de usersid
à users_id
, vous devrez modifier la référence dans Looker. L'utilisation de ${field_name}
vous permet de ne mettre à jour qu'une seule ligne.
Lorsque plusieurs dimensions et mesures font référence à un champ LookML existant avec ${TABLE}.field_name
, de nombreuses modifications sont nécessaires. Prenons l'exemple des mesures this_week_count
et this_month_count
dans l'exemple de code LookML suivant:
dimension: usersid { type: number sql: ${TABLE}.usersid ;; # Change here } measure: this_week_count { type: count_distinct sql: ${TABLE}.usersid ;; # Change here filters: [created_date: "7 days"] } measure: this_month_count { type: count_distinct sql: ${TABLE}.usersid ;; # Change here filters: [created_date: "1 month"] }
Étant donné que this_week_count
et this_month_count
utilisent la syntaxe ${TABLE}.usersid
dans le paramètre sql
, vous devrez mettre à jour le paramètre sql
pour les trois champs.
Avec la référence ${field_name}
, une seule modification est nécessaire :
dimension: usersid { type: number sql: ${TABLE}.usersid ;; # Change here } measure: this_week_count { type: count_distinct sql: ${usersid} ;; #Using ${field_name} to reference the LookML field `usersid` filters: [created_date: "7 days"] } measure: this_month_count { type: count_distinct sql: ${usersid} ;; #Using ${field_name} to reference the LookML field `usersid` filters: [created_date: "1 month"] }
Pour découvrir d'autres utilisations des opérateurs de substitution, consultez la page de documentation Intégrer SQL et faire référence aux objets LookML.
Définir des ensembles de champs
Utilisez des ensembles pour gérer des listes de champs réutilisables dans le modèle. Toutes les listes de champs répétées, que ce soit avec le paramètre fields
ou dans des champs d'analyse détaillée, doivent être intégrées à des ensembles afin de créer un seul emplacement dans le modèle où cette liste de champs peut être mise à jour ou les références de champ modifiées. Pour en savoir plus sur les ensembles, consultez la page de documentation du paramètre set
.
Éviter de répéter le code
Considérez les objets LookML comme des éléments de base, et utilisez le paramètre extends
pour combiner des objets de différentes manières sans répéter le code. Pour en savoir plus et obtenir des exemples de réutilisation de code, consultez la page de documentation Réutiliser du code avec extends. Vous trouverez d'autres exemples sur les pages de documentation des paramètres extends
(pour les vues) et extends
(pour les explorations), ainsi que dans le post destiné à la communauté Utiliser les extensions pour définir des jointures.
Assurez la cohérence entre les explorations en évitant de répéter le code à plusieurs endroits. Pour découvrir d'autres façons de procéder, consultez le post de la communauté Looker expliquant comment éviter les incohérences entre les explorations.
Consolider des éléments tels que les calques de carte et les formats de valeur
Définissez des calques de carte personnalisés de manière centralisée dans un fichier LookML appelé map_layers.lkml
. Pour le créer, suivez la documentation de Looker sur les fichiers de projet. Ce fichier peut ensuite être inclus si nécessaire entre les modèles. Vous pouvez également ajouter des fichiers JSON directement au dépôt en faisant glisser et déposer des fichiers de données dans votre projet LookML, puis les référencer dans le modèle.
Par exemple, supposons que vous ayez un fichier de calques de carte, map_layers.base.lkml
, contenant le code LookML suivant:
map_layer: example_africa { file: "africa_file_name.json" property_key: "geounit" } map_layer: example_asia { file: "asia_file_name.json" property_key: "geounit" } map_layer: example_europe { file: "europe_file_name.json" property_key: "geounit" }
Vous pouvez inclure le fichier de calques de carte map_layers.base.lkml
dans n'importe quel modèle du projet en ajoutant le code LookML include: "map_layers.base.lkml"
au fichier de modèle souhaité.
Définissez les formats de valeur personnalisée de manière centralisée dans le modèle. Utilisez le paramètre named_value_format
pour définir des formats personnalisés dans le modèle, puis référencez-les à l'aide du paramètre value_format_name
dans les dimensions et les mesures.
Créer des consignes de développement
Définir des directives de développement pour faciliter le développement et la mise à l'échelle d'un modèle LookML. Consultez l'article de la communauté Looker sur des exemples de directives de développement LookML pour découvrir un exemple de liste de consignes de développement. Les consignes les plus courantes incluent les exigences suivantes:
- Organisation claire des fichiers LookML afin qu'ils soient cohérents et faciles à parcourir
- Utilisation de commentaires dans les vues et les modèles pour ajouter du contexte au code LookML écrit
- Créer de la documentation dans Looker à l'aide de fichiers Markdown