Como criar expressões do Looker

Se o administrador tiver ativado o recurso Campos personalizados do Labs, será possível usar os seguintes recursos para executar funções comuns rapidamente sem criar expressões do Looker:

  • Cálculos rápidos para realizar cálculos comuns em campos numéricos nas tabelas de dados do Explorar.
  • Grupos personalizados para agrupar rapidamente valores por rótulos personalizados sem precisar desenvolver a lógica CASE WHEN em parâmetros sql ou campos type: case
  • Portas personalizadas para agrupar valores de dimensão de tipo numérico em níveis personalizados sem precisar desenvolver campos do LookML type: tier.

Expressões de Looker

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

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ê quiser verificar se algo está vazio ou não existe.

  • Constante: é um valor imutável fornecido por você. 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 Operadores e funções 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. O Functions transforma os dados ou os 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 (link em inglês).

Como 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 sua expressão, o Looker solicita funções, operadores e nomes de campo que você pode querer usar.

Dica: se você é um desenvolvedor do Looker que cria um teste de dados para verificar a lógica do seu modelo, pode usar o editor de expressão do Looker para criar uma expressão do Looker e, em seguida, copiar a expressão no parâmetro expression do teste de dados.

Ver todas as sugestões

Acesse o editor de expressão do Looker em um Explore criando um cálculo da tabela, um campo personalizado ou um filtro personalizado.

Digite um espaço para ver uma lista de todos os campos, funções e operadores disponíveis. Os campos usados em uma exploração são marcados com um círculo preto e aparecem na parte superior.

Comece a digitar para reduzir a lista a itens de seu interesse.

O editor de campos personalizados exibirá os campos "Explorar" que estão em uso atualmente, se eles forem compatíveis com a função do campo personalizado.

Adicionar um campo

Para incluir um campo do Looker em sua expressão, comece a digitar o nome do campo. 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 "Explorar" ou usar o nome LookML se souber.

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

Veja instruções mais detalhadas sobre o uso de campos na seção Usar campos desta página.

Adicionando totais

Se você estiver criando uma expressão baseada em uma exploração em que exibiu totais, também poderá incluir totais de coluna e linha 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. O total da coluna Contagem aparece como a primeira sugestão abaixo:

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 da linha, as palavras Totais de linhas são exibidas 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 adicionar operadores

Você pode 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á em um operador, as observações sobre o uso adequado aparecem à direita da expressão no painel de informações.

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

Como adicionar funções

Para incluir uma função do Looker na sua expressão, comece a digitar o nome da função. 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 campo, número ou sim/não. Quando o cursor está em uma função, você pode conferir as observações exibidas à direita da sua expressão no painel de informações para entender quais argumentos você precisa fornecer e que tipo eles precisam ser.

Para ver a lista completa de funções que o Looker oferece, consulte a página de documentação Funções e operadores do Looker (link em inglês).

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

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

Conforme você digita uma expressão, o Looker exibe um painel de informações à direita. Esse painel oferece documentação e sugestões, especialmente se você tiver um erro na expressão.

O editor fornece o seguinte:

  • Error Highlighting: o Looker sublinha em vermelho as partes da expressão que ainda não estão corretas.

  • Detalhes de sugestões e erros:a parte superior do painel de informações dá sugestões sobre o que adicionar a seguir na expressão. Se houver um erro, ele explica o motivo do erro. Se houver vários erros, o erro exibido será baseado na localização do cursor.

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

Incluindo comentários

É possível incluir comentários em expressões do Looker iniciando a linha de comentário com #:

Como usar campos

Às vezes, você quer usar o valor de um campo (uma dimensão, medida ou cálculo de tabela) em uma expressão. É recomendável 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. O Looker vai ajudar você a encontrar a maneira correta de se referir a ele. 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}. Esse identificador nem sempre corresponde ao nome do campo no seletor de campo, mas não é um problema caso você não saiba o que é. Digite o nome do campo como ele aparece no seletor de campo, e o editor de expressão mostrará o nome do seletor de campo e o identificador do LookML juntos.

Há várias maneiras de recuperar um valor:

  • Obter um valor da mesma linha: a maneira mais básica de usar um campo é fazendo referência direta a ele. Por exemplo, sua expressão pode usar ${product.category}. Ao fazer isso, você está dizendo "#quot;para qualquer linha", pegue a categoria do produto dessa linha."

  • Ver o 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, capturar a categoria do produto da linha anterior." Para fazer isso, você pode usar uma função de deslocamento. Consulte esta lista de funções posicionais. Ela pode ter esta aparência: offset(${product.category}, -1).

  • Receber 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, pegar o total de vendas da 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). Ela pode ter esta aparência: pivot_index(${order.total_sales}, 1).

  • Ver o total de uma linha ou coluna: se você adicionou totais a "Explorar", será possível 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, poderá criar um cálculo da tabela como este: ${orders.count} / ${orders.count:total}.

Ao fazer referência a campos em um filtro personalizado, é possível usar somente dimensões, não métricas, 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 acontece porque o Looker precisa transformar seu filtro em SQL para recuperar os 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 grupo de dimensões para mais informações.

Ao referenciar campos em um cálculo da tabela, é possível referenciar qualquer valor em 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 com parênteses, a lógica AND é considerada antes da lógica OR. A seguinte expressão 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 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 iguais às palavras "yes" e "no", que estão entre aspas. Consulte a descrição de 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. Eles são de natureza semelhante às funções do Excel.

As funções têm a forma de um nome seguido de dois parênteses, como neste exemplo: my_function(). Pode ser 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 aceita argumentos e fornece a data e a hora atuais. Ele é usado da seguinte forma: now().

A função round usa um argumento, que é um número. Ele é usado da seguinte forma: round(3.2). O resultado é 3.

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

  • O painel de informações que aparece à direita do editor de expressão fornece alguma documentação sobre a função que você está escrevendo. Você pode clicar no nome da função para acessar a documentação.
  • Você também pode navegar diretamente para a página de documentação Funções e operadores do Looker (link em inglês) e procurar a função que 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 contém 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 as palavras exatas "quot;string" e "search_string" na função. Esses são apenas nomes para os argumentos que você substituirá por algo. Ao ler a finalidade, vemos que string deve ser um campo ou outro valor que queremos pesquisar em, enquanto search_string é o que queremos pesquisar. Veja um exemplo:

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

Se a palavra "quot;great"" aparecer no feedback do cliente, essa função resultará em Yes. Caso contrário, vai resultar em No.

É possível colocar funções dentro de outras para processar lógicas complexas. Ele só funcionará se o resultado da função interna for apropriado para os argumentos da função externa. 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 é dentro de uma função contains. Veja como esse recurso funciona:

  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 de 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, esta expressão significa: "Se houver feedback do cliente, então busque nele. Caso contrário, use a pesquisa nos comentários dos clientes. Nos dois 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. A página de documentação Funções e operadores do Looker informa quais funções podem ser usadas.

Use qualquer função em um cálculo da tabela. Também é possível 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).