Alunos Felipe Emmanuel Postado Dezembro 22, 2023 Alunos Compartilhar Postado Dezembro 22, 2023 Olá gostaria de saber se é possível colocar atualização incremental no DataFlow de uma consulta ODBC do Firebird. No banco Oracle sigo com a consulta abaixo, mas no ODBC não encontrei nada que funcionasse. " AND fat.DAT_HOR_EMISSAO >= TO_DATE('" & Text.From(RangeStart) & "','DD-MM-YYYY HH24:MI:SS') AND fat.DAT_HOR_EMISSAO < TO_DATE('" & Text.From(RangeEnd) & "','DD-MM-YYYY HH24:MI:SS')" Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Dezembro 22, 2023 Alunos Compartilhar Postado Dezembro 22, 2023 Suave @Felipe Emmanuel? Essa questão não é tao simples como parece devido a algumas limitações estruturais do próprio Power BI, então vai requerer um pouquinho de "gambiarra" para dar certo. De qualquer maneira, o primeiro ponto é que para ter atualização incremental num dataflow você vai precisar de um workspace com capacidade Premium: https://learn.microsoft.com/en-us/power-query/dataflows/incremental-refresh A seguir, a filtragem das datas no código SQL com os parâmetros que você criou (RangeStart) e (RangeEnd) deve usar a função DateTime.ToText: Citar 'SELECT [...] FROM [...] WHERE [...] AND fat.DAT_HOR_EMISSAO >= ' " & DateTime.ToText(RangeStart, "yyyy-MM-dd hh:mm:ss") & " ' AND fat.DAT_HOR_EMISSAO < ' " & DateTime.ToText(RangeEnd), "yyyy-MM-dd hh:mm:ss") & " ' Esse processo deve ser feito também na coluna data do Power Query utilizando os mesmos parâmetros: Por ultimo, para a atualização incremental funcionar a fonte dos dados precisa permitir uma opção chamada "query folding" e muitas vezes as conexões ODBC feitas com bases Firebird não permitem esse tipo de estrutura: https://powerbi.microsoft.com/fr-fr/blog/incremental-refresh-query-folding/ Talvez seja necessário debugar um pouco, e pra isso o link abaixo tem umas boas dicas: https://dhyanintech.medium.com/fixing-query-folding-with-sql-server-in-power-bi-for-incremental-refresh-bcef0f47c263 Boa sorte por ai! E se essa resposta te ajudou, não esquece de marcar como melhor solução 😉 Abs! Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Felipe Emmanuel Postado Dezembro 22, 2023 Autor Alunos Compartilhar Postado Dezembro 22, 2023 Muito obrigado @Joao Raulino! No link https://dhyanintech.medium.com/fixing-query-folding-with-sql-server-in-power-bi-for-incremental-refresh-bcef0f47c263 tem essa instrução que não conseguir estruturar na minha consulta, consegue me ajudar? Minha Souce é feita dessa forma: Origem = Odbc.Query("dsn=FAMA",SQL) Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Dezembro 22, 2023 Alunos Compartilhar Postado Dezembro 22, 2023 Nesse caso tenta substituir o Source = Sql.Database(...) por Source = ODBC.Query("dsn=FAMA", SQL) para ver se resolve. Abs! Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Dezembro 22, 2023 Alunos Compartilhar Postado Dezembro 22, 2023 Ou senão Source = Odbc.DataSource("dsn=FAMA") para estabelecer uma primeira conexão, e a partir dai ele roda o Value.NativeQuery com os parâmetros que você configurar. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Felipe Emmanuel Postado Janeiro 22 Autor Alunos Compartilhar Postado Janeiro 22 @Joao Raulino ainda não consegui, na tabela que estou utilizando não contem a coluna "DateID", tive que fazer manualmente no SQL. Retirei o [EnableFolding = true] pois estava dando esse erro abaixo: Segue M como estou executando: Ele executa, mas sem nenhuma performance adicional. Sabe dizer onde posso corrigir? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Janeiro 30 Alunos Compartilhar Postado Janeiro 30 Boa @Felipe Emmanuel! Conseguiu avançar com o teu problema? Tive um desafio parecido recentemente (necessidade de fazer atualização incremental com uma fonte ODBC) e encontrei uma solução bem simples para resolver: Criei um fluxo de dados que se conecta a fonte ODBC buscando todos os dados históricos ate hoje (10 anos). Criei um conjunto de dados que se conecta ao fluxo de dados acima. Configurei a atualização incremental neste conjunto de dados para atualizar os últimos 30 dias e congelar o resto. Apos primeira atualização do conjunto de dados e a criação das partições pelo serviço do Power BI, modifiquei o fluxo de dados para buscar somente os últimos 45 dias. Com isso consegui diminuir o tempo de atualização de 30 minutos para 50 segundos! Vale a pena tentar essa solução do teu lado se ainda tiver com problemas de performance 😉 Abs! Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Felipe Emmanuel Postado Janeiro 30 Autor Alunos Compartilhar Postado Janeiro 30 Então toda vez que tiver uma nova publicação do PBIX tem que seguir esse procedimento. Correto? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Janeiro 30 Alunos Compartilhar Postado Janeiro 30 1 minuto atrás, Felipe Emmanuel disse: Então toda vez que tiver uma nova publicação do PBIX tem que seguir esse procedimento. Correto? Exato! Esse é o downside. Convém só aplicar numa versão estável do teu modelo, onde você sabe que não vai ter muitas modificações. Link para o comentário Compartilhar em outros sites More sharing options...
0 Admin Tiago Craici - Xperiun Postado Fevereiro 28 Admin Compartilhar Postado Fevereiro 28 @Felipe Emmanuel Caso atendido seu objetivo, por gentileza marque a Melhor resposta para o tópico, para isso basta ir naquela que mais te ajudou e clicar nas opções conforme print: Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Felipe Emmanuel Postado Fevereiro 28 Autor Alunos Compartilhar Postado Fevereiro 28 Certo @Tiago Craici - Xperiun Aguardando uma solução mais viável para o meu projeto. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Felipe Emmanuel
Olá gostaria de saber se é possível colocar atualização incremental no DataFlow de uma consulta ODBC do Firebird.
No banco Oracle sigo com a consulta abaixo, mas no ODBC não encontrei nada que funcionasse.
" AND fat.DAT_HOR_EMISSAO >= TO_DATE('" & Text.From(RangeStart) & "','DD-MM-YYYY HH24:MI:SS') AND fat.DAT_HOR_EMISSAO < TO_DATE('" & Text.From(RangeEnd) & "','DD-MM-YYYY HH24:MI:SS')"
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora