Cette page fait référence au paramètre
extendsqui fait partie d'une exploration.
extendspeut également être utilisé dans une vue, comme décrit sur la page de documentation du paramètreextends(pour les vues).
extendspeut également être utilisé dans un tableau de bord LookML, comme décrit sur la page de documentation Paramètres du tableau de bord.
Utilisation
explore: explore_name {
extends: [explore_name, explore_name, ...]
}
|
Hiérarchie
extends |
Valeur par défaut
Aucun
Acceptation
Crochets contenant une liste de noms Explore séparés par une virgule
|
Définition
Le paramètre extends vous permet de vous appuyer sur le contenu et les paramètres d'une autre exploration, en l'utilisant comme point de départ. En cas de conflit, l'exploration d'extension utilisera ses propres paramètres, en remplaçant ceux de l'exploration étendue. Pour en savoir plus sur la façon dont Looker procède, consultez la page de documentation Réutiliser du code avec extends.
Découvrez les perfectionnements LookML.
Étendre une vue ou un Explore est idéal dans les scénarios où vous souhaitez disposer de plusieurs versions de la vue ou de l'Explore. Toutefois, si votre objectif est simplement de modifier une vue ou une exploration sans modifier le fichier LookML qui la contient, vous pouvez utiliser un affinement. Vous pouvez également utiliser un paramètreextendsdans un affinement. Pour en savoir plus et découvrir des cas d'utilisation, consultez la page de documentation Affiner le LookML.
Lorsque vous étendez une exploration, il est important d'avoir le paramètre view_name dans l'exploration à étendre. Le paramètre view_name définit la vue sur laquelle repose une exploration. Sa valeur par défaut est le nom de l'exploration. Si aucune view_name n'est spécifiée dans l'exploration de base, le nom de l'exploration est utilisé par défaut. Toutefois, cela ne fonctionne pas pour les autres explorations qui étendent l'exploration de base. Nous obtenons donc l'erreur "Vue inconnue". Pour que Looker utilise le bon fichier de vue, nous devons le spécifier à l'aide du paramètre view_name. Comme cette dimension sera nécessaire dans toute version étendue de l'exploration, la bonne pratique consiste à l'ajouter à l'exploration de base afin qu'elle soit référencée de manière cohérente chaque fois que l'exploration est étendue.
Si votre exploration de base ne comporte pas déjà de paramètre view_name, vous pouvez simplement ajouter le paramètre view_name et spécifier la même valeur que le nom de votre exploration.
Vous pouvez également utiliser le paramètre view_label dans vos explorations de base et étendues. Le paramètre view_label détermine le libellé sous lequel les champs de la vue sont regroupés dans le sélecteur de champs (consultez la page de documentation sur le paramètre view_label (pour les explorations) pour obtenir un exemple). Si vous ne spécifiez pas de view_label pour vos explorations de base et d'extension, elles utiliseront toutes les deux le nom de l'exploration de base.
Exemple
Voici un exemple d'exploration définie dans notre fichier de modèle :
explore: orders {
view_name: orders
view_label: "Orders"
# The normal contents of the Explore follow
}
Ici, nous ajoutons une exploration qui étend l'exploration orders que nous avons définie précédemment :
explore: name_of_the_new_explore {
extends: [orders]
view_label: "Order Information"
# The additional things you want to add or change
# in the new Explore
}
Si vous étendez une exploration basée sur une vue étendue, vous devrez également utiliser le paramètre from. Ajoutez from à l'exploration à étendree et attribuez-lui le nom de la vue étenduee.
explore: new_explore {
extends: [orders]
from: extended_orders_view
#The normal contents of the Explore follow
}
Utiliser extends pour limiter les champs pour différents utilisateurs
Un cas d'utilisation très pratique de l'extension d'une exploration consiste à n'afficher qu'un sous-ensemble des champs d'une exploration à certains utilisateurs. Par exemple, supposons que vous ayez une exploration products avec tous les champs disponibles des tables jointes :
explore: products {
view_name: products
from: products
join: inventory_items {
type: left_outer
sql_on: ${products.id}=${inventory_items.product_id} ;;
relationship: many_to_one
}
join: order_items {
type: left_outer
sql_on: ${order_items.inventory_item_id}=${inventory_items.id} ;;
relationship: one_to_one
}
}
Si vous avez une équipe qui n'a besoin de voir que la catégorie de produits et les retours, vous pouvez étendre l'autorisation products "Explorer et utiliser" et utiliser le paramètre fields pour spécifier que seuls les champs "Catégorie de produits" et "Retours" doivent être inclus :
explore: products_extended {
extends: [products]
fields: [products.category,order_items.returned_date]
}
L'onglet "Explorer" de products_extended n'affichera que ces deux champs : products.category et order_items.returned_date.
Étendre une exploration à plusieurs modèles
Les explorations sont généralement définies dans un fichier de modèle. Si vous souhaitez étendre une exploration, vous pouvez simplement définir l'exploration d'extension dans le même fichier de modèle, comme dans les exemples précédents.
Toutefois, si vous souhaitez étendre une exploration à plusieurs modèles, vous devez créer un fichier d'exploration distinct à utiliser comme fichier de base. Une fois que vous avez défini l'exploration de base dans son propre fichier, vous pouvez inclure le fichier d'exploration dans votre fichier de modèle et étendre l'exploration dans votre fichier de modèle.
Étant donné que vous pouvez inclure un fichier d'exploration dans un autre fichier d'exploration, vous pouvez également partager votre fichier d'exploration de base dans plusieurs autres fichiers d'exploration, si nécessaire.
Les fichiers d'exploration écouteront la connexion du modèle dans lequel ils sont inclus. Tenez-en compte lorsque vous intégrez des fichiers d'exploration dans des modèles configurés avec une connexion différente du modèle parent du fichier d'exploration. Si le schéma lié à la connexion du modèle d'intégration est différent du schéma lié à la connexion du modèle parent, des erreurs de requête peuvent se produire.
Utiliser les métadonnées pour afficher les extensions d'un objet
Vous pouvez cliquer sur un paramètre explore ou view dans l'IDE Looker et utiliser le panneau de métadonnées pour afficher les extensions de l'objet ou l'objet qu'il étend. Pour en savoir plus, consultez la page de documentation Métadonnées pour les objets LookML.
Éléments à prendre en compte
Certains paramètres sont additifs
Dans de nombreux cas, si l'objet étendu contient le même paramètre que l'objet en cours d'extension, les valeurs de l'objet étendu remplaceront les valeurs de paramètre de l'objet étendu. Toutefois, les extensions peuvent être additives pour certains paramètres, ce qui signifie que les valeurs de l'objet étendu sont utilisées conjointement avec celles de l'objet étendu.
Les paramètres d'exploration suivants sont additifs :
access_filteraggregate_tableextends(vous pouvez chaîner plusieursextends)joinquery
Dans l'exemple suivant, l'exploration aircraft_base utilise le paramètre join pour joindre la vue aircraft à la vue aircraft_types :
explore: aircraft_base {
view_name: aircraft
label: "Aircraft"
join: aircraft_types {
type: left_outer
sql_on: ${aircraft.aircraft_type_id} = ${aircraft_types.aircraft_type_id} ;;
relationship: many_to_one
}
}
L'exploration aircraft_extended étend l'exploration aircraft_base. De plus, l'exploration aircraft_extended comporte un paramètre join qui joint la vue aircraft_engine_types :
explore: aircraft_extended {
extends: [aircraft_base]
label: "Aircraft Extended"
join: aircraft_engine_types {
type: left_outer
sql_on: ${aircraft.aircraft_engine_type_id} = ${aircraft_engine_types.aircraft_engine_type_id} ;;
relationship: many_to_one
}
}
Le paramètre join est additif. L'exploration résultante affichera donc les vues jointes dans l'exploration de base, ainsi que les vues jointes dans l'exploration d'extension. Dans ce cas, l'exploration aircraft_extended contient les vues aircraft, aircraft_types et aircraft_engine_types.

Projets avec localisation
Lorsque vous étendez un objet, sachez que les règles de localisation s'appliquent également à vos extensions. Si vous étendez un objet, puis définissez de nouveaux libellés ou descriptions, vous devez fournir des définitions de localisation dans les fichiers de chaînes de paramètres régionaux de votre projet. Pour en savoir plus, consultez la page de documentation Localisation de votre modèle LookML.