Pular para o conteúdo principal

O que são cálculos personalizados?

Os cálculos personalizados permitem que o senhor defina métricas e transformações dinâmicas sem modificar as consultas do site dataset. Este artigo explica como usar cálculos personalizados nos painéis do site AI/BI.

Por que usar cálculos personalizados?

Os cálculos personalizados permitem que o senhor crie e visualize novos campos a partir do conjunto de dados do painel existente sem modificar a fonte SQL. Você pode definir dois tipos de cálculos personalizados:

  • Medidas calculadas : Valores agregados, como o total de vendas ou o custo médio
  • Dimensões calculadas : Valores não agregados ou transformações, como categorização de faixas etárias ou formatação de strings

Exemplo: medida calculada

Suponha que o senhor tenha o seguinte dataset:

Item

Região

Preço

Custo

Maçãs

EUA

30

15

Maçãs

Canadá

20

10

Laranjas

EUA

20

15

Laranjas

Canadá

15

10

Você deseja visualizar a margem de lucro por região. Sem cálculos personalizados, o senhor precisaria criar um novo dataset com uma coluna margin:

Região

Margem

EUA

0,40

Canadá

0,43

Embora essa abordagem funcione, o novo site dataset é estático e pode suportar apenas uma única visualização. Os filtros aplicados ao dataset original não afetam o novo dataset sem ajustes manuais adicionais.

Com cálculos personalizados, você pode expressar a margem de lucro como uma agregação usando a seguinte fórmula:

SQL

(SUM(Price) - SUM(Cost)) / SUM(Price)

Essa medida é dinâmica. Quando é usado em uma visualização, ele é atualizado automaticamente para refletir os filtros aplicados ao dataset.

Exemplo: dimensão calculada

As dimensões calculadas permitem que o senhor defina valores não agregados ou transformações leves sem alterar a fonte dataset. Isso é útil quando você deseja organizar ou reformatar dados para visualização.

Por exemplo, para analisar tendências etárias por faixa etária em vez de idades individuais, você pode definir uma dimensão age_group personalizada usando a seguinte expressão:

SQL

CASE
WHEN age < 18 THEN '<18'
WHEN age BETWEEN 18 AND 24 THEN '18–24'
WHEN age BETWEEN 25 AND 34 THEN '25–34'
WHEN age BETWEEN 35 AND 44 THEN '35–44'
WHEN age BETWEEN 45 AND 54 THEN '45–54'
WHEN age BETWEEN 55 AND 64 THEN '55–64'
WHEN age >= 65 THEN '65+'
END

Benefícios de desempenho

Os cálculos personalizados são otimizados para desempenho. Quando o resultado do dataset é de 100.000 linhas ou menos, ou 100 MB ou menos (o que for menor), a filtragem e a agregação são tratadas no navegador. Isso melhora a capacidade de resposta do painel, especialmente ao aplicar filtros. Para conjuntos de dados maiores, os cálculos são processados pelo site SQL warehouse. Para obter mais detalhes, consulte otimização e armazenamento em cache do conjunto de dados.

Crie um cálculo personalizado

Este exemplo cria uma medida calculada com base no site samples.nyctaxi.trips dataset. Ele pressupõe um conhecimento geral sobre como trabalhar com os painéis do AI/BI. Se o senhor não estiver familiarizado com a criação de painéis AI/BI, consulte Criar um painel para começar.

  1. Em Data tab, crie um dataset usando a seguinte instrução:
SQL
SELECT * FROM samples.nyctaxi.trips
  1. Renomeie os dados do dataset Taxicab .

  2. Clique em Cálculo personalizado .

    O botão de cálculo personalizado é destacado no canto superior direito do painel de resultados.

  3. Um painel Criar cálculo é aberto no lado direito da tela. No campo de texto Nome , insira Custo por milha .

  4. (Opcional) No campo de texto Descrição , digite “Usa o valor da tarifa e a distância da viagem para calcular o custo por milha”.

  5. No campo Expressão , digite try_divide(SUM(fare_amount), SUM(trip_distance)).

  6. Clique em Criar .

O editor de cálculos personalizados com os valores das instruções preenchidas.

Clique no Schema tab no painel de resultados para view o cálculo personalizado e seu comentário associado.

As medidas calculadas são listadas na seção Medidas e marcadas por um Ícone de medida calculada fx. O valor associado a uma medida calculada é calculado dinamicamente quando você define o GROUP BY em uma visualização. Você não pode ver o valor na tabela de resultados. As dimensões calculadas aparecem na seção Dimensões .

Uma medida calculada aparece no esquema tab.

Use um cálculo personalizado em uma visualização

Você pode usar a medida calculada de custo por milha criada anteriormente em uma visualização.

  1. Clique em Canvas . Em seguida, coloque um novo widget de visualização na tela.
  2. Use o painel de configuração de visualização para editar as configurações da seguinte forma:
    • conjunto de dados: Dados de táxi

    • Visualização: Bar

    • Eixo X:

      • Campo: dropoff_zip
      • Tipo de escala: Categórica
      • Transformar: Nenhuma
    • Eixo Y:

      • Custo por milha
nota

Cálculos personalizados não podem ser usados com visualizações de tabela.

A imagem a seguir mostra o gráfico.

Um gráfico de barras mostrando o custo por milha versus o CEP de entrega.

As visualizações que incluem cálculos personalizados são atualizadas dinamicamente com base nos filtros aplicados. Por exemplo, se o senhor adicionar um filtro para pickup_zip à tela e selecionar um valor de filtro, a visualização será atualizada para exibir o custo por milha métricas somente para viagens originadas do valor de filtro selecionado. O gráfico de barras resultante reflete adequadamente os dados filtrados.

