Términos y conceptos de LookML

En esta página, se definen los siguientes términos y conceptos básicos, que probablemente encontrarás con frecuencia durante el desarrollo de LookML:

Las vistas y los paneles definidos por el usuario no se describen en esta página, ya que los usuarios los crean sin usar LookML. Sin embargo, sus consultas se basan en los elementos de LookML subyacentes que se analizan en esta página.

Consulta el glosario de Looker para obtener una lista completa de los términos y las definiciones que se usan en Looker. Para obtener una descripción general completa de los parámetros de LookML que puedes usar en un proyecto de LookML, consulta la página de Referencia rápida de LookML.

proyecto de LookML

En Looker, un proyecto es una colección de archivos que describen los objetos, las conexiones de bases de datos y los elementos de la interfaz de usuario que se usarán para realizar consultas en SQL. En el nivel más básico, estos archivos describen cómo se relacionan las tablas de tu base de datos entre sí y cómo Looker debe interpretarlas. Los archivos también pueden incluir parámetros de LookML que definen o cambian las opciones que se presentan en la IU de Looker. Cada proyecto de LookML reside en su propio repositorio de Git para el control de versiones.

Una vez que conectes Looker a tu base de datos, podrás especificar la conexión de la base de datos que se usará en tu proyecto de Looker.

Puedes acceder a tus proyectos desde el menú Desarrollar en Looker (consulta Cómo acceder a los archivos del proyecto para conocer los detalles y otras opciones).

Consulta Crea un proyecto nuevo de LookML y obtén información para crear un proyecto nuevo, y Accede y edita la información del proyecto para obtener información sobre cómo acceder a proyectos existentes de LookML y realizar cambios en ellos.

Partes de un proyecto

Un proyecto de LookML puede contener modelos, vistas y paneles de LookML, y cada uno de ellos está formado por otros elementos de LookML.

Como se muestra en el diagrama, los siguientes son algunos de los tipos de archivos más comunes en un proyecto de LookML:

  • Un model contiene información sobre qué tablas usar y cómo deben unirse. Aquí, por lo general, definirás el modelo, sus exploraciones y sus uniones.
  • Una vista contiene información sobre cómo acceder o calcular la información de cada tabla (o de varias tablas unidas). Aquí, por lo general, definirás la vista, sus dimensiones y medidas, y sus conjuntos de campos.
  • Una Exploración suele definirse dentro de un archivo de modelo, pero a veces necesitas un archivo Explorar separado para una tabla derivada o para extender o definir mejor una exploración en todos los modelos.
  • Un archivo de manifiesto puede contener instrucciones para usar archivos importados de otro proyecto o para la configuración de localización del proyecto.

Además de los archivos de modelo, vista, exploración y manifiesto, un proyecto puede tener otros tipos de archivos relacionados con elementos como paneles integrados, documentación, localización y mucho más. Consulta la página de documentación de los archivos del proyecto de LookML para obtener más información sobre estos tipos de archivos y los demás tipos de archivos que puedes tener en tu proyecto de LookML.

En conjunto, estos archivos forman un proyecto. Si usas Git para el control de versión, por lo general, cada proyecto cuenta con una copia de seguridad de su propio repositorio de Git.

¿De dónde provienen los proyectos y archivos de LookML?

La forma más común de crear archivos de LookML es generar un proyecto de LookML a partir de tu base de datos. También puedes crear un proyecto en blanco y crear manualmente sus archivos de LookML, o puedes crear un proyecto clonando un repositorio de Git existente.

Cuando generas un proyecto nuevo a partir de tu base de datos, Looker crea un conjunto de archivos de referencia que puedes usar como plantilla para crear el proyecto:

  • Varios archivos de vista, un archivo para cada tabla de la base de datos
  • Un archivo de model El archivo de modelo declara una Exploración para cada vista. Cada declaración de Explorar incluye la lógica de join para unir cualquier vista que Looker pueda determinar que está relacionada con Explorar.

