Términos y conceptos de LookML

Las secciones Operador de sustitución ($), Alcance y nombre, Dialecto SQL y Bloqueo de SQL se trasladaron a una nueva página de documentación Incorporar SQL y hacer referencia a objetos LookML.

Descripción general

En esta página, se definen los términos y conceptos que aparecen con frecuencia en el desarrollo de LookML. En el siguiente diagrama, se muestran las relaciones entre los elementos que se encuentran dentro de otros elementos. Todos los términos que se muestran aquí se definen en las siguientes secciones.

Los looks y los paneles definidos por el usuario no forman parte de este diagrama, ya que los usuarios los crean sin usar LookML. Sin embargo, sus consultas dependen de los elementos de LookML subyacentes que se muestran en el diagrama anterior.

proyecto de LookML

Un proyecto es una colección de archivos LookML que describe cómo se relacionan las tablas de la base de datos entre sí y cómo Looker debe interpretarlas. Cada proyecto de LookML reside en su propio repositorio de Git para el control de versión.

Estos son los tipos de archivo más comunes en un proyecto de LookML:

  • Un modelo contiene información sobre qué tablas usar y cómo deberían unirse. Por lo general, aquí definirás el modelo, sus Exploraciones y sus uniones.
  • Una vista contiene información sobre cómo acceder o calcular 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.
  • A menudo, se define un Explorar dentro de un archivo de modelo, pero a veces se necesita un archivo Explorar independiente para una tabla derivada o para extender o definir mejor un Explorar en todos los modelos.
  • Un archivo de manifiesto puede contener instrucciones para usar archivos importados de otro proyecto o la configuración de localización de tu proyecto.

Consulta la página de documentación de archivos de proyectos de LookML para obtener información sobre otros tipos de archivos que puedes tener en tu proyecto.

Una vez que conectas Looker a tu base de datos, puedes especificar la conexión de la base de datos que usarás para tu proyecto de Looker:

En Looker, puedes acceder a tus proyectos en el menú Develop (Desarrollar):

A partir de Looker 21.12, si su administrador habilitó la función Labs de Navegación mejorada, puede acceder a sus proyectos si selecciona la opción Desarrollar en el nuevo panel de navegación izquierdo mejorado.

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

La forma más común de crear archivos LookML es generar un proyecto de LookML a partir de su base de datos. También puedes crear un proyecto en blanco y sus archivos LookML de forma manual, o bien crear un proyecto mediante la clonación de un repositorio de Git existente.

Cuando genera un proyecto nuevo a partir de su base de datos, Looker crea un conjunto de archivos de referencia que puede usar como plantilla para compilar el proyecto:

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

Desde aquí, puede personalizar el proyecto quitando vistas y exploraciones no deseadas, y agregando dimensiones y medidas personalizadas.

Principales estructuras de LookML

Como se muestra en el diagrama anterior, un proyecto, por lo general, contiene uno o más archivos de modelo que contienen parámetros que definen un modelo y sus exploraciones y combinaciones. Además, los proyectos suelen contener uno o más archivos de vista, cada uno con 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 contenga parámetros para usar archivos de vista de otros proyectos o configurar valores predeterminados de localización. En esta sección, se describen esas estructuras principales.

Modelo

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

En Looker, las consultas se agrupan según el modelo al que pertenecen. Los usuarios ven los modelos enumerados en el menú Explorar:

A partir de Looker 21.12, si su administrador habilitó la función Labs de Navegación mejorada, puede acceder a Explorar y ver una lista de exploraciones seleccionando la opción Explorar en el nuevo panel de navegación izquierdo mejorado.

Un archivo de modelo especifica la base de datos a la que se conectará y define una colección de exploraciones para esa conexión. Por convención, cada archivo declara exactamente un modelo y, en el nuevo LookML, los nombres de archivo del modelo terminan en .model.lkml. El nombre del archivo del modelo determina el nombre que se muestra en Looker.

A continuación, se muestra la forma general de la declaración de un modelo en LookML. Consulta la página de documentación de los parámetros del modelo para obtener más detalles.

connection: connection_name
persist_for: timeframe
case_sensitive: yes | no
include: "filename_pattern"   # for example: *.view.lkml
# More include declarations

explore: explore_name {
  view_name: view_name
  join: view_name {
    # join parameters
  }
  # More join declarations
}
# More explore declarations

Vista

Una declaración de vistas 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.

En Looker, los nombres de las vistas aparecen al comienzo de las dimensiones y se miden en la tabla de datos. Esta convención de nombres deja en claro a qué vista pertenece el campo:

Una vista se almacena en un archivo .view.lkml. A continuación, se muestra la forma general de una declaración de vista. Consulta la página de documentación Ver parámetros para obtener detalles sobre el uso.

view: view_name {
  dimension: field_name {
    # dimension_parameters
  }
  # more dimension declarations
  measure: field_name {
    # measure_parameters
  }
  # more measure declarations
  set: first_set {
    fields: [field_one, field_two]
  }
}

Cuando usas una medida de type: count en una exploración, la visualización etiqueta los valores resultantes con el nombre de la vista en lugar de la palabra "Count." Para evitar confusiones, te recomendamos que pluralices el nombre de tu vista, selecciones Show Full Field Name en la sección Series de la configuración de visualización o utilices un view_label con una versión en plural de tu nombre de vista.

