Apresentamos nesse vídeo como migrar a estrutura comparando o esquema e os dados existentes do SQL Server On-Premises (Servidor Local) para o Banco de Dados SQL do Azure (na Nuvem) utilizando o SQL Server Data Tools (SSDT) no Microsoft Visual Studio.
Neste vídeo, vamos explorar como utilizar o Visual Studio não apenas para comparar a estrutura e os objetos entre bancos de dados distintos, mas também para analisar e migrar os dados, focando nas diferenças entre os registros. O objetivo é demonstrar de forma prática o processo de migração de um banco de dados SQL Server local para um Azure SQL Server na nuvem, uma tarefa cada vez mais comum no cenário de modernização de infraestruturas de TI.
Para começar, é essencial ter o Visual Studio instalado e configurado. Utilizaremos o Visual Studio 2022 neste guia. Um pré-requisito fundamental é a instalação da extensão "SQL Server Integration Services Projects". Se você ainda não a possui, pode adicioná-la facilmente acessando o menu "Extensões" > "Gerenciar Extensões" dentro do Visual Studio. Busque pela extensão e proceda com a instalação. Certifique-se também de que os parâmetros de conexão com os bancos de dados de origem (local) e destino (Azure SQL), incluindo servidor, usuário e senha, estejam prontos para uso.
Conectar ao Banco de dados SQL do Azure (AZURE PORTAL, CONNECT WITH, VISUAL STUDIO): É possível conectar o SQL Server Data Tools (SSDT) ao Banco de Dados SQL do Azure diretamente pelo Visual Studio. Isso permite desenvolver e gerenciar esquemas e objetos do banco de dados.
Exibir as instâncias e objetos disponíveis do SQL Server (SQL SERVER OBJECT EXPLORER): O SQL Server Object Explorer no SSDT permite visualizar instâncias e objetos disponíveis do SQL Server, facilitando a navegação e o gerenciamento dos bancos de dados.
Com a extensão instalada e o ambiente pronto, o próximo passo é iniciar a ferramenta de comparação. No Visual Studio, vá ao menu "Ferramentas" > "SQL Server" e selecione a opção "New Data Comparison". Esta ação abrirá a janela principal da funcionalidade, onde definiremos os bancos de dados que serão comparados.
Comparar os dados existentes entre tabelas On-Premises e do Banco de dados SQL do Azure (DATA COMPARISON): A funcionalidade de comparação de dados permite identificar diferenças entre os dados de tabelas em ambientes locais e no Banco de Dados SQL do Azure.
(Nota: O Visual Studio também oferece uma funcionalidade similar para comparar esquemas)
Comparar esquema entre SQL Server On-Premises e Banco de dados SQL do Azure (SCHEMA COMPARE): A funcionalidade de comparação de esquemas permite comparar a estrutura de objetos entre um ambiente local (On-Premises) e um Banco de Dados SQL do Azure, identificando diferenças.
Na janela "New Data Comparison", precisamos especificar claramente qual é o banco de dados de origem (Source) e qual é o de destino (Target). Clique em "Select Source" para escolher a conexão com o seu banco de dados SQL Server local. Caso a conexão ainda não esteja configurada no Visual Studio, utilize o botão "New Connection" para criá-la, informando os detalhes do seu servidor local. Após selecionar a origem, confirme com "Ok".
Repita o processo para o destino, clicando em "Select Target". Selecione a conexão correspondente ao seu Azure SQL Server. Da mesma forma, se necessário, crie uma nova conexão através de "New Connection", fornecendo os dados de acesso ao seu banco na nuvem. Com ambas as conexões (origem e destino) devidamente configuradas, clique em "Next" para prosseguir.
Na tela seguinte, a ferramenta listará todas as tabelas e views detectadas em ambos os bancos de dados (origem e destino). Por padrão, todos os objetos compatíveis são pré-selecionados para comparação. No entanto, você pode personalizar essa seleção. Para este exemplo, vamos nos concentrar na migração de dados de uma tabela específica, a "FatoVendas". Desmarque todos os outros objetos e mantenha apenas "FatoVendas" selecionada.
Identificar objetos diferentes entre as instâncias (OBJECT DEFINITION, ADD, TABLE): O SSDT ajuda a identificar objetos diferentes, como tabelas, entre instâncias. Pode-se visualizar as definições de objeto e decidir sobre as ações a serem tomadas.
Após ajustar a seleção, clique em "Next".
A etapa subsequente apresenta opções sobre como a comparação de dados deve ser realizada. Para a maioria dos cenários, as opções padrão são adequadas. Elas instruem a ferramenta a realizar uma análise completa e identificar todas as diferenças, sugerindo as ações necessárias (inserir, atualizar ou excluir dados no destino). Mantenha as opções padrão e clique em "Finish" (ou o botão correspondente para iniciar a comparação). O Visual Studio processará a solicitação e exibirá os resultados, mostrando as diferenças encontradas linha a linha para a tabela "FatoVendas".
É fundamental destacar que a comparação eficaz de dados entre tabelas depende da existência de uma chave primária (Primary Key) em ambas as tabelas (origem e destino). A ferramenta utiliza a chave primária como referência para identificar quais registros são correspondentes e, consequentemente, quais colunas sofreram alterações. Sem uma chave primária definida, a comparação de dados em nível de registro não é viável através desta ferramenta. Felizmente, em nosso exemplo, a tabela "FatoVendas" possui a chave primária necessária.
Após a análise, a ferramenta apresentará um resumo das ações necessárias. Por exemplo, se a tabela de destino estiver vazia, ela indicará a necessidade de inserir todos os registros da origem. Para aplicar as mudanças, clique no botão "Update Target". O Visual Studio executará as operações SQL correspondentes (INSERT, UPDATE, DELETE) no banco de dados de destino (Azure SQL).
Atualizar os registros na instância Banco de dados SQL do Azure de destino (UPDATE TARGET): Com base na comparação de dados, é possível atualizar os registros na instância de destino no Banco de Dados SQL do Azure.
(Nota: De forma similar, após uma comparação de esquema, seria possível atualizar a estrutura do banco de destino.)
Atualizar o esquema na instância Banco de dados SQL do Azure de destino (UPDATE): Com base na comparação de esquemas, é possível atualizar o esquema na instância de destino no Banco de Dados SQL do Azure.
Uma alternativa poderosa é utilizar o botão "Generate Script". Ao clicar nele, a ferramenta não executa as alterações imediatamente, mas gera um script SQL contendo todos os comandos que seriam executados pelo "Update Target". Este script pode ser salvo, revisado, modificado (por exemplo, para ajustar esquemas ou adicionar lógicas customizadas) e executado manualmente no momento desejado, oferecendo maior controle sobre o processo de migração.
Na janela de resultados da comparação, observe as abas disponíveis na parte inferior. Elas fornecem uma visão detalhada das diferenças encontradas: * Different Records: Registros que existem em ambos os lados, mas possuem dados diferentes. * Only in Source: Registros presentes apenas no banco de dados de origem. * Only in Target: Registros presentes apenas no banco de dados de destino. * Identical Records: Registros que são exatamente iguais em ambos os bancos.
Identificar registros diferentes (DIFFERENT RECORDS, ONLY IN SOURCE, ONLY IN TARGET, IDENTICAL RECORDS): Pode-se identificar registros diferentes, registros exclusivos no ambiente de origem, registros exclusivos no ambiente de destino e registros idênticos durante a comparação de dados.
Essas abas são essenciais para entender em detalhes o que será alterado durante a sincronização.
Após concluir a atualização dos dados no destino (seja via "Update Target" ou pela execução do script gerado), é altamente recomendável conectar-se diretamente ao Azure SQL Server (utilizando o SQL Server Management Studio - SSMS, por exemplo) e verificar se os dados na tabela "FatoVendas" foram migrados corretamente. Confirme a contagem de registros e inspecione algumas linhas para garantir a integridade.
Visualizar os dados na instância Banco de dados SQL do Azure (VIEW DATA): O SSDT permite visualizar os dados diretamente na instância do Banco de Dados SQL do Azure, facilitando a análise e o gerenciamento dos dados armazenados.
Com os dados migrados com sucesso para a nuvem, eles estão prontos para serem utilizados em novas aplicações, relatórios ou análises avançadas, aproveitando os benefícios da plataforma Azure.
O Visual Studio, com a extensão Integration Services Projects, oferece uma solução robusta e visualmente intuitiva para comparar e migrar esquemas e dados entre instâncias do SQL Server, facilitando significativamente a transição de ambientes locais para o Azure SQL. O processo, como demonstrado, cobre desde a configuração das conexões até a execução e verificação da migração. Esperamos que este guia detalhado seja um recurso valioso em seus projetos de migração para a nuvem. Se tiver dúvidas ou sugestões, deixe seu comentário!
Cientista de Dados e Consultor de Soluções Digitais e Analíticas
@fabioms