Este tópico explica a diferença entre funções de séries de tempo e funções de filtro e como implementar funções de filtro. Estas informações aplicam-se aos livros e aos dashboards clássicos.
Funções de Séries de Tempo vs. Funções de Filtro
As funções de séries de tempo Ago
e Todate
oferecem uma forma simples de criar métricas para calcular year-ago, year-to-date
, etc. Este método funciona bem para relatórios de utilizador empresarial; no entanto, estas funções geram consultas complexas que têm um custo significativo sobre o desempenho. Além disso, sempre que uma destas funções é utilizada num relatório, é gerada uma subconsulta adicional utilizando ainda mais recursos na base de dados.
Nos dashboards clássicos, em vez de utilizar funções de série de tempo, pode obter normalmente o mesmo resultado utilizando as métricas de base com a função Filter
para filtrar pelo período de tempo apropriado. Este método pode ser demasiado complexo para os relatórios de utilizador empresarial, mas funciona bem nos dashboards predefinidos pela equipa de TI. Ao utilizar este método, o código de SQL físico gerado é muito mais simples e mais eficiente, e não requer uma subconsulta adicional. Isto significa que a consulta de SQL é executada mais rapidamente e utiliza menos recursos na base de dados, reduzindo a utilização da CPU da base de dados global e as chamadas de entrada/saída de dados.
A figura seguinte mostra um exemplo da consulta física que é gerada quando utiliza a métrica de base e a métrica de mês Ago
no mesmo relatório. São geradas duas consultas.
A figura seguinte mostra o código de SQL que é gerado para uma única consulta quando utiliza uma função Filter
.
Implementar Funções de Filtro num Dashboard com Prompts
Na maior parte das implementações, o dashboard já inclui um prompt para que o utilizador possa selecionar o mês do qual estão à procura. O primeiro passo é identificar os períodos de tempo que precisa de filtrar com base na seleção de um utilizador.
Neste exemplo, a dimensão do calendário inclui a coluna Julian Period Number
porque torna o cálculo mais fácil. Isto também é exequível sem o Julian Period Number
mas requer fórmulas muito mais complexas para calcular o período de tempo selecionado.
Month
para acrescentar a variável de apresentação (MonthSelected
).
Julian Period Number
correspondente e coloque-o noutra variável (PeriodNumberSelected
). Este segundo prompt não é mostrado ao utilizador final; em vez disso, é ocultado no dashboard e o valor é calculado automaticamente com base na variável MonthSelected
.
Julian Period
.
Month
e utilize as funções de filtro de fórmulas de coluna com base no Julian Period Number
, conforme necessário. Seguem-se 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 num Livro com Parâmetros
Pode aplicar o mesmo princípio num livro. Os prompts e as variáveis de apresentação são substituídos por um filtro de dashboard e parâmetros.
Crie três parâmetros: MonthSelected, PeriodNumberSelected e YearSelected. Só o parâmetro MonthSelected é apresentado na tela num filtro do dashboard.
Os valores possíveis para o parâmetro MonthSelected são definidos com base numa consulta de SQL lógico que seleciona todos os meses.
Para os parâmetros PeriodNumberSelected e YearSelected, os valores possíveis não são preenchidos.
.jpg
Só o valor inicial é preenchido com uma consulta lógica filtrada com base no valor de MonthSelected.
.jpg