extends (para Explorar)

En esta página, se hace referencia al parámetro extends que forma parte de una Exploración.

extends también se puede usar como parte de una vista, como se describe en la página de documentación del parámetro extends (para vistas).

extends también se puede usar como parte de un panel de LookML, como se describe en la página de documentación Parámetros del panel.

Uso


explore: explore_name {
  extends: [explore_name, explore_name, ...]
}
Jerarquía
extends
Valor predeterminado
Ninguno

Acepta
Corchetes que contienen una lista separada por comas de los nombres de Explorar

Definición

El parámetro extends te permite aprovechar el contenido y la configuración de otra exploración, y usarla como punto de partida. Si hay conflictos, la exploración que se extiende usará su propia configuración y anulará la de la exploración que se extiende. Consulta la página de documentación Cómo reutilizar código con extends para obtener detalles sobre cómo Looker hace esto.

Consulta los perfeccionamientos de LookML.

Extender una vista o un Explorar es ideal para situaciones en las que deseas tener varias versiones de la vista o del Explorar. Sin embargo, si tu objetivo es simplemente modificar una vista o un Explorar sin editar el archivo de LookML que lo contiene, es posible que desees usar un perfeccionamiento. También puedes usar un parámetro extends dentro de un refinamiento. Consulta la página de documentación sobre refinamientos de LookML para obtener más información y casos de uso.

Cuando extiendes un Explorar, es importante tener el parámetro view_name en el Explorar que se extenderá. El parámetro view_name define la vista en la que se basa una exploración. Su valor predeterminado es el nombre de la Exploración. Si el Explore base no tiene un view_name especificado, se usará el nombre del Explore de forma predeterminada. Sin embargo, esto no funciona para otras exploraciones que extienden la exploración base, por lo que obtendríamos el error "vista desconocida". Para que Looker use el archivo de vista correcto, debemos especificarlo con el parámetro view_name. Como se necesitará en cualquier versión extendida de la exploración, la práctica recomendada es agregarla a la exploración base para que se haga referencia a ella de manera coherente cada vez que se extienda la exploración.

Si tu Exploración base aún no tiene un parámetro view_name, puedes agregar el parámetro view_name y especificar el mismo valor que el nombre de tu Exploración.

También puedes usar el parámetro view_label en tus Explorar básicos y de extensión. El parámetro view_label determina la etiqueta bajo la cual se agrupan los campos de la vista en el selector de campos (consulta la página de documentación del parámetro view_label (para Explorar) para ver un ejemplo). Si no especificas un view_label para tus Exploraciones base y de extensión, ambas usarán el nombre de la Exploración base.

Ejemplo

Este es un ejemplo de un Explorar definido en nuestro archivo de modelo:

explore: orders {
  view_name: orders
  view_label: "Orders"
  # The normal contents of the Explore follow
}

Aquí agregamos una nueva exploración que extiende la exploración orders que definimos anteriormente:

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 extiendes un Explore basado en una vista extendida, también deberás usar el parámetro from. Agrega from a la extensión de Explorar y asígnale el nombre de la vista extendida.

explore: new_explore {
  extends: [orders]
  from: extended_orders_view
  #The normal contents of the Explore follow
}

Usa extends para limitar los campos de diferentes usuarios

Un caso de uso muy útil de la extensión de un Explorar es mostrar solo un subconjunto de los campos de un Explorar a ciertos usuarios. Por ejemplo, supongamos que tienes un Explorar products con todos los campos disponibles de las tablas unidas:

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 tienes un equipo que solo necesita ver la categoría de producto y las devoluciones, puedes extender el products Explore y usar el parámetro fields para especificar que solo se deben incluir los campos de categoría de producto y devoluciones:


explore: products_extended {
  extends: [products]
  fields: [products.category,order_items.returned_date]
}

El Explorar products_extended mostrará solo estos dos campos: products.category y order_items.returned_date.

Extiende una exploración a través de modelos

Por lo general, las exploraciones se definen dentro de un archivo de modelo. Si deseas extender una exploración, puedes definir la exploración de extensión en el mismo archivo de modelo, como en los ejemplos anteriores.

Sin embargo, si deseas extender una exploración en varios modelos, debes crear un archivo de exploración independiente para usarlo como archivo base. Una vez que hayas definido la exploración base en su propio archivo, puedes incluir el archivo de exploración en tu archivo de modelo y extender la exploración en tu archivo de modelo.

Dado que puedes incluir un archivo de exploración en otro archivo de exploración, también puedes compartir tu archivo de exploración base en varios otros archivos de exploración, si es necesario.

Los archivos de exploración escucharán la conexión del modelo en el que se incluyen. Ten esto en cuenta cuando incluyas archivos de Explore en modelos configurados con una conexión diferente de la del modelo principal del archivo de Explore. Si el esquema de la conexión del modelo que incluye difiere del esquema de la conexión del modelo principal, se pueden producir errores de consulta.

Cómo usar metadatos para ver extensiones de un objeto

Puedes hacer clic en un parámetro explore o view en el IDE de Looker y usar el panel de metadatos para ver las extensiones del objeto o el objeto que extiende. Consulta la página de documentación Metadatos para objetos de LookML para obtener más información.

Aspectos para tener en cuenta

Algunos parámetros son aditivos

En muchos casos, si el objeto de extensión contiene el mismo parámetro que el objeto que se extiende, los valores del objeto de extensión anularán los valores del parámetro del objeto extendido. Sin embargo, las extensiones pueden ser aditivas para algunos parámetros, lo que significa que los valores del objeto de extensión se usan junto con los valores del objeto extendido.

Los siguientes parámetros de Explorar son aditivos:

En el siguiente ejemplo, la exploración aircraft_base usa el parámetro join para unir la vista aircraft con la vista 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
  }
}

Y la exploración aircraft_extended extiende la exploración aircraft_base. Además, la exploración aircraft_extended tiene un parámetro join que se une en la vista 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
  }
}

El parámetro join es aditivo, por lo que la exploración resultante mostrará las vistas unidas en la exploración base, además de las vistas unidas en la exploración de extensión. En este caso, la exploración aircraft_extended contiene las vistas aircraft, aircraft_types y aircraft_engine_types.

Proyectos con localización

Cuando extiendas un objeto, ten en cuenta que las reglas de localización también se aplican a tus extensiones. Si extiendes un objeto y, luego, defines etiquetas o descripciones nuevas, debes proporcionar definiciones de localización en los archivos de cadenas de configuración regional de tu proyecto. Consulta la página de documentación Cómo localizar tu modelo de LookML para obtener más información.