Crear expresiones de Looker

Realizar expresiones de Looker

Las expresiones de Looker (a veces denominadas Lexp) se usan para realizar cálculos para lo siguiente:

Una expresión de Looker se crea a partir de una combinación de estos elementos:

  • NULL: El valor NULL indica que no hay datos y puede ser útil cuando deseas verificar que algo esté vacío o no exista.

  • Una constante: Una constante es un valor inmutable que proporcionas. Un número como 7 o una cadena como Completed son constantes.

  • Un campo de Looker: Es una referencia a un campo de Looker, que incluye dimensiones, medidas y cálculos basados en tablas.

  • Un operador de Looker: hay varios tipos de operadores (que se enumeran en la página de documentación de funciones y operadores de Looker):

    • Operadores matemáticos (como +, -, * y /)
    • Operadores de comparación (como =, > y <=)
    • Operadores lógicos (como AND, OR y NOT)
  • Una función de Looker: Son similares por naturaleza a las funciones de Excel. Las funciones te permiten transformar tus datos o hacer referencia a datos de maneras complejas. Todas las funciones disponibles se enumeran en la página de documentación de funciones y operadores de Looker.

Crear expresiones de Looker

Los cálculos basados en tablas, los campos personalizados y los filtros personalizados usan el editor de expresiones de Looker. A medida que escribes tu expresión, Looker te solicita funciones, operadores y nombres de campo que podrías usar.

Mostrando todas las sugerencias

Para acceder al editor de expresiones de Looker en una exploración, crea un cálculo de tabla, un campo personalizado o un filtro personalizado.

Escribe un espacio para ver una lista de todos los campos, funciones y operadores entre los que puedes elegir. Si hay un campo seleccionado en Explorar, se mostrará un punto negro a la izquierda de Looker y este se mostrará en la parte superior de la lista.

Comienza a escribir en el editor de expresiones de Looker para acortar la lista a elementos que te interesen.

El editor de campos personalizados muestra los campos Explorar que se están usando actualmente, si son compatibles con la función del campo personalizado.

Agrega un campo

Para incluir un campo de Looker en tu expresión, comienza a escribir el nombre del campo. A medida que escribes, el editor limita la búsqueda a una lista de campos y funciones que contienen lo que escribiste. Puedes escribir el nombre del campo como aparece en la página Explorar o usar su nombre de LookML si lo conoces.

Cuando seleccionas un campo de la lista, Looker lo agrega a tu expresión con el nombre de LookML en el formulario ${view_name.field_name}. Esto garantiza que todos los campos tengan nombres únicos en la expresión.

Cómo agregar totales

Si creas una expresión basada en una exploración en la que mostraste los totales, también puedes incluir los totales de las columnas y las filas en tu expresión. Los totales de las columnas aparecen en el editor con la palabra Total antes de la iteración de LookML del nombre del campo. Por ejemplo, para un campo llamado Recuento, Looker le dará el nombre Count - Total a la columna total de ese campo.

El nombre de LookML para los totales tiene el formato ${view_name.field_name:total}, en el que se agrega :total al final del nombre del campo.

En el caso de los totales de fila, las palabras Totales de filas aparecen delante del nombre del campo en el editor. y, en el LookML name del campo, se agrega :row_total al final del nombre del campo, como ${view_name.field_name:row_total}.

Agrega operadores

Puedes agregar operadores lógicos como AND, OR y NOT a tu expresión si es necesario. Por lo general, los operadores AND se evalúan antes que los operadores OR, pero puedes anular este comportamiento con paréntesis. También puedes usar operadores de comparación (como >, = y <=) y operadores matemáticos (como + y *).

Cuando colocas el cursor sobre un operador, se muestran notas para el uso adecuado en el panel de información.

Agrega funciones

Para incluir una función de Looker en tu expresión, comienza a escribir el nombre de la función. A medida que escribes, el editor reduce tu búsqueda a una lista de campos y funciones que contienen lo que escribiste.

