• Weslley Barboza

Não é possível conectar à fonte de dados undefined. - Power BI

Em um de nossos projetos encontrei um problema que me custaram algumas horas de análise digno de registro de sua solução para ajudar a comunidade.


Nosso cliente possui a seguinte pipeline:

DW (MariaDb)> Gateway >Power BI Serviço


A TI fez contato informando que estava tendo dificuldades com as atualizações do PBI, diversas vezes o erro da imagem a seguir era apresentado, e a solução era resolvida somente reiniciando o serviço do MySql (utilizado pelo MariaDB).


Pois bem, ao avaliar o detalhe do erro não era possível identificar ao certo o que de fato estava ocorrendo.

Logo começamos a pensar nas possibilidades de solução:

1) Atualizar a versão do Drive MySql - ODBC

2) Atualizar/reiniciar o gateway

3) Reconfigurar as conexões dos datasets/gateways


Todos os passos acima foram executados e mesmo assim o problema continuava intermitente. Durante um dos testes notei um padrão: quando apenas um dataset estava atualizando este tinha sucesso. Porém se três ou mais fizessem a atualização simultâneas, o problema ocorria.


Minha conclusão: o problema estava relacionado ao BD e não na pipeline, notei também que o gateway ficava "offline" assim que este problema ocorria. Uma parte da mensagem de erro apresentada pelo gateway era "is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'".


Buscando na internet, aprendi que o MySql/MariaDb possui recursos que gerenciam erros de conexão e bloqueiam o host para segurança afim de evitar ataques, e verifiquei que as configurações do DW do meu cliente estavam padrões.


Alterei a mesma seguindo os passos abaixo:


1) Acessei o servidor MySql


2) Consultei os limites das variáveis abaixo

- max_connect_errors que estava vazia;

Comando:

show variables like "max_connect_errors";

- max_connections que estava 150;

show variables like "max_connections";

3) Alterei os limites conforme a seguir:

SET GLOBAL max_connect_errors=10000;
set global max_connections = 200;

Executando uma por vez.


Após isso o problema cessou e tivemos êxito nas cargas de dados.

Espero que este artigo possa lhe ajudar.


Fontes de pesquisa:


https://www.obacast.com.br/centr...

http://mysqlblog.fivefarmers.com...

https://stackoverflow.com/questi...

38 visualizações