Maximiser la réutilisation du code avec LookML DRY: définir des listes de champs réutilisables avec le paramètre "set"

Le paramètre LookML set est un moyen de rendre vos projets LookML plus efficaces et plus faciles à gérer. Le paramètre set vous permet de regrouper les champs qui peuvent être souvent répétés dans votre projet au sein du paramètre fields ou dans les champs d'analyse. Si vous utilisez un ensemble pour regrouper des champs répétés, vous créez un emplacement unique dans le modèle où ce groupe de champs peut être géré.

Cette page inclut les exemples suivants d'utilisation des ensembles LookML pour rendre vos projets LookML plus efficaces et plus faciles à gérer :

Composants

Prérequis

Exemple : Ajouter les mêmes champs d'analyse à plusieurs mesures

Supposons que vous souhaitiez que vos utilisateurs puissent afficher des informations plus détaillées sur les utilisateurs chaque fois qu'ils voient des métriques de vente dans les explorations, les looks ou les tableaux de bord. Ainsi, lorsqu'ils sélectionnent une valeur pour la mesure Nombre dans l'interface utilisateur Explorer, une requête s'ouvre sur les champs ID, Ville, État et Pays :

Si vous sélectionnez une valeur pour la mesure "Nombre", une requête s'ouvre sur les champs "ID", "Ville", "État" et "Pays".

Vous pouvez créer un ensemble appelé user_details qui inclut les champs id, city, state et country, puis les référencer dans plusieurs mesures pour permettre à vos utilisateurs d'analyser les données plus en détail :


set: user_details {
  fields: [id, city, state, country]
}

L'ensemble user_details peut être utilisé pour définir un champ d'analyse pour la mesure count :


measure: count {
  type: count
  drill_fields: [user_details*]
}

Dans cet exemple, la syntaxe [set_name*] est utilisée pour spécifier que les champs de user_details s'afficheront dans les résultats de la requête lorsque vous analyserez la mesure Nombre.

Vous pouvez ensuite réutiliser cet ensemble pour créer d'autres champs d'analyse. Par exemple, vous pouvez ajouter le code LookML drill_fields: [user_details*] aux mesures order_count, total_sale_price et average_sale_price :


measure: order_count {
  view_label: "Orders"
  type: count_distinct
  description: "Number of orders"
  sql: ${order_id} ;;
  drill_fields: [user_details*]

}

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

measure: average_sale_price {
  type: average
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

Comme pour la mesure Nombre, lorsqu'un utilisateur sélectionne une valeur pour Nombre de commandes, Prix de vente total ou Prix de vente moyen dans l'interface utilisateur Explorer, Looker ouvre une fenêtre contenant une requête sur les champs ID, Ville, État et Pays.

Si vous souhaitez modifier les champs d'analyse (en ajouter ou en supprimer, par exemple), il vous suffit de mettre à jour l'ensemble user_details.

Vous pouvez également faire référence à un ensemble dans le paramètre drill_fields d'une vue pour définir des champs d'analyse pour toutes les mesures de cette vue qui n'ont pas déjà de champs d'analyse spécifiés au niveau du champ.

Exemple : Inclure ou omettre un ensemble de champs dans une exploration

Supposons que vous souhaitiez simplifier le sélecteur de champs Explorer pour les utilisateurs en excluant les champs qui ne sont pas essentiels pour eux.

Par exemple, supposons que vous disposiez d'une vue users contenant des informations sur vos clients, y compris des champs pour ID, Prénom, Nom, Adresse e-mail et Âge, ainsi que des champs d'emplacement tels que Ville, État, Pays et Code postal. La vue users est jointe à l'exploration orders :

Le sélecteur de champs de la vue "Commandes" inclut tous les champs des vues "Commandes" et "Utilisateurs", y compris ceux que vous souhaitez omettre.

Que faire si vous souhaitez exclure les champs Prénom, Nom, Adresse e-mail, Âge et Genre de l'outil Explorer pour vos utilisateurs ? Vous pouvez créer un ensemble appelé user_info qui liste les champs à exclure de l'exploration Commandes :

L'exploration "Commandes sans données utilisateur" exclut les champs "Prénom", "Nom", "Adresse e-mail", "Âge" et "Genre" du sélecteur de champs d'exploration.

Le code LookML pour l'ensemble user_info se présente comme suit :


set: user_info {
  fields: [first_name, last_name, email, age, gender]
}

Pour définir une exploration Commandes avec le libellé Commandes sans données utilisateur, joignez la vue users à l'exploration orders. Ajoutez le code LookML fields: [ALL_FIELDS*, -users.user_info*] à l'exploration orders pour inclure tous les champs, à l'exception de ceux de l'ensemble user_info de la vue users :


explore: orders {
  fields: [ALL_FIELDS*, -users.user_info*]
  label: "Orders Without User Data"
  join: users {
    type: left_outer
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

Étant donné que l'ensemble user_details est exclu de l'exploration avec la syntaxe -users.user_details* dans le paramètre fields de l'exploration orders, la vue Commandes de l'exploration Commandes sans données utilisateur omet les champs listés dans l'ensemble users_user.info du sélecteur de champs d'exploration.

Vous pouvez réutiliser l'ensemble user_info pour omettre ces champs de l'interface utilisateur Explorer pour toutes les autres explorations auxquelles la vue users est jointe. Si vous souhaitez modifier un élément de l'ensemble user_info, par exemple en ajoutant ou en supprimant un champ, il vous suffit de mettre à jour l'ensemble user_info.