Criar expressões do Looker

Expressões de Looker

As expressões do Looker (às vezes chamadas de Lexp) são usadas para realizar cálculos para:

Uma expressão do Looker é criada a partir de uma combinação destes elementos:

  • NULL:o valor NULL indica que não há dados e pode ser útil quando você quer verificar se algo está vazio ou não existe.

  • Constante:é um valor que não muda quando você fornece. Um número como 7 ou uma string como Completed são constantes.

  • Um campo do Looker:uma referência a um campo do Looker, que inclui dimensões, medições e cálculos de tabela.

  • Operador do Looker:há vários tipos de operadores, que estão listados na página de documentação Funções e operadores do Looker:

    • Operadores matemáticos (como +, -, * e /)
    • Operadores de comparação (como =, > e <=)
    • Operadores lógicos (como AND, OR e NOT)
  • Uma função do Looker:é semelhante às funções do Excel por natureza. As funções permitem transformar seus dados ou fazer referência a dados de maneiras complexas. Todas as funções disponíveis estão listadas na página de documentação de funções e operadores do Looker.

Criar expressões do Looker

Cálculos de tabela, campos personalizados e filtros personalizados usam o editor de expressões do Looker. Conforme você digita a expressão, o Looker mostra funções, operadores e nomes de campo que podem ser usados.

Mostrando todas as sugestões

Para acessar o editor de expressões do Looker em uma Análise, crie cálculos de tabela, campo personalizado ou filtro personalizado.

Digite um espaço para ver uma lista de todos os campos, funções e operadores que podem ser escolhidos. Se um campo estiver selecionado em "Explorar", o Looker exibirá um ponto preto à esquerda do campo e o exibirá na parte superior da lista.

Comece a digitar no editor de expressão do Looker e reduza a lista para mostrar itens do seu interesse.

O editor de campos personalizados mostra os campos em uso, se eles forem compatíveis com a função deles.

Adicionar um campo

Para incluir um campo do Looker na sua expressão, comece a digitar o nome do campo. Conforme você digita, o editor restringe sua pesquisa a uma lista de campos e funções que contêm o que você digitou. Você pode digitar o nome do campo como ele aparece na página "Explorar" ou usar o nome no LookML, se souber.

Quando você seleciona um campo da lista, o Looker o adiciona à expressão usando o nome do LookML no formato ${view_name.field_name}. Isso garante que todos os campos tenham nomes exclusivos na expressão.

Adicionar totais

Ao criar uma expressão baseada em uma Análise em que os totais exibidos são exibidos, também é possível incluir totais de colunas e linhas na expressão. Os totais das colunas aparecem no editor com a palavra Total na frente da iteração do LookML no nome do campo. Por exemplo, para um campo chamado Contagem, o Looker dará o nome Count - Total ao total da coluna.

O nome LookML dos totais está no formato ${view_name.field_name:total}, em que :total é adicionado ao final do nome do campo.

Para totais de linhas, as palavras Total da linha aparecem na frente do nome do campo no editor e, no nome do LookML do campo, :row_total é adicionado ao final do nome do campo, como ${view_name.field_name:row_total}.

Adicionar operadores

É possível adicionar operadores lógicos como AND, OR e NOT à expressão, se necessário. Normalmente, os operadores AND são avaliados antes dos OR, mas é possível substituir esse comportamento usando parênteses. Também é possível usar operadores de comparação (como >, = e <=) e operadores matemáticos (como + e *).

Quando você passa o cursor sobre um operador, observações sobre o uso adequado são exibidas no painel de informações.

Adicionar funções

Para incluir uma função do Looker na sua expressão, digite o nome dela. Conforme você digita, o editor restringe sua pesquisa a uma lista de campos e funções que contêm o que você digitou.

As funções podem ser construídas com argumentos (ou variáveis) que exigem um determinado tipo, como campo, número ou sim/não. Ao passar o cursor sobre uma função, você pode conferir as observações exibidas ao lado da expressão no painel de informações para entender quais argumentos precisam ser fornecidos e que tipo eles precisam ser.

Consulte a lista completa de funções que o Looker oferece na página de documentação Funções e operadores do Looker.

Como usar dicas de erro e o painel de informações

O Looker mostra um painel de informações ao lado do editor de expressão do Looker. Esse painel fornece documentação e sugestões, especialmente se houver um erro em sua expressão.

O painel de informações ao lado do editor de expressões mostra as seguintes informações:

  • Destaque de erro:o Looker sublinha em vermelho todas as partes da expressão que ainda não estiverem corretas.

  • Sugestões e detalhes do erro:o Looker dá sugestões sobre o que adicionar em seguida na expressão. Se há um erro, ele explica por que ele está ocorrendo. Se houver vários erros, o erro exibido será baseado na localização do cursor.

  • Documentação:o Looker exibe documentação sobre a função ou o operador com que você está trabalhando, com base na posição do cursor. Por exemplo, ao digitar o primeiro argumento de uma função if(), o Looker fornece as informações que o primeiro argumento precisa avaliar como verdadeiro ou falso. Clique no nome da função para navegar até a documentação dela.

Incluindo comentários

Para incluir comentários em expressões do Looker, comece a linha de comentário com # no editor de expressões.

Como usar campos

