Como criar expressões do Looker

Expressões de Looker

As Expressões do Looker (às vezes chamadas de Lexp) são utilizadas 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: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, medições e cálculos de tabela.

  • Um operador do Looker: há vários tipos de operadores (listados na página de documentação de 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 semelhantes às funções do Excel. As funções permitem transformar ou referenciar 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.

Como criar expressões do Looker

Cálculos de tabela, campos personalizados e filtros personalizados usam o editor de expressões do Looker. Ao digitar sua expressão, o Looker mostra funções, operadores e nomes de campos que você pode usar.

Como ver todas as sugestões

Acesse o editor de expressões do Looker em uma análise 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 do campo e o campo na parte de cima da lista.

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

O editor de campos personalizados mostra os campos de análise 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 expressão, comece a digitar o nome do campo. Ao digitar, 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 de análise ou usar o nome do LookML, se o conhecer.

Quando você seleciona um campo na 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.

Como adicionar totais

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

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 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 do campo, como ${view_name.field_name:row_total}.

Como adicionar operadores

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

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

Como adicionar funções

Para incluir uma função do Looker na expressão, comece a digitar o nome da função. Ao digitar, 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. Quando você passa o cursor sobre uma função, pode conferir as observações que aparecem ao lado da expressão no painel de informações para entender quais argumentos você precisa fornecer e de que tipo eles precisam ser.

Você pode consultar a lista completa de funções oferecidas pelo Looker na página de documentação de 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 do Looker. Esse painel fornece documentação e sugestões, principalmente se houver um erro na 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 todas as partes da expressão que ainda não estão corretas.

  • Sugestões e detalhes de erros:o Looker dá sugestões sobre o que adicionar em seguida na expressão. Se houver um erro, ele explica por que o erro está ocorrendo. Se houver vários erros, o erro mostrado é 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 a informação de que o primeiro argumento precisa ser avaliado como verdadeiro ou falso. Clique no nome da função para navegar até a documentação dela.

Como incluir comentários

Você pode incluir comentários em expressões do Looker iniciando a linha de comentário com # no editor de expressões.

Como usar campos

Às vezes, você quer usar o valor de um campo (uma dimensão, medição 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 referenciar o campo. Ao adicionar um campo a uma expressão, o Looker usa o identificador do LookML do campo, que se parece com ${view_name.field_name}. Digite o nome do campo como ele aparece no seletor de campos, e o editor de expressões vai mostrar o nome do seletor de campos 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, pegue a categoria do 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, pegue a categoria do produto da linha anterior". Para fazer isso, use uma função de deslocamento (consulte esta lista de funções posicionais). A função de deslocamento pode ser assim: offset(${product.category}, -1).

  • Receber um valor de uma coluna dinâmica:também é possível receber valores de colunas dinâmicas. Por exemplo, você pode querer a lógica "para qualquer linha, pegue o total de vendas da primeira coluna dinâmica". Para trabalhar com colunas dinâmicas, use funções dinâmicas (consulte esta lista de funções dinâmicas). A função dinâmica pode ser assim: pivot_index(${order.total_sales}, 1).

  • Receber um total de uma linha ou coluna: Se você adicionou totais à análise, pode receber 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}.

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 adicionais:

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

é avaliada 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 determinadas 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, como este: my_function(). Talvez seja necessário fornecer informações dentro desses parênteses, separadas por vírgulas. Essas informações são chamadas de "argumentos" e se parecem com esta: my_function(argument_1, argument_2).

Por exemplo, a função now não recebe argumentos e fornece a data e hora atuais. Ela é usada assim: now().

A função round recebe um argumento, que é um número. Ela é usada 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 navegar até a documentação dela.
  • Você também pode navegar diretamente até a página de documentação de funções e operadores do Looker e procurar a função que quer usar.

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

Função Sintaxe Finalidade
contains contains(string, search_string) Retorna Yes se string contém search_string, e No caso contrário

É possível notar que dois argumentos são necessários. Eles têm os nomes string e search_string, mas isso não significa que você precise 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 a finalidade, vemos que string precisa ser um campo ou outro valor em que queremos pesquisar in, enquanto search_string é o que queremos pesquisar for. Um exemplo pode ser:

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

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

Você pode colocar funções dentro de outras funções para processar lógicas complexas. Desde que o resultado da função interna seja adequado para os argumentos da função externa, ela vai funcionar. Por exemplo:

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

A função is_null está aninhada dentro de uma função if, que está dentro de uma função contains. Ela 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 pesquisa a palavra "great".

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