Las funciones pueden construirse con argumentos (o variables) que requieren un tipo determinado, como un campo, un número o sí/no. Cuando colocas el cursor sobre una función, puedes revisar las notas que se muestran junto a tu expresión en el panel de información para comprender qué argumentos debes proporcionar y de qué tipo deben ser.

Puedes consultar la lista completa de funciones que ofrece Looker en la página de documentación Funciones y operadores de Looker.

Usa sugerencias de errores y el panel de información

Looker muestra un panel de información junto al editor de expresiones de Looker. En este panel, se proporcionan documentación y sugerencias, en especial si tienes un error en tu expresión.

El panel de información junto al editor de expresiones proporciona la siguiente información:

  • Error destacado: Looker subraya en rojo las partes de la expresión que aún no son correctas.

  • Detalles de sugerencias y errores: Looker brinda sugerencias sobre qué agregar a continuación en tu expresión. Si hay un error, explica por qué está ocurriendo. Si hay varios errores, el error que se muestra se basa en la ubicación de tu cursor.

  • Documentación: Looker muestra documentación sobre la función o el operador con el que estás trabajando, según la posición de tu cursor. Por ejemplo, mientras escribes el primer argumento de una función if(), Looker proporciona la información que el primer argumento debe evaluar como verdadero o falso. Puedes hacer clic en el nombre de la función para navegar a su documentación.

Incluir comentarios

Puedes incluir comentarios en expresiones de Looker si comienzas la línea de comentarios con # en el editor de expresiones.

Usa campos

En algunos casos, querrás usar el valor de un campo (una dimensión, una medida o un cálculo basado en tablas) en una expresión. Es posible que quieras agregar el valor del campo a otra cosa, comprobar que tenga un valor determinado, incluirlo en una función o muchas otras posibilidades.

Como se describió antes en esta página, puedes escribir el nombre del campo en el editor de expresiones, y Looker te ayudará a encontrar la forma correcta de hacer referencia al campo. Cuando agregas un campo a una expresión, Looker usa el identificador de LookML del campo, que es similar a ${view_name.field_name}. Escribe el nombre del campo como aparece en el selector de campos, y el editor de expresiones te mostrará el nombre del selector de campos y el identificador de LookML juntos.

Existen varias formas de recuperar un valor:

  • Obtén un valor de la misma fila: La forma más básica de usar un campo es hacer referencia a él directamente. Por ejemplo, tu expresión podría usar ${product.category}. Cuando haces esto, le dices a la función que, para cualquier fila determinada, tome la categoría de producto de esa fila.

  • Obtén un valor de una fila diferente: También puedes obtener el valor de un campo de una fila diferente. Por ejemplo, puedes usar la lógica “para cualquier fila dada, tomar la categoría de producto de la fila anterior”. Para ello, puedes usar una función de desplazamiento (consulta esta lista de funciones posicionales). La función de desplazamiento podría verse de la siguiente manera: offset(${product.category}, -1).

  • Obtén un valor de una columna dinámica: También puedes obtener valores de las columnas dinámicas. Por ejemplo, quizás desees usar la lógica “para cualquier fila dada, toma las ventas totales de la primera columna dinámica”. Para trabajar con las columnas dinámicas, debes usar funciones dinámicas (consulta esta lista de funciones dinámicas). La función dinámica podría verse de la siguiente manera: pivot_index(${order.total_sales}, 1).

  • Cómo obtener un total de una fila o columna: Si agregaste totales a tu exploración, puedes obtener los valores totales de la columna o fila si sumas :total (para los totales de la columna) o :row_total (para los totales de la fila) al nombre del campo, con el formato ${field_name:total}. Por ejemplo, si quieres un porcentaje del total de un recuento de Pedidos, puedes crear un cálculo basado en tablas como este: ${orders.count} / ${orders.count:total}.

