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:

En esta página, no se describen las vistas ni los paneles definidos por el usuario, 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 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 Guía de consulta rápida de LookML.

Consulta la página de documentación Términos y conceptos compartidos entre Looker y Looker Studio para obtener información sobre las diferencias entre términos y conceptos similares en Looker y Looker Studio.

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 versión.

Una vez que conectes Looker a tu base de datos, podrás especificar la conexión de la base de datos que usarás para 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 Cómo crear un proyecto de LookML para obtener información sobre cómo crear un proyecto nuevo y Cómo acceder a la información del proyecto y editarla para obtener información sobre cómo acceder a proyectos de LookML existentes 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 modelo contiene información sobre qué tablas usar y cómo deben unirse. Por lo general, aquí definirás el modelo, sus Exploraciones y sus combinaciones.
  • 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 extend 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, Explorar 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 otros 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, cada proyecto suele tener una copia de seguridad en 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 sus archivos LookML de forma manual, o bien clonarlo a partir de 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 compilar el proyecto:

  • Varios archivos de vista, un archivo para cada tabla de la base de datos
  • Un archivo de modelo El archivo de modelo declara un Explorar 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 la exploración.

Desde aquí, puedes personalizar el proyecto quitando vistas y Exploraciones no deseadas, y agregando dimensiones y medidas 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 las medidas) y 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 a 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 datos diferentes a usuarios diferentes. 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 según 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.

Ver

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 nombres deja 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, incluidas 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 sentencia SQL. No todas las vistas se consideran Exploraciones, ya que no todas describen una entidad de interés. Por ejemplo, una vista 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 consultar una vista de Pedidos, por lo que tiene sentido definir una exploración para Pedidos. 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 de modelo con el parámetro explore. En el siguiente ejemplo de un archivo de modelo, la exploración orders de una base de datos de comercio electrónico se define 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 vista.

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 con el objetivo de especificar los archivos que estarán disponibles para que el modelo haga referencia.

La declaración explore en este ejemplo también especifica relaciones de unión entre vistas. Para obtener más información sobre las declaraciones de join, consulta la sección sobre uniones en esta página. Visita la página de documentación 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 los siguientes:

  • 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 finalización del ciclo de vida del producto.

Una medida es un campo que usa una función de agregación de SQL, como COUNT, SUM, AVG, MIN o MAX. Cualquier campo calculado en función de los valores de otras medidas 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 muestran en la página Explorar en el selector de campos que se encuentra en el 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 medidas. Observa el uso del operador de sustitución ($) para hacer referencia a campos sin usar un nombre de columna de SQL de alcance completo.

Estos son algunos ejemplos de declaraciones de dimensiones y medidas:

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 los filtros con plantillas.

Consulta la página de documentación Parámetros de campo para obtener detalles completos sobre la declaración de campos y los diversos parámetros de configuración que se pueden aplicar a ellos.

Uniones

Como parte de una declaración explore, cada declaración 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 la lógica de unión de SQL para incorporar todos los campos correctamente.

Este es 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, consulta la página de documentación Cómo trabajar con combinaciones 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 constantes de LookML, especificar la configuración de localización de modelos y agregar extensiones y visualizaciones personalizadas a tu proyecto.

Cada proyecto puede tener un solo archivo de manifiesto. El archivo debe llamarse manifest.lkml y estar ubicado en el nivel raíz de tu 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 un proyecto diferente, 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 Cómo importar archivos de 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 para localizar 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 se mostrarán después de que un usuario desglose los datos. Los conjuntos de desglose se especifican campo por campo, por lo que tienes control total sobre los datos que se muestran cuando un usuario hace clic en un valor de una tabla o un panel. Los conjuntos también se pueden usar como una función de seguridad para definir grupos de campos que son 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 aún más los datos. La desglose funciona en las tablas de resultados de las consultas y en los paneles. El desglose inicia una nueva consulta que se restringe según el valor en el que hagas clic.

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

  • 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 nueva consulta mostrará los pedidos solo en esa fecha específica.
  • Cuando desgloses una métrica, la consulta nueva mostrará el conjunto de datos que contribuyó a la métrica. Por ejemplo, cuando desgloses un recuento, la consulta nueva 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, por ejemplo, desglosar una métrica máxima 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 consulta 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 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 mayúsculas de minúsculas, así que asegúrate de que el uso de mayúsculas de los elementos de LookML sea el correcto. 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 no existe el e_FLIGHTS_pdt de Explorar. Además, el IDE sugiere el nombre de una exploración existente, que es e_flights_pdt:

Sin embargo, si tu proyecto contiene e_FLIGHTS_pdt y e_flights_pdt, el IDE de Looker no podrá corregirte, por lo que deberás asegurarte de la versión que deseas usar. Por lo general, es buena idea usar minúsculas cuando nombras objetos de LookML.

Los nombres de las carpetas del 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. Nuevamente, 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.