Desde aquí, puedes personalizar el proyecto quitando las vistas y exploraciones no deseadas, y agregando dimensiones y mediciones personalizadas.

Estructuras principales de LookML

Como se muestra en las partes de un diagrama de proyecto, un proyecto suele contener uno o más archivos de modelo, que contienen parámetros que definen un modelo y sus exploraciones y uniones. Además, los proyectos suelen contener uno o más archivos de vista, cada uno de los cuales contiene parámetros que definen esa vista y sus campos (incluidas las dimensiones y medidas) y los conjuntos de campos. El proyecto también puede contener un archivo de manifiesto del proyecto, que te permite configurar ajustes a nivel del proyecto. En esta sección, se describen esas estructuras principales.

Modelo

Un modelo es un portal personalizado a la base de datos, diseñado para proporcionar una exploración de datos intuitiva para usuarios empresariales específicos. Pueden existir varios modelos para la misma conexión de base de datos en un solo proyecto de LookML. Cada modelo puede exponer diferentes datos a distintos usuarios. Por ejemplo, los agentes de ventas necesitan datos diferentes a los de los ejecutivos de la empresa, por lo que probablemente desarrollarías dos modelos para ofrecer vistas de la base de datos adecuadas para cada usuario.

Un modelo especifica una conexión a una sola base de datos. El desarrollador también define las exploraciones de un modelo dentro del archivo del modelo. De forma predeterminada, las exploraciones se organizan bajo el nombre del modelo en el que se definen. Tus usuarios ven modelos enumerados en el menú Explorar.

Consulta la página de documentación Tipos de archivos en un proyecto de LookML para obtener más información sobre los archivos de modelo, incluida la estructura y sintaxis general de los archivos de modelo.

Consulta la página de documentación de Parámetros del modelo para obtener detalles sobre los parámetros de LookML que se pueden usar en un archivo de modelo.

View

Una declaración de vista define una lista de campos (dimensiones o medidas) y su vinculación con una tabla subyacente o una tabla derivada. En LookML, una vista suele hacer referencia a una tabla de base de datos subyacente, pero también puede representar una tabla derivada.

Una vista se puede unir a otras vistas. Por lo general, la relación entre las vistas se define como parte de una declaración Explore en un archivo de modelo.

De forma predeterminada, los nombres de las vistas aparecen al comienzo de los nombres de las dimensiones y mediciones en la tabla Explorar datos. Esta convención de nomenclatura deja en claro a qué vista pertenece el campo. En el siguiente ejemplo, los nombres de las vistas Orders y Users se enumeran antes de los nombres de los campos en la tabla de datos:

Tabla de datos para una consulta de muestra con los campos Orders Created Date, Users ID y Orders Count seleccionados.

Consulta la documentación Tipos de archivos en un proyecto de LookML para obtener más información sobre los archivos de vistas, incluida la estructura y sintaxis general de los archivos de vistas.

Consulta la página de documentación de Parámetros de vista para obtener detalles sobre los parámetros de LookML que se pueden usar en un archivo de vista.

Explorar

Una vista Explorar es una vista que los usuarios pueden consultar. Puedes pensar en Explorar como un punto de partida para una consulta o, en términos de SQL, como el FROM en una instrucción de SQL. No todas las vistas se consideran Exploraciones, ya que no todas describen una entidad de interés. Por ejemplo, una vista de Estados que corresponde a una tabla de consulta de nombres de estados no garantiza una exploración, ya que los usuarios empresariales nunca necesitan consultarla directamente. Por otro lado, es probable que los usuarios empresariales quieran una manera de consultar una vista de Pedidos, por lo que definir una exploración para Pedidos tiene sentido. Consulta la página de documentación Cómo interactuar con las exploraciones y ver las exploraciones en Looker si deseas obtener información sobre cómo interactúan los usuarios con las exploraciones para consultar tus datos.

