Utilizar Funções de Filtro em vez de Funções de Séries de Tempo

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.

Segue-se a descrição de GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg
.jpg

A figura seguinte mostra o código de SQL que é gerado para uma única consulta quando utiliza uma função Filter.

Segue-se a descrição de GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg
.jpg

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.

  1. Modifique o prompt Month para acrescentar a variável de apresentação (MonthSelected).

    Segue-se a descrição de GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.png
    .png

  2. Crie um prompt de dashboard separado para obter o 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.

    Segue-se a descrição de GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.png
    .png

  3. Edite as suas propriedades do dashboard e clique em Filtros e Variáveis.
  4. Acrescente o percurso do prompt Julian Period.

    Segue-se a descrição de GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg
    .jpg

  5. Na análise, apague o filtro global na coluna 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.Segue-se a descrição de GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg
.jpg

Só o valor inicial é preenchido com uma consulta lógica filtrada com base no valor de MonthSelected.Segue-se a descrição de GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg
.jpg