GCP – Executa script em várias instâncias PG

AAAhhh o saudoso SSMS tem uma feature inigualável que é o “Registered Servers“, atende a necessidade de forma incrível.

As outras ferramentas de administração de banco que tem por ai como DBeaver, DataGrip, PGAdmin, etc., tentam ser generalistas e acabam deixando de ter esse tipo de feature.

Como esses, longos e longos dias, estou administrando e migrando vários ambientes Postgres na GCP, montei um script em python que usa o streamlit para fazer mais ou menos o que o “Registered Servers” faz, claro que não com toda a glória do SSMS, mas ainda estou trabalhando nisso.

o código encontra-se no meu repositório do GIT.

https://github.com/bigleka/gcp/blob/main/prototipo_streamlit_cloudsql.py

Ele funciona da seguinte forma:

Usando o arquivo .json, criado através do gcloud, com os dados da sua credencial para usar a API da GCP e listar os projetos e instâncias de bancos de cada projeto que você tem direito de acesso.

Ai tem um botão para carregar as bases de dados de cada instância, não fiz tudo de uma vez porque sobrecarrega o streamlit.

Ai usando uma credencia de banco, não a credencial do IAM (pq depende de um monte de configuração que pode ou não estar ajustada na instância) conseguimos executar em paralelo o mesmo script em várias instâncias nos bancos selecionados.

Problemas conhecidos:

  • Ainda estou trabalhando em ajustar a forma de operação para sessão para conseguir executar scripts que precisam de operação de sessão.
  • Estou vendo o problema dele fechar o grupo do projeto quando seleciono qualquer coisa mesmo tendo selecionado anteriormente alguma coisa, isso não é bem um problema, só é chato.
  • Ajuste já adicionar o status das execuções assim que elas acabarem na barra da esquerda.

Em testes:

  • autenticação web
  • salvar resultados em csv
  • rodar em docker

Leave a Reply

Your email address will not be published. Required fields are marked *