Criar cálculos eficientes

Quando os seus dados não fornecem todas as informações necessárias para responder às suas perguntas, você pode criar campos calculados para ajudar com a análise.

Em um campo calculado, você pode definir uma constante pré-progamada (como uma taxa fiscal), fazer operações matemáticas muito simples, como subtração ou multiplicação (por exemplo, receitas menos custo), usar fórmulas matemáticas mais complexas, realizar testes lógicos (IF/THEN, CASE), fazer conversões de tipo, enviar expressões a serviços externos, como R, e muito mais.

Existem tipos diferentes de cálculos no Tableau:

Cálculos básicos e agregados: esses tipos de cálculos são gerados como parte da consulta à fonte de dados subjacente e são calculados no banco de dados. Em geral, os cálculos básicos e agregados são escalonados de forma eficiente e há muitas técnicas de ajuste de banco de dados que podem melhorar a eficiência deles.

Cálculos de tabela: esses cálculos são calculados pelo Tableau no conjunto de resultados da consulta. Embora isso signifique mais trabalho para o Tableau, os cálculos de tabela geralmente são feitos em um conjunto muito menor de registros que os da fonte de dados original. Se o desempenho do cálculo de tabela for um problema (possivelmente pelo conjunto de resultados retornados ao Tableau ser muito grande) considere transferir alguns aspectos do cálculo para a camada de fonte de dados. Uma maneira de fazer isso é agregar os dados e, em seguida, realizar o cálculo nos dados agregados.

Expressões de nível de detalhe (LOD): As expressões LOD são geradas como parte da consulta à fonte de dados subjacente e são calculadas no banco de dados. Elas são expressas como uma seleção agrupada, portanto, dependem do desempenho do banco de dados. Um cálculo ou união de tabela pode ter melhor desempenho que uma expressão LOD ou vice-versa.

Se suspeitar que o desempenho esteja lento devido a uma expressão LOD, você pode tentar substituí-la por um cálculo de tabela ou combinação de dados, para ver se o desempenho melhora. Por exemplo, consulte o Exemplo 2 na Ordem de operação do Tableau.

As expressões LOD podem ser afetadas pela separação de união, portanto consulte Assumir a integridade referencial para uniões de colunas se as suas consultas são executadas lentamente quando você usa as expressões LOD.

Para obter mais informações, consulte o documento do Tableau Compreensão das expressões de nível de detalhe (LOD).

Usar parâmetros para cálculos condicionais

Uma técnica comum no Tableau é mostrar um controle de parâmetro, para que os usuários possam selecionar um valor que determine como um cálculo é realizado. Normalmente, para fornecer ao usuário opções de fácil compreensão, faz mais sentido criar o parâmetro como um tipo de cadeia de caracteres. Mas os cálculos numéricos são muito mais rápidos que os cálculos de cadeia de caracteres, portanto utilize o recurso Exibir como dos parâmetros: ou seja, mostre os rótulos da tabela, porém use os valores inteiros subjacentes para a lógica do cálculo. Para obter mais informações, consulte Criar parâmetros.

Converter campos de data

Os usuários frequentemente têm dados de data não armazenados nos formatos de data nativos, por exemplo, uma data pode ser uma cadeia de caracteres ou um carimbo de data e hora numérico. Você pode usar a função DATEPARSE se os seus dados forem compatíveis com ela — essa função está disponível para conexões não herdadas do Microsoft Excel e arquivo de texto, MySQL, Oracle, PostgreSQL e fontes de dados de extração de dados do Tableau. Caso contrário, analise o campo em uma cadeia de caracteres de data como “2012-01-01”. As cadeias de caracteres ISO são preferidas porque não são específicas ao local. Em seguida, passe o valor à função DATE. Se os dados de origem forem um campo numérico, convertê-los em uma cadeia de caracteres e, em seguida, em uma data é muito ineficiente. É muito melhor manter os dados como numéricos e usar DATEADD e valores literais de data para fazer o cálculo. Os ganhos no desempenho podem ser significativos com conjuntos de dados maiores. Consulte Funções de data para obter mais informações sobre essas funções.

Use as instruções de lógica CASE

Ao trabalhar com instruções lógicas complexas, as instruções CASE podem ser mais rápidas do que as instruções IF ou ELSEIF.

Lembre-se de que ELSEIF é mais rápida que ELSE IF, porque uma IF agrupada calcula uma segunda instrução IF em vez de ser calculada como parte da primeira.

Para obter mais informações, consulte o white paper Projeção de pastas de trabalho eficientes..

Agregar medidas

Se as exibições criadas estiverem lentas, verifique se você está trabalhando com medidas agregadas. Ao desagregar os dados, você pode estar tentando exibir muitas linhas de dados ao mesmo tempo. É possível reduzir o número de linhas agregando os dados. Ao fazer isso, selecione Análise > Agregar medidas.

Dicas de cálculo

Há muitas pequenas ações que você pode realizar para melhorar o desempenho do cálculo.

  • Os valores de contagem distinta é um dos tipos de agregação mais lentos em quase todas as fontes de dados. Use a agregação COUNTD com moderação.

  • Usar os parâmetros com um escopo amplo de impacto (por exemplo, em uma instrução SQL personalizada) pode afetar o desempenho do cache.

  • Filtrar cálculos complexos pode fazer com que os índices sejam ignorados nos dados subjacentes.

  • Funções de script como RAWSQL e SCRIPT_* para integração aos serviços externos podem ser lentas, especialmente, se há muitos valores que precisam ser transferidos para dentro e para fora do servidor DBMS/R.

  • Use NOW somente se você precisar do nível de detalhe de carimbo de data e hora. Use TODAY para cálculos de nível de data.

  • Lembre-se de que todos os cálculos básicos passam pelos dados subjacentes — mesmo os cálculos literais como cadeias de caracteres de rótulo. Se você criar rótulos (por exemplo, para cabeçalhos de coluna) e os seus dados forem muito grandes, crie uma fonte de dados de texto simples/arquivo do Excel com somente um registro para guardá-los de modo que não sobrecarreguem a fonte de dados grande.

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!