Uso de operadores

Las expresiones de Looker pueden incluir operadores lógicos, de comparación y matemáticos para crear diferentes condiciones:

  • Operadores lógicos (como AND, OR y NOT)
  • Operadores de comparación (como > y <)
  • Operadores matemáticos (como + y -)

A menos que especifiques lo contrario con paréntesis, la lógica de AND se considera antes que la lógica de OR. La siguiente expresión sin paréntesis adicionales:

if (
  ${order_items.days_to_process}>=4 OR
  ${order_items.shipping_time}>5 AND
  ${order_facts.is_first_purchase},
"review", "okay")

se evalúa de la siguiente manera:

if (
  ${order_items.days_to_process}>=4 OR
  (${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")

En Looker, debes usar yes y no en lugar de true y false. Estas constantes lógicas no son lo mismo que las palabras "yes" y "no", que se encuentran entre comillas. Consulta la descripción de las constantes lógicas para obtener más detalles.

Uso de las funciones

Las expresiones de Looker suelen incluir una o más funciones que te ayudan a recuperar ciertos datos o calcular ciertos aspectos. Son similares a las funciones de Excel.

Las funciones toman la forma de un nombre seguido de dos paréntesis, como este: my_function(). Es posible que debas proporcionar información entre paréntesis, separada por comas. Estos fragmentos de información se denominan “argumentos” y se verá de la siguiente manera: my_function(argument_1, argument_2).

Por ejemplo, la función now no toma ningún argumento y te proporciona la fecha y hora actuales. Se usa de la siguiente manera: now().

La función round toma un argumento, que es un número. Se usa de la siguiente manera: round(3.2). El resultado es 3.

Existen dos maneras de saber qué argumentos debes proporcionar, si corresponde:

  • En el panel de información que aparece junto al editor de expresiones, se proporciona documentación sobre la función que estás escribiendo. Puedes hacer clic en el nombre de la función para navegar a su documentación.
  • También puedes navegar directamente a la página de documentación de funciones y operadores de Looker y buscar la función que quieres usar.

Considera la función contains, que tiene documentación que se ve de la siguiente manera:

Función Sintaxis Objetivo
contiene contains(string, search_string) Muestra Yes si string contiene search_string y No en caso contrario

Puedes ver que se requieren dos argumentos. Tienen los nombres string y search_string, pero eso no significa que debas escribir la palabra exacta "cadena". y "cadena_búsqueda" a la función. Estos son solo nombres para los argumentos que reemplazarás por algo. Cuando leemos el propósito, vemos que string debe ser un campo o algún otro valor en el que queremos buscar, mientras que search_string es lo que queremos buscar. Por ejemplo:

contains(${customer.feedback_text}, "great")

Si la palabra “genial” aparece en los comentarios de los clientes, esta función muestra un resultado de Yes. De lo contrario, da como resultado No.

Puedes colocar funciones dentro de otras funciones para manejar una lógica compleja. Siempre que el resultado de la función interna sea apropiado para los argumentos de la función externa, funcionará. Por ejemplo:

contains(
  if(
    is_null(${customer.feedback_text}),
    ${customer.comment_text},
    ${customer.feedback_text}
  ),
"great")

La función is_null está anidada dentro de una función if, que se encuentra dentro de una función contains. Funciona de la siguiente manera:

  1. La función is_null() verifica el texto de los comentarios de los clientes.
  2. A continuación, la función if() usa ese resultado y muestra el texto de comentarios del cliente, si corresponde. De lo contrario, muestra el texto de comentario del cliente.
  3. Por último, la función contains() usa el texto que muestra la función if() y busca la palabra "great".

Desde el punto de vista lógico, esta expresión significa: "Si hay comentarios de los clientes, realiza una búsqueda. De lo contrario, busca en los comentarios de los clientes. En ambos casos, busca la palabra “grande” ”.