Power BI DirectQuery: Atualize automaticamente menos que a cada 15 minutos

O Power BI é uma ferramenta de análise, relatório e painel extremamente amigável e flexível. Nos últimos dois anos, testemunhei a adoção maciça do Power BI por meus clientes e pelo mercado, geralmente substituindo ferramentas mais caras devido à sua facilidade de uso e baixa barreira à entrada.

Desafios de Projetos

Como em qualquer software, existem algumas desvantagens que podem limitar o uso ou a adoção do Power BI em situações específicas. Em um projeto recente, minha equipe foi convidada a desenvolver um relatório em tempo real usando uma conexão do Power BI DirectQuery.

Esse relatório deveria ser filtrado com um slicer para um determinado centro de trabalho, exibido no monitor de um usuário na área de fabricação e não seria interagido por esse usuário. Por fim, espera-se que os dados sejam atualizados pelo menos uma vez por minuto, uma vez que o chão de fábrica estaria interagindo com os dados. A documentação de atualização de dados do Power BI menciona:

Quando você interage com uma visualização, as consultas são enviadas do Power BI diretamente para o banco de dados. Os dados atualizados são retornados e as visualizações são atualizadas. Como existe uma conexão direta entre o Power BI e o banco de dados, não há necessidade de agendar uma atualização.

Mas e se meu usuário não interagir com os dados? Novamente, há uma resposta para isso:

Para a conexão DirectQuery, você pode definir a frequência de atualização de 15 minutos para semanalmente usando o menu suspenso associado, conforme mostrado na imagem a seguir.

Mas nossos requisitos especificavam que o relatório precisava ser atualizado pelo menos uma vez por minuto. Não havia nada na documentação sobre isso.

Existem várias postagens na comunidade do Power BI (como esta) que discutem as extensões do Chrome para auto-F5 para atualizar a página.

Porém, nesse caso, os requisitos exigem que o usuário escolha um centro de trabalho em um slicer e deixe a página em paz. A atualização do navegador faz com que o usuário perca a seleção do slicer. Isso nos forçou a criar uma solução diferente.

Nossa Solução

Ao inspecionar a página do relatório do Power BI, o botão Atualizar no serviço do Power BI pode ser clicado para atualizar os dados sem afetar os segmentadores selecionados.

Vi um tutorial sobre JavaScript no site clicoucursos.com.br, onde ensinava a inspecionar os elementos da página e criar um pequeno snippet de JavaScript que simulasse um clique neste botão “Atualizar” a cada minuto.

E utilizamos o seguinte código:

javascript:if(window.autoRefreshInterval) { clearInterval(window.autoRefreshInterval); }; window.autoRefreshInterval = setInterval(function() { jQuery(".refresh").click(); },60000) 

O snippet de código acima pode ser adicionado como um marcador com o intervalo desejado (número negrito em milissegundos) para atualizar conforme a preferência do usuário.

Depois que a página é definida com os slicers corretos, o usuário pode clicar no marcador e a página é atualizada automaticamente no intervalo desejado.

Esse código também limpa qualquer outro “autoRefreshInterval” em execução, para que você não termine com 15 temporizadores em contagem regressiva para atualizar sua página se o usuário clicar acidentalmente no marcador várias vezes.

Para adicionar um marcador, consulte as instruções abaixo:

Soluções Power BI

O Power BI é uma ferramenta extremamente poderosa de análise e visualização; no entanto, pode haver algumas coisas que você acha que são desvantagens que podem precisar de uma solução que não esteja pronta para uso.

Felizmente, esta dica ajudará você a atender às suas necessidades de atualização de um relatório ativo do Power BI por meio do modo DirectQuery.

Dúvidas?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.