Como criar expressões do Looker

Expressões de Looker

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

Uma expressão do Looker é criada com 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.

  • Uma constante:é um valor imutável que 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, medidas e cálculos de tabela.

  • Um 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:elas são semelhantes às funções do Excel. Com as funções, é possível transformar seus dados ou referenciá-los de maneiras complexas. Todas as funções disponíveis estão listadas na página de documentação Funções e operadores do Looker.

Como criar expressões do Looker

Os cálculos de tabela, os campos personalizados e os filtros personalizados usam o editor de expressões do Looker. Conforme você digita a expressão, o Looker sugere funções, operadores e nomes de campos que podem ser úteis.

Mostrando todas as sugestões

Acesse o editor de expressões do Looker em uma análise detalhada criando um cálculo de tabela, um campo personalizado ou um filtro personalizado.

Digite um espaço para ver uma lista de todos os campos, funções e operadores que você pode escolher. Se um campo estiver selecionado na Análise, o Looker vai mostrar um ponto preto à esquerda dele e exibir o campo na parte de cima da lista.

Comece a digitar no editor de expressões do Looker para reduzir a lista aos itens de seu interesse.

O editor de campos personalizados mostra os campos da análise detalhada que estão em uso, se forem compatíveis com a função do campo personalizado.

Como adicionar um campo

Para incluir um campo do Looker na sua expressão, comece a digitar o nome dele. Conforme você digita, o editor restringe a 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 "Analisar" ou usar o nome do LookML, se souber.

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

Como adicionar totais

Se você estiver criando uma expressão com base em uma análise detalhada em que mostrou totais, também poderá incluir totais de colunas e linhas na expressão. Os totais das colunas aparecem no editor com a palavra Total antes da iteração LookML do nome do campo. Por exemplo, para um campo chamado Contagem, o Looker vai dar ao total da coluna desse campo o nome Count - Total.

O nome da LookML para 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 Totais de linhas aparecem na frente do nome do campo no editor. No Nome do LookML do campo, :row_total é adicionado ao final do nome, como ${view_name.field_name:row_total}.

Adicionar operadores

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

Quando você passa o cursor sobre um operador, as notas para uso adequado aparecem no painel de informações.

Como adicionar funções

Para incluir uma função do Looker na sua expressão, comece a digitar o nome dela. Conforme você digita, o editor restringe a 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 um campo, um número ou sim/não. Ao passar o cursor sobre uma função, você pode verificar as notas que aparecem ao lado da expressão no painel de informações para entender quais argumentos precisam ser fornecidos e de que tipo eles precisam ser.

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

Usar dicas de erros e o painel de informações

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

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

  • Destaque de erros:o Looker sublinha em vermelho as partes da expressão que ainda não estão corretas.

  • Sugestões e detalhes do erro:o Looker dá sugestões sobre o que adicionar em seguida na sua expressão. Se houver um erro, ele vai explicar o motivo. Se houver vários erros, o que vai aparecer para você depende da posição do cursor.

  • Documentação:o Looker mostra a documentação sobre a função ou o operador com que você está trabalhando, com base na posição do cursor. Por exemplo, enquanto você digita o primeiro argumento de uma função if(), o Looker informa que ele precisa ser avaliado como verdadeiro ou falso. Clique no nome da função para acessar a documentação dela.

Incluindo comentários

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

Como usar campos

Às vezes, você quer usar o valor de um campo (uma dimensão, uma métrica ou um 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, você pode digitar o nome do campo no editor de expressões, e o Looker vai ajudar a encontrar a maneira correta de fazer referência a ele. Quando você adiciona um campo a uma expressão, o Looker usa o identificador LookML do campo, que se parece com ${view_name.field_name}. Digite o nome do campo como ele aparece no seletor de campos. O editor de expressões vai mostrar o nome do seletor e o identificador do LookML juntos.

Há várias maneiras de recuperar um valor:

  • Receber 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ê está dizendo "para qualquer linha, extraia a categoria de produto dessa linha".

  • Receber um valor de uma linha diferente:também é possível receber o valor de um campo de uma linha diferente. Por exemplo, você pode querer a lógica "para qualquer linha, extraia a categoria do produto da linha anterior". Para isso, use uma função de ajuste (consulte esta lista de funções posicionais). A função de ajuste pode ter esta aparência: offset(${product.category}, -1).

  • Extrair um valor de uma coluna dinâmica:também é possível extrair valores de colunas dinâmicas. Por exemplo, talvez você queira a lógica "para qualquer linha, extraia o total de vendas da primeira coluna dinamizada". Para trabalhar com colunas de rotação, use as funções de rotação (consulte esta lista de funções de rotação). A função de rotação pode ter esta aparência: pivot_index(${order.total_sales}, 1).

  • Receber um total de uma linha ou coluna:se você adicionou totais à sua análise detalhada, é possível receber 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, crie um cálculo de tabela assim: ${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 é considerada antes da lógica OR. A expressão a seguir sem parênteses extras:

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

é avaliado como:

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 estão entre aspas. Consulte a descrição das constantes lógicas para mais detalhes.

Como usar funções

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

As funções têm a forma de um nome seguido por dois parênteses, assim: my_function(). Talvez seja necessário fornecer informações entre esses parênteses, separadas 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 usa argumentos e fornece a data e a hora atuais. Você usa assim: now().

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

Há duas maneiras de saber quais argumentos você precisa fornecer, se houver:

  • O painel de informações que aparece ao lado do editor de expressões fornece alguma documentação sobre a função que você está escrevendo. Clique no nome da função para acessar a documentação dela.
  • Você também pode acessar diretamente a página de documentação Funções e operadores do Looker e pesquisar a função que quer usar.

Considere a função contains, que tem uma documentação assim:

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

É possível ver que dois argumentos são obrigatórios. 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. Lendo a finalidade, vemos que string deve ser um campo ou outro valor que queremos pesquisar em, enquanto search_string é o que queremos pesquisar por. Por exemplo:

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

Se a palavra "ótimo" aparecer no feedback do cliente, essa função vai retornar Yes. Caso contrário, o resultado será No.

É possível colocar funções dentro de outras para processar lógica complexa. Desde que o resultado da função interna seja adequado aos 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 está aninhada em uma função if, que está 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 de feedback do cliente, se houver, ou o texto do comentário do cliente.
  3. Por fim, a função contains() usa o texto retornado pela função if() e pesquisa a palavra "great" nele.

Logicamente, essa expressão significa: "Se houver feedback do cliente, pesquise nele. Se não for o caso, pesquise nos comentários dos clientes. Em ambos os casos, procure a palavra "ótimo".