En Looker, los usuarios pueden ver las exploraciones en el menú Explorar. Las exploraciones se indican debajo de los nombres de los modelos a los que pertenecen.

Por convención, las exploraciones se declaran en el archivo del modelo con el parámetro explore. En el siguiente ejemplo de un archivo de modelo, se define la exploración orders de una base de datos de comercio electrónico dentro del archivo de modelo. Las vistas orders y customers a las que se hace referencia en la declaración explore se definen en otro lugar, en sus respectivos archivos de vistas.

connection: order_database
include: "filename_pattern"

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

En este ejemplo, el parámetro connection se usa para especificar la conexión de base de datos del modelo, y el parámetro include se usa para especificar los archivos que estarán disponibles para que el modelo haga referencia.

La declaración explore de este ejemplo también especifica relaciones de unión entre las vistas. Para obtener detalles sobre las declaraciones de join, visita la sección sobre uniones de esta página. Visita la página de documentación sobre los parámetros de unión para obtener más detalles sobre los parámetros de LookML que se pueden usar con el parámetro join.

Campos de dimensión y medición

Las vistas contienen campos, en su mayoría dimensiones y mediciones, que son los componentes básicos de las consultas de Looker.

En Looker, una dimensión es un campo que se puede agrupar y se puede usar para filtrar los resultados de las consultas. Puede ser cualquiera de las siguientes opciones:

  • Un atributo que tiene una asociación directa con una columna de una tabla subyacente
  • Un hecho o un valor numérico
  • Un valor derivado, calculado a partir de los valores de otros campos en una sola fila

En Looker, las dimensiones siempre aparecen en la cláusula GROUP BY de la SQL que genera Looker.

Por ejemplo, las dimensiones de una vista Productos pueden incluir el nombre del producto, el modelo, el color, el precio, el precio, la fecha de creación del producto y la fecha de final del ciclo de vida del producto.

Una medición es un campo que usa una función de agregación de SQL, como COUNT, SUM, AVG, MIN o MAX. Cualquier campo calculado a partir de los valores de otros valores de medición también es una medida. Las mediciones se pueden usar para filtrar valores agrupados. Por ejemplo, las mediciones para una vista Ventas pueden incluir el total de artículos vendidos (una cantidad), el precio total de venta (una suma) y el precio de venta promedio (un promedio).

El comportamiento y los valores esperados de un campo dependen de su tipo declarado, como string, number o time. Para las mediciones, los tipos incluyen funciones de agregación, como sum y percent_of_previous. Para obtener más información, consulta los tipos de dimensión y los tipos de mediciones.

En Looker, los campos se enumeran en la página Explorar en el selector de campos del lado izquierdo de la página. Puedes expandir una vista en el selector de campos para mostrar la lista de campos que están disponibles para consultar desde esa vista.

Por convención, los campos se declaran como parte de la vista a la que pertenecen y se almacenan en un archivo de vista. En el siguiente ejemplo, se muestran varias declaraciones de dimensiones y mediciones. Observa el uso del operador de sustitución ($) para hacer referencia a campos sin usar un nombre de columna de SQL de alcance completo.

A continuación, se muestran algunas declaraciones de ejemplo de dimensiones y mediciones:

view: orders {
  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
  dimension: customer_id {
    sql: ${TABLE}.customer_id ;;
  }
  dimension: amount {
    type: number
    value_format: "0.00"
    sql: ${TABLE}.amount ;;
  }
  dimension_group: created {
    type: time
    timeframes: [date, week]
    sql: ${TABLE}.created_at ;;
  }
  measure: count {
    type: count           # creates sql COUNT(orders.id)
    sql: ${id} ;;
  }
  measure: total_amount {
    type: sum             # creates sql SUM(orders.amount)
    sql: ${amount} ;;
  }
}

También puedes definir un dimension_group, que crea varias dimensiones relacionadas con el tiempo a la vez, y campos filter, que tienen una variedad de casos de uso avanzados, como filtros con plantillas.

