Este tópico explica a diferença entre funções de série temporal e funções de filtro e como implementar funções de filtro. Essas informações se aplicam tanto a pastas de trabalho quanto a painéis de controle clássicos.
Funções de Série Temporal versus Funções de Filtro
As funções de série temporal Ago
e Todate
oferecem uma maneira simples de criar métricas para calcular year-ago, year-to-date,
e assim por diante. Esse método funciona bem para relatórios de usuários de negócios. No entanto, essas funções geram consultas complexas que têm um custo significativo para o desempenho. Além disso, cada vez que uma dessas funções é usada em um relatório, uma subconsulta adicional é gerada usando ainda mais recursos no banco de dados.
Em painéis de controle clássicos, em vez de usar funções de série temporal, você pode, em geral, obter o mesmo resultado usando métricas básicas com a função Filter
para filtrar de acordo com período apropriado. Esse método pode ser muito complexo para relatórios de usuários de negócios, mas funciona bem em painéis de controle predefinidos pela equipe de TI. Usando esse método, o código gerado da SQL física é muito mais simples e eficiente, e não requer uma subconsulta adicional. Isso significa que a consulta SQL é executada mais rapidamente e usa menos recursos no banco de dados, reduzindo o uso geral da CPU do banco de dados e as chamadas de entrada e saída.
A figura a seguir mostra um exemplo da consulta física gerada ao usar a métrica base e a métrica Ago
de mês no mesmo relatório. Duas consultas são geradas.
A figura a seguir mostra o código SQL gerado para uma única consulta quando você usa uma função Filter
.
Implementar Funções de Filtro em um Painel de Controle com Prompts
Na maioria das implementações, o painel de controle já inclui um prompt para que os usuários possam selecionar o mês que estão buscando. O primeiro passo é identificar os períodos de tempo que você precisa filtrar com base na seleção de um usuário.
Neste exemplo, a dimensão do calendário inclui a coluna Julian Period Number
porque ela torna o cálculo mais fácil. Isso também é viável sem Julian Period Number
, mas exigiria fórmulas muito mais complexas para calcular o período selecionado.
Month
para adicionar a variável de apresentação (MonthSelected
).
Julian Period Number
correspondente e o coloque-o em outra variável (PeriodNumberSelected
). Este segundo prompt não é mostrado ao usuário final; ele fica oculto no painel de controle e o valor é calculado automaticamente com base na variável MonthSelected
.
Julian Period
.
Month
e use as funções de filtro das fórmulas da coluna com base em Julian Period Number
, conforme necessário. Seguem alguns exemplos:
Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})
Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)
Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)
Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})
Implementar Funções de Filtro em uma Pasta de Trabalho com Parâmetros
Você pode aplicar o mesmo princípio em uma pasta de trabalho. Prompts e variáveis de apresentação são substituídos por um filtro de painel de controle e parâmetros.
Crie três parâmetros: MonthSelected, PeriodNumberSelected e YearSelected. Somente o parâmetro MonthSelected é exibido na tela em um filtro de painel de controle.
Os valores possíveis para o parâmetro MonthSelected são definidos com base em uma consulta SQL lógica que seleciona todos os meses.
Para os parâmetros PeriodNumberSelected e YearSelected, os valores possíveis não são preenchidos.
.jpg
Somente o valor inicial é preenchido com uma consulta lógica filtrada com base no valor de MonthSelected.
.jpg