Editar um cálculo personalizado

Para editar um cálculo:

  1. Clique em Data (Dados) tab e, em seguida, clique em dataset associado ao cálculo que o senhor deseja editar.
  2. Clique no Schema tab no painel de resultados.
  3. Medidas e dimensões aparecem na lista de campos dataset. Clique no menu de Menu Kebab kebab à direita do cálculo que você deseja editar. Em seguida, clique em Editar .
  4. No painel Editar cálculo personalizado , atualize os campos de texto que você deseja editar. Em seguida, clique em Atualizar .

Excluir um cálculo personalizado

Para excluir um cálculo:

  1. Clique em Data (Dados) tab e, em seguida, clique em dataset associado à medida que o senhor deseja editar.
  2. Clique no Schema tab no painel de resultados.
  3. A seção Medidas aparece abaixo da lista de campos. Clique no menu de Menu Kebab kebab à direita do cálculo que você deseja editar. Em seguida, clique em Excluir .
  4. Clique em Excluir na caixa de diálogo Excluir exibida.

Limitações

Para usar cálculos personalizados, o seguinte deve ser verdadeiro:

  • As colunas usadas na expressão devem pertencer ao mesmo dataset.
  • A expressão não pode incluir chamadas para tabelas externas ou fontes de dados.

Funções suportadas

As tabelas a seguir listam as funções suportadas. A tentativa de usar uma função não suportada resulta em um erro.

Funções agregadas

Todas as medidas calculadas devem ser agregadas. Há suporte para as seguintes operações de agregação:

Agregação

Descrição

avg (expr) ou média (expr)

Retorna a média calculada em uma coluna ou expressão.

contagem (*)

Retorna o número de linhas em um grupo.

contagem (DISTINCT expr)

Retorna o número de linhas exclusivas em um grupo.

soma (expr)

Retorna o total de valores em uma coluna ou expressão.

máximo (expr)

Retorna o valor máximo em uma coluna ou expressão.

min (expr)

Retorna o valor mínimo em uma coluna ou expressão.

percentil (expr, porcentagem [, frequência])

Retorna o valor percentil exato de expr na porcentagem especificada em um grupo.

primeiro (expr [, ignoreNull])

Retorna o primeiro valor de expr para um grupo.

último (expr [, ignoreNull])

Retorna o último valor de expr para o grupo.

contar_se

Retorna a contagem de linhas que satisfazem uma determinada condição.

Mediana

Retorna a mediana de um conjunto de valores.

stddev

Retorna o desvio padrão de um conjunto de valores.

variância

Retorna a variância de um conjunto de valores.

Operações aritméticas

O senhor pode combinar expressões com as seguintes operações aritméticas:

Operação

Descrição

expr 1 + expr 2

Retorna a soma de expr1 e expr2.

expr 1 - expr 2

Retorna a diferença ao subtrair expr2 de expr1.

multiplicador * multiplicando

Retorna o produto de duas expressões.

dividendo/divisor

Retorna o resultado da divisão do dividendo pelo divisor.

- expirar

Retorna o valor negado da expressão.

+ expr

Retorna o valor da expressão.

try_add (expr 1, expr 2)

Adiciona dois valores. Se ocorrer um erro, retorna NULL.

try_subtract (expr 1, expr 2)

Subtrai expr2 de expr1. Se ocorrer um erro, retorna NULL.

try_multiply (multiplicador, multiplicando)

Multiplica dois números. Se ocorrer um erro, retorna NULL.

try_divide (dividendo, divisor)

Divide o dividendo pelo divisor. Se ocorrer um erro, retorna NULL.

potência ou potência

Retorna o resultado de expr1 elevado à potência de expr2.

Funções de elenco

Use as seguintes funções para converter valores em um tipo especificado:

Função

Descrição

cast(expr AS type)

Converte o valor expr para o tipo de dados de destino type.

try_cast(expr AS type)

Converte o valor expr para o tipo de dados de destino type com segurança.

Funções de data, timestamp e intervalo

Use as seguintes funções para trabalhar com datas, carimbos de data/hora e intervalos:

Função

Descrição

datediff(endDate, startDate)

Retorna o número de dias de startDate a endDate.

timestampdiff(unit, start, stop)

Retorna a diferença entre dois timestamps medidos em unidades.

date_format(expr, fmt)

Converte um carimbo de data/hora em uma cadeia de caracteres no formato fmt.

timediff(unit, start, stop)

Retorna a diferença entre dois timestamps medidos em unidades.

date_part

Extrai uma parte específica, como ano, mês ou dia, de uma data ou timestamp.

date_trunc

Trunca uma data ou um carimbo de data/hora para uma unidade especificada, como ano ou mês.

funções de strings

Use as seguintes funções para transformar strings:

Função

Descrição

concat(expr1, expr2[, …])

Retorna a concatenação dos argumentos.

concat_ws(sep[, expr1[, …]])

Retorna a concatenação de strings separada por sep.

Funções diversas

As seguintes funções também são suportadas:

Função

Descrição

CASE expr { WHEN opt1 THEN res1 } […] [ELSE def] END

Retorna resN para o primeiro optN que é igual a expr ou def se nenhum corresponder.

CASE { WHEN cond1 THEN res1 } […] [ELSE def] END

Retorna resN para o primeiro condN avaliado como verdadeiro ou def se nenhum for encontrado.

coalesce(expr1, expr2 [, …])

Retorna o primeiro argumento não nulo.

nvl(expr1, expr2)

Retorna expr2 se expr1 for NULL ou expr1 caso contrário.