Ces bonnes pratiques reflètent les recommandations partagées par une équipe interfonctionnelle de chercheurs expérimentés. Ces insights sont issus de nos années d'expérience auprès des clients Looker, de l'implémentation à 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 du 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
Les 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 un objet du modèle de données physiques. Toutes les définitions ultérieures qui doivent faire référence à cet objet doivent 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 à partir 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}
lorsque vous faites référence à des dimensions ou des mesures qui ont déjà été définies dans le langage LookML. Si vous modifiez le nom d'une colonne, vous n'avez qu'à le mettre à jour dans le paramètre sql
de la dimension ou des mesures de base. Cette modification sera ensuite 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 devez 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 en savoir plus sur les utilisations des opérateurs de substitution, consultez la page de documentation Intégration de SQL et 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 blocs de construction, 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 de la communauté Utiliser des extensions pour définir des jointures.
Assurez la cohérence entre les explorations en évitant de répéter le code à plusieurs endroits. Pour en savoir plus, consultez le post de la communauté Looker sur l'évitement des 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 dans les différents modèles si nécessaire. 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 disposiez d'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 valeurs personnalisées 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éfinissez des consignes 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 les exemples de consignes de développement LookML pour obtenir un aperçu d'un exemple de liste de consignes de développement. Voici quelques exemples de consignes courantes:
- Organiser clairement les fichiers LookML pour 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