Consulta la página de documentación Parámetros de campo para obtener información detallada sobre cómo declarar campos y los distintos parámetros de configuración que se pueden aplicar a ellos.

Combinaciones

Como parte de una declaración de explore, cada declaración de join especifica una vista que se puede unir a Explorar. Cuando un usuario crea una consulta que incluye campos de varias vistas, Looker genera automáticamente una lógica de unión de SQL para incorporar todos los campos de forma correcta.

A continuación, se muestra un ejemplo de unión en una declaración explore:

# file: ecommercestore.model.lookml

connection: order_database
include: "filename_pattern"   # include all the views

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

Para obtener más detalles, visita la página de documentación Trabaja con uniones en LookML.

Archivos de manifiesto del proyecto

Tu proyecto puede contener un archivo de manifiesto del proyecto, que se usa para la configuración a nivel de proyecto, como los que permiten especificar otros proyectos para importarlos en el proyecto actual, definir las constantes de LookML, especificar la configuración de localización del modelo y agregar extensiones y visualizaciones personalizadas a tu proyecto.

Cada proyecto solo puede tener un archivo de manifiesto. El archivo debe llamarse manifest.lkml y estar ubicado en el nivel raíz del repositorio de Git. Cuando uses carpetas en el IDE, asegúrate de que el archivo manifest.lkml se mantenga en el nivel raíz de la estructura de directorios de tu proyecto.

Para importar archivos de LookML de otro proyecto, usa el archivo de manifiesto del proyecto para especificar un nombre para tu proyecto actual y la ubicación de cualquier proyecto externo, que podría almacenarse de forma local o remota. Por ejemplo:

# This project
project_name: "my_project"

# The project to import
local_dependency: {
  project: "my_other_project"
}

remote_dependency: ga_360_block {
  url: "https://github.com/llooker/google_ga360"
  ref: "4be130a28f3776c2bf67a9acc637e65c11231bcc"
}

Después de definir los proyectos externos en el archivo de manifiesto del proyecto, puedes usar el parámetro include en el archivo del modelo para agregar archivos de esos proyectos externos a tu proyecto actual. Por ejemplo:

include: "//my_other_project/imported_view.view"
include: "//ga_360_block/*.view"

Para obtener más información, consulta la página de documentación Importa archivos desde otros proyectos.

Si quieres agregar localización a tu modelo, usa el archivo de manifiesto del proyecto para especificar la configuración de localización predeterminada. Por ejemplo:

localization_settings: {
  default_locale: en
  localization_level: permissive
}

Especificar la configuración de localización predeterminada es un paso en la localización de tu modelo. Para obtener más información, consulta la página de documentación Localiza tu modelo de LookML.

Establece

En Looker, un conjunto es una lista que define un grupo de campos que se usan juntos. Por lo general, los conjuntos se usan para especificar qué campos mostrar después de que un usuario desglosa los datos. Los conjuntos de desgloses se especifican campo por campo, de modo que tienes control total sobre los datos que se muestran cuando un usuario hace clic en un valor de una tabla o panel. Los conjuntos también se pueden usar como una función de seguridad para definir grupos de campos visibles para usuarios específicos. En el siguiente ejemplo, se muestra una declaración de conjunto en una vista order_items, que define campos que enumeran detalles relevantes sobre un artículo comprado. Ten en cuenta que el conjunto hace referencia a campos de otras vistas especificando el alcance.

set: order_items_stats_set {
  fields: [
    id,  # scope defaults to order_items view
    orders.created_date,  # scope is "orders" view
    orders.id,
    users.name,
    users.history,  # show all products this user has purchased
    products.item_name,
    products.brand,
    products.category,
    total_sale_price
  ]
}

Consulta la página de documentación del parámetro set para obtener todos los detalles de uso de los conjuntos.

Desglosar información

En Looker, puedes configurar un campo para que los usuarios puedan desglosar los datos aún más. El desglose funciona tanto en las tablas de resultados de consultas como en los paneles. El desglose inicia una nueva consulta que está restringida por el valor en el que haces clic.

