Como criar expressões do Looker

Se o administrador tiver concedido permissões para você criar cálculos de tabelas, será possível usar os seguintes recursos para executar funções comuns rapidamente sem criar expressões do Looker:

  • Cálculos de atalhos para realizar cálculos comuns rapidamente em campos numéricos na tabela de dados de uma Análise.

Se o administrador tiver concedido permissões para você criar campos personalizados, será possível usar os seguintes recursos para executar funções comuns rapidamente sem precisar 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.

  • Uma constante: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 (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:são de natureza semelhante às funções do Excel. 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 Funções e operadores do Looker.

Como criar expressões do Looker

Os cálculos de tabela, campos personalizados e filtros personalizados usam o editor de expressões do Looker. Conforme você digita sua expressão, o Looker mostra as funções, operadores e nomes de campo que talvez você queira usar.

Dica: se você desenvolve um teste de dados no Looker para verificar a lógica do modelo, use o editor de expressões do Looker para criar uma expressão do Looker e a copie no parâmetro expression do teste de dados.

Mostrando todas as sugestões

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

Digite um espaço para conferir 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 círculo preto à esquerda do campo e o campo na parte de cima da lista.

Comece a digitar para encurtar a lista e exibir itens de seu interesse.

O editor de campos personalizados exibe os campos "Explorar" em uso no momento, 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 dele. 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 LookML dele, 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.

Leia instruções mais detalhadas sobre o uso de campos na seção Como usar campos desta página.

Adicionando os totais

Se você estiver criando uma expressão baseada em um Explore em que você exibiu totais, também poderá incluir totais de colunas e linhas na expressão. Os totais da coluna aparecem no editor com a palavra Total na frente da iteração do LookML do nome do campo. Por exemplo, no caso de um campo Count, o Looker dá o nome Count - Total ao total da coluna desse campo.

O nome LookML dos 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.

Adicionar operadores

É possível adicionar operadores lógicos, como AND, OR e NOT, à sua expressão, se necessário. 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 operadores matemáticos (como + e *).

Quando o cursor está sobre um operador, as observações para uso adequado são exibidas à direita da expressão no painel de informações.

Confira instruções mais detalhadas sobre o uso de operadores na seção Como usar operadores nesta página.

Adicionar funções

Para incluir uma função do Looker na 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 de argumentos (ou variáveis) que exigem um determinado tipo, como um campo, um número ou sim/não. Quando o cursor está sobre uma função, você pode verificar as observações que aparecem à direita da sua expressão no painel de informações para entender quais argumentos você precisa fornecer 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.

É possível ler instruções mais detalhadas sobre o uso de funções na seção Como usar funções desta página.

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

Quando você digita uma expressão, o Looker mostra um painel de informações à direita. Esse painel fornece documentação e sugestões, especialmente se houver um erro na sua expressão.

O editor oferece o seguinte:

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

  • Sugestões e detalhes do erro:a parte superior do painel de informações apresenta sugestões sobre o que adicionar à expressão. Se houver um erro, ele explica por que ele está ocorrendo. Se houver vários erros, o erro exibido se baseia na localização do cursor.

  • Documentação:na parte de baixo do painel de informações, o Looker mostra a documentação da função ou do 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 fornece as informações que o primeiro argumento precisa avaliar como verdadeiro ou falso. Clique no nome da função na seção para acessar a documentação dela.

Incluindo comentários

É possível incluir comentários nas expressões do Looker começando a linha do comentário com #.

Como usar campos

Às vezes, você desejará usar o valor de um campo (uma dimensão, medida ou cálculo de tabela) em uma expressão. Você pode querer 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 acima, digite o nome do campo no editor de expressões, e o Looker vai ajudar você a encontrar a maneira correta de referenciá-lo. Quando você adiciona um campo a uma expressão, o Looker usa o identificador LookML do campo, que tem este formato ${view_name.field_name}. Esse identificador nem sempre corresponde ao nome do campo no seletor de campo, mas não tem problema se você não souber o que é. Digite o nome do campo como ele aparece no seletor de campo, e o editor de expressões mostrará o nome do seletor de campo e o identificador LookML juntos.

Há várias maneiras de recuperar um valor:

  • Conseguir 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, use a categoria do produto nela".

  • Extrair um valor de uma linha diferente: também é possível receber o valor de um campo em uma linha diferente. Por exemplo, você pode usar a lógica "para qualquer linha, usar a categoria do produto na linha anterior". Para fazer isso, você pode usar uma função Offset. Consulte esta lista de funções posicionais. A função de deslocamento pode ter esta aparência: offset(${product.category}, -1).

  • Extrair um valor de uma coluna dinâmica: você também pode receber 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. Veja esta lista de funções dinâmicas. A função dinâmica pode ter esta aparência: pivot_index(${order.total_sales}, 1).

  • Conferir um total de uma linha ou coluna:se você adicionou os totais à Análise, poderá 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, crie um cálculo de tabela como este: ${orders.count} / ${orders.count:total}.

Ao fazer referência a campos em um filtro personalizado, você só pode usar dimensões, e não medidas, totais ou cálculos de tabela. Além disso, não é possível fazer referência a valores em outras linhas ou colunas dinâmicas. Isso ocorre porque o Looker precisa ser capaz de transformar seu filtro em SQL para recuperar seus dados.

Nem todas as opções de data e hora são compatíveis com filtros personalizados ou campos personalizados. Consulte a descrição do parâmetro dimension group para mais informações.

Ao fazer referência a campos em um cálculo de tabela, é possível referenciar qualquer valor de qualquer dimensão, medida ou outro cálculo de tabela.

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 entre parênteses, a lógica AND é considerada antes da lógica OR. A seguinte expressão sem outros parênteses:

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 ver 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 coisas. Elas são de natureza semelhante às funções do Excel.

As funções assumem a forma de um nome seguido por dois parênteses, como este: 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-o da seguinte forma: now().

A função round usa um argumento, que é um número. Use-o da seguinte forma: 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 à direita do editor de expressões fornece uma documentação sobre a função que você está criando. Clique no nome da função para acessar a documentação.
  • 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 semelhante a 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 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 o objetivo, 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 "great" aparecer no feedback do cliente, essa função gerará um resultado de Yes. Caso contrário, ela vai gerar um resultado de No.

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

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

Aqui, aninhamos a função is_null dentro de 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 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" (grande).

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

Filtros personalizados e campos personalizados podem usar a maioria das funções, mas não podem usar algumas funções matemáticas ou funções que se referem a outras linhas ou colunas dinâmicas. Na página de documentação Funções e operadores do Looker, você encontra informações sobre quais funções podem ser usadas.

É possível usar qualquer função em um cálculo de tabela. Você também pode usar qualquer função no parâmetro expression de um teste de dados, já que o parâmetro expression é essencialmente um cálculo de tabela que resulta em um sim (booleano) (booleano).