Ir para conteúdo
  • 0

RANKX + ACUMULADO (LENTIDÃO EXTREMA)


champanjonata
Ir para solução Solucionado por Tiago Craici - Xperiun ,

Pergunta

  • Alunos

Olá pessoal, tudo bem?

Estou tentando criar um pareto e até agora deu tudo certo, porém ao realizar o acumulado por ranking simplesmente não carrega. Deixei atualizando em uma tabela com nome e acumulado e atingiu 28GB de RAM e aí desisti....

Seguem as medidas que estou utilizando:

Rankx:
 

Rank PDD Cedentes =
 
RANKX(
    ALL(d_cedentes),
    [Valor PDD]
)


Acumulado:

Pdd Acumulado Cedentes =
 
var vRankingAtual = [Rank PDD Cedentes]
 
return
 
CALCULATE(
    [Valor PDD],
    FILTER(
        ALLSELECTED(d_cedentes), [Rank PDD Cedentes] <= vRankingAtual
    )
)

Algumas observações:

Já tentei acumulado assim:

Pdd Acumulado Cedentes =
 
CALCULATE(
    [Valor PDD],
    TOPN(
        [Rank PDD Cedentes],
        ALL(d_cedentes), [Rank PDD Cedentes], ASC
    )
)

E o resultado é o mesmo (lentidão e não carrega)

Minhas tabelas são relativamente pequenas sendo:
fato: 2.4M

dimensão (d_cedentes): 334 MIL

Meu modelo está certinho (estrela) e tudo relacionado corretamente.

Detalhe mais importante: já criei uma tabela resumida (agrupada) da fato ficando com 82 MIL linhas apenas e mesmo assim ao jogar a medida acumulada para a tabela não carrega por nada.

Sendo assim estou fazendo algo errado ou se tiver como otimizar.

 
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 1
  • Admin
  • Solução

Boa tarde @champanjonata

Realmente o acumulado no Power BI com grande base ele pena mesmo. 
Veja a medida abaixo se vai ganhar performance no seu projeto:



Acumulado  =
VAR faturamentototal =
    CALCULATE ( [Faturamento], ALLSELECTED ( dClientes ) )
VAR faturamentoAtual = [Faturamento]
VAR tabela =
    SUMMARIZE (
        ALLSELECTED ( fFaturamento ),
        dClientes[CLIENTE],
        "Vendas", [Faturamento]
    )
VAR faturamentoacumulado =
    IF (
        [Faturamento] > 0,
        SUMX ( FILTER ( tabela, [Vendas] >= faturamentoAtual ), [Vendas] )
    )
RETURN
    faturamentoacumulado





Créditos ao mestre @Rodrigo R1


Sucesso! 

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
40 minutos atrás, Tiago Craici disse:

Boa tarde @champanjonata

Realmente o acumulado no Power BI com grande base ele pena mesmo. 
Veja a medida abaixo se vai ganhar performance no seu projeto:



Acumulado  =
VAR faturamentototal =
    CALCULATE ( [Faturamento], ALLSELECTED ( dClientes ) )
VAR faturamentoAtual = [Faturamento]
VAR tabela =
    SUMMARIZE (
        ALLSELECTED ( fFaturamento ),
        dClientes[CLIENTE],
        "Vendas", [Faturamento]
    )
VAR faturamentoacumulado =
    IF (
        [Faturamento] > 0,
        SUMX ( FILTER ( tabela, [Vendas] >= faturamentoAtual ), [Vendas] )
    )
RETURN
    faturamentoacumulado





Créditos ao mestre @Rodrigo R1


Sucesso! 

Caraca @Tiago Craici e @Rodrigo R1 melhorou 10000% valeu demais. Aproveito aqui para mencionar a @Claudia Passos que fez uma postagem semelhante ao meu problema, dê uma olhada que com certeza vai resolver pra você também.

 

Valeu pessoal!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Admin
1 minuto atrás, champanjonata disse:

Caraca @Tiago Craici e @Rodrigo R1 melhorou 10000% valeu demais. Aproveito aqui para mencionar a @Claudia Passos que fez uma postagem semelhante ao meu problema, dê uma olhada que com certeza vai resolver pra você também.

 

Valeu pessoal!

Maravilha @champanjonata

Favor marcar a solução que atendeu seu objetivo... Você marcou a sua resposta eheeheh, dessa forma fica mais fácil para os demais quando pesquisarem aqui no fórum acharem a resposta correta. Obrigado:
image.png.58af7a3fff49535ed64bc49615d3b25c.png


Pra cima! Sucesso 🚀
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Bom demais que achou sua resposta @champanjonata....

O @Tiago Craici é fera demais....

Depois só ajusta ali a resposta...

Acho que você se confundiu ao escolher a resposta que solucionou sua dúvida.

Isso é muito importante para reconhecer o colega que te ajudou e tbm para facilitar aos demais membros a encontram a resposta, em dúvidas semelhantes a sua.

Grande abraço e sucesso aí...

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...