El comportamiento de desglose es diferente para las dimensiones y mediciones:

  • Cuando desglosas una dimensión, la nueva consulta filtra el valor desglosado. Por ejemplo, si haces clic en la fecha específica en una consulta de pedidos de clientes por fecha, la consulta nueva mostrará solo los pedidos de esa fecha específica.
  • Al desglosar una medición, la nueva consulta mostrará el conjunto de datos que contribuyó a la medición. Por ejemplo, al desglosar un recuento, la nueva consulta mostrará las filas para calcular ese recuento. Cuando se desglosan las mediciones de máximo, mínimo y promedio, el desglose sigue mostrando todas las filas que contribuyeron a esa medición. Esto significa que desglosar una medida máxima, por ejemplo, muestra todas las filas que se usaron para calcular el valor máximo, no solo una fila para el valor máximo.

Los campos que se mostrarán para la nueva búsqueda de desglose se pueden definir con un conjunto o con el parámetro drill_fields (para campos) o el parámetro drill_fields (para vistas).

Tablas derivadas

Una tabla derivada es una consulta cuyos resultados se usan como si fueran una tabla real en la base de datos. Las tablas derivadas se crean con el parámetro derived_table en una declaración view. Looker accede a las tablas derivadas como si fueran tablas físicas con su propio conjunto de columnas. Una tabla derivada se expone como su propia vista y define las dimensiones y medidas de la misma manera que las vistas convencionales. La vista de una tabla derivada se puede consultar y unir a otras vistas, al igual que cualquier otra vista.

Las tablas derivadas también se pueden definir como tablas derivadas persistentes (PDT), que son tablas derivadas que se escriben en un esquema temporal en tu base de datos y se vuelven a generar automáticamente según la programación que especifiques con una estrategia de persistencia.

Consulta la página de documentación de Tablas derivadas en Looker para obtener más información.

Conexión a base de datos

Otro elemento importante de un proyecto de LookML es la conexión de base de datos que Looker usa para ejecutar consultas en tu base de datos. Un administrador de Looker usa la página Conexiones para configurar las conexiones de bases de datos, y los desarrolladores de LookML usan el parámetro connection en un archivo de modelo para especificar qué conexión usar para el modelo. Si generas un proyecto de LookML a partir de tu base de datos, Looker propagará automáticamente el parámetro connection en el archivo del modelo.

Distinción de mayúsculas

LookML distingue entre mayúsculas y minúsculas, así que asegúrate de que coincidan cuando hagas referencia a elementos de LookML. Looker te alerta si referiste a un elemento que no existe.

Por ejemplo, supongamos que tienes una exploración llamada e_flights_pdt y un desarrollador de LookML usa mayúsculas incorrectas (e_FLIGHTS_pdt) para hacer referencia a esa exploración. En este ejemplo, el IDE de Looker muestra una advertencia que indica que Explorar e_FLIGHTS_pdt no existe. Además, el IDE sugiere el nombre de una exploración existente, que es e_flights_pdt:

Sin embargo, si tu proyecto contenía e_FLIGHTS_pdt y e_flights_pdt, el IDE de Looker no podría corregirte, por lo que tendrás que estar seguro de qué versión deseas. Por lo general, es buena idea usar minúsculas cuando nombras objetos de LookML.

Los nombres de las carpetas IDE también distinguen mayúsculas de minúsculas. Debes hacer coincidir el uso de mayúsculas de los nombres de las carpetas cada vez que especifiques las rutas de acceso a los archivos. Por ejemplo, si tienes una carpeta llamada Views, debes usar el mismo uso de mayúsculas en el parámetro include. Una vez más, el IDE de Looker indicará un error si el uso de mayúsculas no coincide con una carpeta existente de tu proyecto:

El IDE de Looker muestra una advertencia que indica que la inclusión no coincide con ningún archivo.