Explorar

Una exploración es una vista que los usuarios pueden consultar. Puedes considerar 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 son exploraciones, ya que no todas las vistas describen una entidad de interés. Por ejemplo, una vista 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 deseen una manera de consultar una vista de Pedidos, por lo que definir una exploración para Pedidos tiene sentido.

Una declaración explore especifica las relaciones de unión a otras vistas. Siguiendo con los ejemplos anteriores, la vista Pedidos podría unirse a la vista Estados, lo que identifica el estado en el que se produjo una venta. Consulta Uniones para obtener más detalles.

En Looker, sus usuarios pueden ver la opción Explorars en el menú Explorar:

Por convención, las exploraciones se declaran en el archivo del modelo. En el siguiente ejemplo, se muestra la declaración de una exploración de orders para una base de datos de comercio electrónico. Las vistas orders y customers se definen en otros lugares, en sus respectivos archivos de vistas.

# ———————————————
# 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 detalles sobre las declaraciones join, consulta Uniones. Consulta la página de documentación Parámetros de unión para obtener detalles de uso completos.

Campos de dimensión y medición

Las vistas contienen campos, principalmente dimensiones y medidas, que son los componentes fundamentales de las consultas de Looker.

En Looker, una dimensión es un campo agrupable y se puede usar para filtrar resultados de consultas. Puede ser:

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

Por ejemplo, las dimensiones para una 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 medida es un campo que usa una función agregada de SQL, como COUNT, SUM, AVG, MIN o MAX. Cualquier campo calculado en función de los valores de otros valores de medida también es una medida. Las medidas se pueden usar para filtrar valores agrupados. Por ejemplo, las medidas para una vista de Ventas pueden incluir el total de artículos vendidos (un recuento), el precio de venta total (una suma) y el precio de oferta promedio (un promedio).

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

En Looker, los campos se enumeran en la página Explorar en el selector de campos en el lado izquierdo de la página.

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 los campos sin usar un nombre de columna de SQL con alcance completo.

A continuación, se presentan algunas 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 de plantilla.

Consulta la página de documentación Parámetros de campo para obtener detalles completos sobre cómo declarar campos y las distintas opciones de configuración que se pueden aplicar a ellos.

Combinaciones

Como parte de una declaración explore, cada declaración join especifica una vista que se puede unir a explore. 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 que se incorporen correctamente todos los campos.

Este es un ejemplo de join en una declaración de 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 Trabaja con uniones en LookML.

Archivos de manifiesto del proyecto

Es posible que tu proyecto contenga un archivo de manifiesto de proyecto, que se usa para configuraciones a nivel del proyecto, como las que se usan a fin de especificar otros proyectos a fin de importarlos al proyecto actual, definir constantes de LookML, especificar configuración de localización del modelo y agregar extensiones y visualizaciones personalizadas.

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 conserve en el nivel raíz de la estructura de directorios de tu proyecto.

Puedes usar un archivo de manifiesto del proyecto para importarlo o localizarlo, pero no para ambas funciones.

Para importar archivos de LookML desde un proyecto diferente, 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 se pueden almacenar 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 ese proyecto externo 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 desde otros proyectos.

Para agregar la 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.

Conjuntos

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 taladro se especifican campo por campo, por lo que obtiene un control total sobre qué datos 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 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 los campos de otras vistas mediante la especificación del 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 detalles de uso completos de los conjuntos.

Desglosar información

En Looker, puede desglosar cualquier campo que se configure de esa manera cuando escriba LookML. La perforación funciona en tablas y paneles de resultados de consultas. La perforación inicia una consulta nueva que está restringida por el valor en el que hizo clic.

El comportamiento del taladro es diferente para las dimensiones y medidas:

  • Cuando explora una dimensión, la nueva consulta filtra según el valor de la consulta. Por ejemplo, si hace clic en una fecha específica en una consulta de pedidos de clientes por fecha, la consulta nueva mostrará los pedidos solo en la fecha específica.
  • Al desglosar una medida, la consulta nueva mostrará el conjunto de datos que contribuyó a la medida. Por ejemplo, al desglosar un recuento, la consulta nueva mostrará las filas para calcular ese recuento. Cuando analiza en detalle las mediciones máximas, mínimas y promedio, muestra todas las filas que contribuyeron a esa medida. Esto significa que, por ejemplo, al desglosar una medida máxima, se muestran 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 muestran para la nueva consulta de entrenamiento se pueden definir con un conjunto o se pueden definir con el parámetro drill_fields (para campos) o drill_fields (para vistas).

Tablas derivadas

Una tabla derivada es una consulta cuyos resultados se usan como si fuera una tabla real en la base de datos. Las tablas derivadas se crean mediante 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 con el parámetro derived_table y define las dimensiones y las medidas de la misma manera que las vistas convencionales. La vista de una tabla derivada se puede consultar y unir a otras vistas, como 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 regeneran automáticamente en el programa que especifiques con una estrategia de persistencia.

Consulta la página de documentación 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 usará Looker para ejecutar consultas en su base de datos. Un administrador de Looker usa la página Conexiones para configurar las conexiones de la base de datos, y los desarrolladores de LookML usan el parámetro connection en un archivo de modelo a fin de 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.