Ir para conteúdo
  • 0

Atualizacao incremental + API + Dataflow - Ajuda no entendimento


ismaelsapdetto
Ir para solução Solucionado por ismaelsapdetto ,

Pergunta

  • Alunos

Ola pessoas, boa tarde.

Vou tentar explicar a situacao que esta ocorrendo por aqui e quem sabe vcs conseguem me dar alguma ideia.

Situacao: Estamos recebendo mtas requisicoes do power BI via API. precisamos revisar a performance de alguns dataflows. 
Temos alguns dataflows que fazem uma chama para um API interna empresa. Esse dataflows foram desenvolvido para terem a opcao the Incremental refresh com a coluna data/hora. Na configuracao da Atualizacao incremental esta setado para manter os dados por 4 anos e fazer a atualizacao incremental 1 Dia. Esse dataflows foi configurado para atualizar a cada hora.

image.png.f56b82a9c14fd060b4483383cca5f2e1.png


image.png.afb100bd99be2c876621e047c17c78db.png

Para conhecimento:

  • As atualizacoes foram agendas para madrugada para facil identificacao das requisicoes recebidas e avaliacao da performance
  • O dataflow original esta confirado para ser atualizado das 9:00 as 17:00- 8x/dia
  • Data inicial da coluna Incremental_refresh = 01/01/2023
  • Estamos limitando apenas os dados de 2023 para entender qtas chamada da API o power Bi esta fazendo. Ao todo sao entorno de 25 dataflows rodando e coletando dados de diferentes tabelas/partes do sistema. 
  • Coletamos dados de um banco de dados de uma aplicacao mobile e nao usamos acesso direto ao banco ou getway. 
  • Banco de dados eh MongoDB

Ao analizarmos os historicos de atualizacoes do power BI, ele parece estar executando a sua funcao de forma correta. (Screenshots abaixo)

1a atualizacao = full refresh 

2a atualizacao = 1 dia

image.png.e73fa3fe2303afd5f4ebf0ec6cfef667.png

image.png.692a8282cebe1ea70037cd7293a4b2d0.png

Agora eh que eh o X da questao. 

Ao analizar o numero de requisocoes do MS Power BI usando a APi para o nosso servidor, parece que a todo momento momento ele esta repassando pelas datas inicias (01/01 ate 23/01) antes de efetivamente fazer a ultima data no case 24/01
Segue a baixo um print da atualizaco das 2am e das 3am

image.png.541d84e42be785d14b7f94b16da96a5a.png

image.png.ffe7fe9ac7c34022f7f5dc8cc0f2874b.png

Alguem teria alguma idea do pq o PBI estaria refazendo a chama da API em todos os dias e depois informando que apenas o ultimo dia (24/01 no caso) foi executado? 

 

Segue alguns prints que podem ajudar a dar mais detalhes dos steps. 

image.png.e14b218a428f9ca26ab31f7475f3b4f6.png
 

image.png.89a25a56b5cdd79493f153416761571c.png

Agradeco de alguem tiver alguma ideia/dica para que possa ajudar. 

Att. 
Ismael

 

Editado por ismaelsapdetto
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Boa tarde @Julian Ferreira Salcedo

Eu consegui finalmente o retorno/solucao. 

Usamos o proprio parametro de RangeStart e RangeEnd craido automaticamente pela configuracao da atualizacao incremental  no Dataflow para criacao da lista de datas utilizada na API.

image.png.f07fb71103fe18cee55bd0c093c9e306.png

image.png.53cab6c2ae5c2e2ef444b1c543393ed0.png

image.png.11b9137a70d309ad714df56316ef9892.png

Vc pode encerrar esse topico sim.

Da pra usar atualizacao incremental no dataflow usando chamadas por API =D

Vlw

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá você precisa usar os parâmetros RangeStart e RangeEnd para funcionar.

detalhes consulte a documentação:

https://learn.microsoft.com/pt-br/power-bi/connect-data/incremental-refresh-overview

aqui tem um exemplo de como fazer:

let 

    strRangeStart = DateTime.ToText(RangeStart,[Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"]),

    strRangeEnd = DateTime.ToText(RangeEnd,[Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"]),

    Source = Json.Document(Web.Contents("https://api.applicationinsights.io/v1/apps/<app-guid>/query", 

    [Query=[#"query"="traces 

    | where timestamp >= datetime(" & strRangeStart &") 

    | where timestamp < datetime("& strRangeEnd &")

    ",#"x-ms-app"="AAPBI",#"prefer"="ai.response-thinning=true"],Timeout=#duration(0,0,4,0)])),

    TypeMap = #table(

    { "AnalyticsTypes", "Type" }, 

    { 

    { "string", Text.Type },

    { "int", Int32.Type },

    { "long", Int64.Type },

    { "real", Double.Type },

    { "timespan", Duration.Type },

    { "datetime", DateTimeZone.Type },

    { "bool", Logical.Type },

    { "guid", Text.Type },

    { "dynamic", Text.Type }

    }),

    DataTable = Source[tables]{0},

    Columns = Table.FromRecords(DataTable[columns]),

    ColumnsWithType = Table.Join(Columns, {"type"}, TypeMap , {"AnalyticsTypes"}),

    Rows = Table.FromRows(DataTable[rows], Columns[name]), 

    Table = Table.TransformColumnTypes(Rows, Table.ToList(ColumnsWithType, (c) => { c{0}, c{3}}))

in

Table

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Ola Edmar, 

O meu problema esta no dataflow. 

Meu problema não eh com o conjunto de dados (dataset). Eu ja fiz um teste usando dataset e configurando os parâmetros conforme a documentação e no dataset nao ha nenhum problema. A Api eh chamada executada apenas uma unica vez para conforme a configuração para atualizar somente um dia. 

Ate onde sei no dataflow não ha a necessidade de criar os parametros como no dataset, vc apenas configura confirme os print mostrados e o próprio power BI adiciona as colunas rangeStart e RangeEnd filtrando a coluna selecionada.

A situacao eh que a atualizacao incremental quado aplicada no dataflow esta fazendo mtas chamadas de API passando por todos os dias ignorando a regra configurada de pegar apenas o ultimo dia para atualizar. 

Eu fiz esse mesmo posto no Community do Power Bi e abri um chamado junto com a MS para ver se consigo algum esclarecimento sobre isso.

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Apenas para atualizacao, ainda nao tenho uma solucao para o meu case. 

Estou em contato com o suporte da MS. Esse c aso foi escalado para o next level suppport team (acho que algum dev team) para veficacao. 

Se os ADMs quiserem deixar o topico aberto eu posto a solucao/retorno da MS assim que eu tiver alguma noticia. 

Por eqto estamos em investigacao.

 

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

  • 0
  • Alunos

Boa tarde @ismaelsapdetto tudo bem? 😃

Esperamos que você tenha encontrado a solução que tanto desejava!!

Caso alguma resposta tenha ajudado, você pode marcá-la como Solução . Com isso o tópico poderá ser fechado! 

Maas...

Pode acontecer de você receber uma resposta que não é 100% do que você esperava. Mesmo assim, se ela o ajudou de alguma forma para que você mesmo conseguisse chegar à solução, conte como você fez isso e marque como a melhor resposta. 😉

 

Obrigado por tonar nossa comunidade #INCOMPARÁVEL!!

Att Julian Salcedo I Community Manager Xperiun

 

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...