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 base em 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 que você fornece e que não muda. 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.

  • 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 Looker: tem natureza semelhante às funções do Excel. Com as funções, você pode transformar seus dados ou dados de referência de maneiras complexas. Todas as funções disponíveis estão listadas na página de documentação 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. Quando 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 no recurso "Explorar", 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 encurtar a lista aos itens de 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 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 conforme aparece na página "Explorar" ou usar o nome do 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 do LookML para totais está no formato ${view_name.field_name:total}, em que :total é adicionado ao final do nome do campo.

Para os totais das 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 usar parênteses para substituir esse comportamento. 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 um campo, um número ou sim/não. Quando você passa o cursor sobre uma função, é possível conferir as notas exibidas ao lado da expressão no painel de informações para entender quais argumentos você precisa fornecer e de 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ões. 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 sua expressão. Se há um erro, ele explica por que ele está ocorrendo. Se houver vários erros, o que será mostrado a você será baseado na localizaçã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, 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 acessar a documentação dela.

Como incluir comentários

Para incluir comentários nas expressões do Looker, inicie a linha de comentários 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, 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 do LookML do campo, que tem a aparência de ${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:

  • 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ê diz "para qualquer linha específica, extraia a categoria do produto dessa 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 posicionais). A função de deslocamento pode ficar assim: offset(${product.category}, -1).

  • Recuperar um valor de uma coluna pivotada: também é possível recuperar valores de colunas pivotadas. Por exemplo, você pode querer a lógica "para qualquer linha, extraia o total de vendas da primeira coluna pivotada". 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 obter 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 iguais às 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 ou calcular determinados 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(). Pode ser necessário fornecer informações entre parênteses, separados por vírgulas. Esses pedaços de informação são chamados 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 usa um argumento, que é um número. Use-o 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 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 navegar diretamente para a página de documentação 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 Motivo
contém contains(string, search_string) Retorna Yes se string contiver search_string. Caso contrário, retorna No.

Você pode ver que dois argumentos são necessários. Elas têm os nomes string e search_string, mas isso não significa que você precisa digitar a palavra "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 o search_string é o que queremos pesquisar. Por exemplo:

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

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

É possível colocar funções dentro de outras para lidar com lógicas complexas. O resultado da função interna vai funcionar desde que seja adequado para os argumentos da função externa. 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á em uma função contains. Funciona assim:

  1. A função is_null() verifica o texto de feedback dos clientes.
  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. Nos dois casos, procure a palavra "great" ".