Términos y conceptos de LookML

En esta página, se definen los siguientes términos y conceptos principales, 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 dependen de los elementos subyacentes de LookML 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 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 debería 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ú Desarrollo en Looker (consulta Accede a archivos de proyectos para obtener detalles y otras opciones).

Consulta Cómo crear un nuevo proyecto de LookML para obtener información sobre cómo crear un proyecto nuevo y Cómo acceder y editar la información del proyecto para obtener información sobre cómo acceder y realizar cambios en proyectos existentes de LookML.

Partes de un proyecto

Un proyecto de LookML puede contener modelos, vistas y paneles de LookML, cada uno de los cuales forma parte de otros elementos de LookML.

Como se muestra en el diagrama, estos 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.
  • Un Exploración suele definirse dentro de un archivo de modelo, pero a veces necesitas un archivo de exploración independiente para una tabla derivada o para extender o definir mejor una exploración entre modelos.
  • Un archivo de manifiesto puede contener instrucciones para usar archivos importados de otro proyecto o para la configuración de localización de tu proyecto.

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

En conjunto, estos archivos conforman un proyecto. Si usas Git para el control de versiones, por lo general, una copia de seguridad de cada proyecto tiene 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 bien 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 view, un archivo por cada tabla de la base de datos
  • Un archivo de model El archivo de modelo declara una función Explore para cada vista. Cada declaración de exploración incluye la lógica de join para unir cualquier vista que Looker pueda determinar que está relacionada con la exploración.

Desde aquí, puedes quitar las vistas y las exploraciones no deseadas y agregar dimensiones y medidas personalizadas para personalizar el proyecto.

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 establecer ajustes en el 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 intuitiva de datos a usuarios específicos de empresas. 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. Un desarrollador también define las Exploraciones de un modelo dentro del archivo de modelo. De forma predeterminada, las exploraciones se organizan bajo el nombre del modelo en el que se definen. Tus usuarios ven los modelos que aparecen 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 modelos, incluidas la estructura y la sintaxis general de los archivos de modelos.

Consulta la página de documentación 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 relació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 principio de los nombres de las dimensiones y mediciones en la tabla de datos Explorar. Esta convención de nombres deja en claro a qué vista pertenece el campo. En el siguiente ejemplo, los nombres de las vistas Orders y Users aparecen antes de los nombres de los campos en la tabla de datos:

Tabla de datos para una consulta de muestra con los campos Fecha de creación de los pedidos, ID de usuarios y Recuento de pedidos seleccionados.

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

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

Explorar

Una exploración es una vista que los usuarios pueden consultar. Puedes pensar en Explorar como el 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 corresponden a exploraciones porque no todas describen una entidad de interés. Por ejemplo, una vista de States 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 Orders, por lo que definir una exploración para Orders tiene sentido. Consulta la página de documentación Visualiza e interactúa con las exploraciones en Looker para obtener información sobre cómo los usuarios interactúan con las exploraciones para consultar tus datos.

En Looker, los usuarios pueden ver las exploraciones en el menú Explorar. Las exploraciones se enumeran 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 para 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 vista.

connection: order_database
include: "filename_pattern"

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

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

La declaración explore de este ejemplo también especifica relaciones de unión entre vistas. Para obtener información sobre las declaraciones join, visita la sección sobre uniones en esta página. Visita la página de documentación sobre Unión de parámetros 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, principalmente dimensiones y medidas, 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 en una tabla subyacente
  • Es un valor numérico o de hecho.
  • 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 del SQL que genera Looker.

Por ejemplo, las dimensiones de la vista Productos pueden incluir el nombre, el modelo, el color, el precio, la fecha de creación y la fecha de finalización 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 sobre la base de los valores de otros valores de medición también es una medición. Las mediciones se pueden usar para filtrar valores agrupados. Por ejemplo, las medidas para una vista Sales podrían incluir el total de artículos vendidos (un recuento), el precio de oferta total (una suma) y el precio de oferta 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 dimensiones y los tipos de mediciones.

En Looker, los campos se enumeran en la página Explorar del selector de campos 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 con 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 filtros con plantilla.

Consulta la página de documentación Parámetros de campo para obtener detalles completos sobre la declaración de campos y las diversas opciones de configuración que se les pueden aplicar.

Combinaciones

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 una lógica de unión de SQL para mostrar 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 información, 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 que se importarán al 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 solo un 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 otro proyecto, usa el archivo de manifiesto del proyecto a fin de especificar un nombre para tu proyecto actual y la ubicación de los proyectos externos, que podrían 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 al 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 de otros proyectos.

Para 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
}

Un primer paso para localizar tu modelo consiste en especificar la configuración de localización predeterminada. Para obtener más información, consulta la página de documentación Cómo localizar 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 obtienes 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 set en una vista order_items, en la que se definen los campos que enumeran detalles relevantes sobre un artículo comprado. Ten en cuenta que el conjunto hace referencia a campos de otras vistas cuando se especifica 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 exploración funciona tanto en las tablas de resultados de las consultas como en los paneles. La exploración 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 medidas:

  • Cuando desglosas una dimensión, la nueva consulta filtra el valor desglosado. Por ejemplo, si haces clic en la fecha específica de una consulta de pedidos de clientes por fecha, la consulta nueva mostrará solo los pedidos de esa fecha específica.
  • Cuando se desglosa una medición, la consulta nueva mostrará el conjunto de datos que contribuyó a la medición. Por ejemplo, cuando explores un recuento, la nueva consulta mostrará las filas para calcularlo. Cuando se desglosan las mediciones máximas, mínimas y promedio, el desglose aún muestra 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 utilizaron 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 mediante un conjunto, o bien mediante el parámetro drill_fields (para los 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 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 con 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 en 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 usa Looker para ejecutar consultas en tu base de datos. Un administrador de Looker usa la página Conexiones para configurar 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 propaga automáticamente el parámetro connection en el archivo de modelo.

Distinción de mayúsculas

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

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

Sin embargo, si tu proyecto incluye e_FLIGHTS_pdt y e_flights_pdt, el IDE de Looker no podrá corregirte, por lo que tendrías que asegurarte de qué versión deseas. En general, se recomienda usar minúsculas cuando nombres objetos de LookML.

Los nombres de las carpetas de IDE también distinguen mayúsculas de minúsculas. Debes hacer coincidir las mayúsculas de los nombres de las carpetas siempre que especifiques las rutas de acceso a archivos. Por ejemplo, si tienes una carpeta llamada Views, debes usar este 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 en tu proyecto:

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