Tag Archives: dados

GCP Cloud SQL – Restauração de instância

Imagine o seguinte cenário:

No universo de bancos de dados em nuvem, a necessidade de restaurar backups pode surgir devido a várias razões: um erro humano, falha em algum sistema ou até mesmo para criar um ambiente de teste. Independentemente do motivo, ter uma ferramenta que simplifique esse processo é essencial.

Apesar do Google Cloud Platform (GCP) oferecer uma solução robusta e escalável com o Cloud SQL, a restauração de backups pode ser um processo que exige múltiplos passos e certa familiaridade com a plataforma. Foi pensando nisso que desenvolvi o GCP Restore Tool.

Por Que Usar o GCP Restore Tool?

A ferramenta foi projetada com o objetivo de tornar o processo de restauração mais amigável e menos propenso a erros. Com uma interface gráfica intuitiva, você pode selecionar projetos, instâncias e o backup desejado para restaurar com apenas alguns cliques.

A maior vantagem? Você não precisa ser um expert em GCP ou lidar com comandos complexos. A ferramenta cuida de tudo para você.

Como Utilizar a Ferramenta

  • Instale a CLI da GCP
  • Abra o terminal e digite:
  • gcloud auth application-default login
  • Você será redirecionado para a tela de autenticação do console da GCP, faça a autenticação.
  • Olhe no terminal e ele terá retornado com algumas informações sobre a localização do arquivo
  • “application_default_credentials.json”
  • Esse arquivo é o que você deve carregar pelo botão “Load GCP Credentials”
  • Na seleção à esquerda, selecione o projeto e a instância de origem nos menus dropdown correspondentes.
  • Clique no botão “Load Backups” e a ferramenta irá listar todos os backups disponíveis para a instância escolhida.
  • Na seção à direita, selecione o projeto e a instância onde deseja restaurar o backup.
  • Após confirmar sua seleção, clique no botão “Restore”. A ferramenta fará todo o trabalho pesado para você, garantindo que o backup selecionado seja restaurado na instância de destino escolhida.

Este processo só funciona sobrescrevendo uma instância pré-existente, logo, você precisa criar uma instância no projeto de destino ou entender que esta atividade vai sobrescrever a instância de destino, tenha certeza de ter selecionado a instância certa.

Se tudo der certo, você vai receber uma mensagem que o processo foi enviado para a GCP, todo o processo ocorre em background pela GCP, então acompanhe pelo portal para saber o status da atividade.

No final, a instância restaurada vai ter o nome, IP, etc da instância que ela sobrescreveu, mas todos os usuários, senhas, bancos, ajustes pontuais, etc. da instância original.

Você pode baixar e acessar o código fonte no GitHub.

ATENÇÃO !!!

A ferramenta está em testes, então faça testes antes de executar a operação em produção.

Execute por sua conta e risco.

AWS – Redshift – Tráfego de dados

Imagine o seguinte cenário:

  • Você usa o Redshift como DW ou DL para seus relatório e cargas de dados;
  • Vê uma possibilidade de facilitar sua vida e dar liberdade para o próprio cliente acessar esses dados e gerar relatórios da forma que ele achar mais legal com a ferramenta que ele quiser, etc.;
  • Mas lembra que a AWS cobra pela saída de dados;
  • Procura no portal da AWS e descobre que eles não tem uma monitoração específica de quem está saindo com dados, mas eles acertam a cobrança… incrível…
  • Mas você não quer abandonar a ideia e quer ganhar alguma grana com isso..

O que vou mostrar não é a solução perfeita, ela carece de algumas melhorias mas já é um norte para ajudar nessa ideia…

O Redshift é um PostgreSQL modificado, então muita query em tabelas de sistema do PG funciona direitinho no Redshift…

Para esse cenário, você pode criar um pacote de integration services e rodar a query abaixo contra o Redshift:

select
	TRIM(q.DATABASE) AS DB,
	TRIM(u.usename) as usename,
	sum(bytes)/1024 as kbytes,
	sum(packets) as packets,
	date(b.starttime) as data
from
	stl_bcast b
join stl_query q ON
	b.query = q.query
	AND b.userid = q.userid
join pg_user u
on u.usesysid = q.userid
where
	packets>0
	and b.starttime >= dateadd(day, -7, current_Date)
	and datediff(seconds, b.starttime, b.endtime)>0
	--and u.usename like 'usr%'
	--and querytxt not like 'fetch%'
group by TRIM(q.DATABASE)
,u.usename
,date(b.starttime)

Essa query vai trazer a informação do volume em kb trafegado pela query executada.

Com isso, você consegue montar um report incremental e ratear o custo da saída de dados da AWS.

É 100%?, não,,, mas pelo menos já é alguma coisa já que a AWS não provê dados granularizados de quem consome a saída de dados.

novos códigos serão criados também em outro repositório:

https://github.com/bigleka

Gerar DACPAC versão c#

Já faz um tempo desde a versão em powershell do gerador de DacPac,,, visto alguns bugs e limitações que alguém poderia ter em utilizá-lo resolvi montar uma versão mais adaptável do App.

Essa versão foi feita em Visual Studio 2013 e usa C#, o fonte ficará disponível no github (assim que conseguir fazer upload) e aqui junto com a versão compilada e com instalador e fonte.

Essa versão utiliza .Net Framework 4 e está o mais enxuta possível (pelo meu nível de conhecimento em programação)

O instalador gera um atalho na área de trabalho e uma entrada no “adicionar/remover programas”.

  • Bugs conhecidos:
  1. Ele não aceita utilizar um diretório que possua espaço no nome, pelo que consegui entender na exceção a culpa não é da forma que eu estou chamando o app para a extração mas do próprio extrator.
  2. Se clicar 2x na caixa de texto onde está a localização do SqlPackage ele vai exibir um diretório padrão onde deve estar o executável, se você não selecionar o arquivo e clicar em cancelar ou ok, a caixa de texto vai ser preenchida pelo SqlPackage.exe sem o path completo, o que vai gerar um erro na execução da extração.

Se alguém se interessar em usar, gostaria de feedbacks sobre o app.

ATUALIZAÇÃO !!!

Adicionei o projeto ao GitHub, quem quiser ajudar ou alterar o projeto pode acessar o endereço https://github.com/bigleka/SQL-Server-Gerador-de-DACPAC

[polldaddy poll=8777809]