Ir para conteúdo
  • 0

Atualizacao incremental + API + Dataflow - Ajuda no entendimento


ismaelsapdetto

Pergunta

  • Membros

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

2 respostass a esta questão

Posts Recomendados

  • 0
  • Membros

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
  • Membros

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...