Às vezes, você precisará usar o valor de um campo (uma dimensão, medida ou cálculo de tabela) em uma expressão. Você pode adicionar o valor do campo a outra coisa, verificar se ele tem um determinado valor, incluí-lo em uma função ou muitas outras possibilidades.

Conforme descrito anteriormente nesta página, é possível digitar o nome do campo no editor de expressões, e o Looker vai ajudar você a encontrar a maneira correta de referenciar o campo. Quando você adiciona um campo a uma expressão, o Looker usa o identificador LookML do campo, que tem esta aparência: ${view_name.field_name}. Digite o nome do campo como ele aparece no seletor de campo, e o editor de expressões vai mostrar o nome do seletor de campo e o identificador do LookML juntos.

Há várias maneiras de recuperar um valor:

  • Receba um valor da mesma linha: a maneira mais básica de usar um campo é referenciá-lo diretamente. Por exemplo, sua expressão pode usar ${product.category}. Ao fazer isso, você diz: "para qualquer linha, pegue a categoria do produto daquela linha".

  • Receba um valor de uma linha diferente: também é possível receber o valor de um campo de uma linha diferente. Por exemplo, talvez você queira a lógica "para qualquer linha determinada, selecione a categoria do produto da linha anterior". Para isso, você pode usar uma função de deslocamento (consulte esta lista de funções de posição). A função de deslocamento pode ficar assim: offset(${product.category}, -1).

  • Receber um valor de uma coluna dinâmica: você também pode extrair valores de colunas dinâmicas. Por exemplo, você pode querer a lógica “para qualquer linha determinada, pegue o total de vendas na primeira coluna dinâmica”. Para trabalhar com colunas dinâmicas, você precisará usar funções dinâmicas. Consulte esta lista de funções dinâmicas. A função de tabela dinâmica pode ficar assim: pivot_index(${order.total_sales}, 1).

  • Ver o total de uma linha ou coluna:se você adicionou totais a sua Análise, pode ver os valores totais da coluna ou linha adicionando :total (para totais de colunas) ou :row_total (para totais de linhas) ao nome do campo, usando o formato ${field_name:total}. Por exemplo, se você quiser uma porcentagem do total de uma contagem de Pedidos, pode criar um cálculo de tabela como este: ${orders.count} / ${orders.count:total}.

Como usar operadores

As expressões do Looker podem incluir operadores lógicos, de comparação e matemáticos para criar condições diferentes:

  • Operadores lógicos (como AND, OR e NOT)
  • Operadores de comparação (como > e <)
  • Operadores matemáticos (como + e -)

A menos que você especifique o contrário com parênteses, a lógica AND será considerada antes da lógica OR. A expressão a seguir sem parênteses adicionais:

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

é avaliado da seguinte forma:

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

No Looker, use yes e no em vez de true e false. Essas constantes lógicas não são a mesma coisa que as palavras "yes" e "no", que ficam entre aspas. Consulte a descrição das constantes lógicas para saber mais detalhes.

Como usar funções

As expressões do Looker geralmente incluem uma ou mais funções, que ajudam a recuperar certos dados ou calcular certos dados. Elas são semelhantes em natureza às funções do Excel.

As funções assumem a forma de um nome seguido por dois parênteses, desta forma: my_function(). Talvez seja necessário fornecer informações entre parênteses, separados por vírgulas. Essas informações são chamadas de "argumentos" e têm esta aparência: my_function(argument_1, argument_2).

Por exemplo, a função now não recebe argumentos e informa a data e a hora atuais. Use assim: now().

A função round tem um argumento, que é um número. Use assim: round(3.2). O resultado é 3.

Há duas maneiras de saber quais argumentos você precisará fornecer, se for o caso:

  • O painel de informações que aparece ao lado do editor de expressões oferece documentação sobre a função que você está escrevendo. Clique no nome da função para navegar até a documentação dela.
  • Também é possível acessar diretamente a página de documentação das funções e operadores do Looker e procurar a função que você quer usar.

Considere a função contains, que tem uma documentação parecida com esta:

Função Sintaxe Finalidade
contém contains(string, search_string) Retorna Yes se string contiver search_string. Caso contrário, retorna No.

Observe que são necessários dois argumentos. Elas têm os nomes string e search_string, mas isso não significa que você precisa digitar a palavra exata "string" e "search_string" na função. Esses são apenas nomes para os argumentos que você vai substituir por algo. Ao ler o propósito, vemos que string precisa ser um campo ou outro valor em que queremos pesquisar, enquanto search_string é o que queremos pesquisar. Por exemplo:

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

Se a palavra "Ótimo" aparecer no feedback do cliente, essa função vai gerar um resultado de Yes. Caso contrário, gera um resultado de No.

É possível colocar funções dentro de outras para lidar com lógicas complexas. Contanto que o resultado da função interna seja adequado para os argumentos da função externa, ela vai funcionar. Exemplo:

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

A função is_null é aninhada dentro de uma função if, que fica dentro de uma função contains. Funciona assim:

  1. A função is_null() verifica o texto de feedback do cliente.
  2. Em seguida, a função if() usa esse resultado e retorna o texto do feedback do cliente, se houver, ou retorna o texto do comentário do cliente.
  3. Por fim, a função contains() usa o texto retornado pela função if() e procura a palavra "great".

Logicamente, essa expressão significa: “Se houver feedback do cliente, pesquise-o. Caso contrário, pesquise nos comentários dos clientes. Em ambos os casos, procure a palavra "great" ".