8 dicas para migração de dados

A maioria das empresas que pretendem adquirir um sistema de TI já possuem uma ou várias soluções de software que atendem, de forma insatisfatória ou incompleta  suas necessidades e dai surge a decisão de adquirir um novo produto. Mas, o fato do sistema legado não atender as atuais necessidades da empresa não significa que seus dados são irrelevantes ou descartáveis, muito pelo contrário, os sistemas legados guardam informações preciosas de negócio que precisam ser mantidas de alguma forma. Com esse cenário, tornou-se comum a prática de migração de dados de uma base ou fonte antigas para uma nova base. Mas, apesar de comum, a migração está longe de ser uma tarefa trivial.

Nesse post vou apresentar de forma resumida algumas dicas, baseadas em experiência própria, para evitar que seu processo de migração vire uma dor de cabeça:

1ª Dica: Planejamento

Antes de mais nada, é preciso levantar se existe a necessidade de migrar dados ou não, saber de onde vem esses dados, e quais dados devem ser mantidos. O processo de migração deve ser incluso no planejamento do projeto de desenvolvimento, pois é uma tarefa importante que vai consumir um bom tempo.

2ª dica:  Documentação

Como parte do processo de desenvolvimento do software, a etapa de migração deve ter uma documentação deixando bem claro o que será migrado, o que não será migrado e, se aplicável, as condições de migração. O cliente pode decidir que usuários sem atividades nos últimos 6 meses não precisam estar na nova base. Essa regra precisa estar bem documentada e aceita pelo cliente, para evitar problemas futuros.

3ª dica: Walkthrough

O processo de migração pode ser composto por várias fases, como migrar tabela x, migrar tabela y, validar tabela z. Para não se perder, o ideal é criar um roteiro passo a passo para não esquecer nada na hora h. Se a pessoa que planejou e criou a migração é a mesma que irá executar, pode até ser uma listinha em papel de pão, sem muita formalidade.

4ª dica: Utilizar ferramentas

Ferramentas prontas podem ajudar na agilidade, confiabilidade e tempo gasto para montar o processo de migração. Ferramentas de ETL, como o pentaho data integration podem ser uma mão da roda, sendo uma opção confiável, fácil de manipular e estável. Funções ou procedures do próprio banco de dados também podem auxiliar o processo de migração.

5ª dica: Undo

Dependendo da quantidade de dados, a migração pode ser algo bem demorado e complexo. Isso significa que, erros podem acontecer durante esse processo. Acabar a luz no meio da execução, aparecer um campo null onde não era esperado, surgir um telefone abc. Difícil prever tudo na etapa de planejamento. Mais difícil ainda seria se o erro surgisse depois de milhares de registros migrados. Começar tudo de novo não seria uma coisa muito legal, então o ideal é criar processos que mantenham a integridade dos dados e sejam capazes de gravar apenas o que não foi gravado e desfazer o que precisa ser desfeito.

6ª dica: id único?

Um ponto importante também que precisa ser lembrado é com relação aos ids. As tabelas de banco de dados costumam ter ids únicos utilizados para identificar cada registro, dentro do próprio sistema. Apesar de ser um id interno, muitas vezes esses ids são utilizados como identificadores de negócio, e utilizados para comunicação com outros sistemas. Isso deve ser levantado na etapa de planejamento de migração, para decidir se na nova base, o id será mantido ou será necessário criar um campo com o id legado.

7ª dica: Demora?

É preciso também definir como será a estratégia de migração dos dados. A migração será feita baseada em um backup e os dados gerados depois do backup serão tratados depois? Ou o sistema atual será parado para atualização do sistema e para a migração? Se a opção escolhida for parar o sistema atual, será preciso saber por quanto tempo o sistema ficará parado. Uma forma de obter essa informação é ensaiar. Simular o processo de migração e marcar o tempo gasto uma, duas, três vezes para saber se os tempos são consistentes e se o processo é confiável.

8ª dica: testar, testar, testar

Após migrar os dados para a nova base, é preciso saber se tudo foi migrado e da forma esperada. Os testes podem ser feitas de forma quantitativa, criando selects que contam os registros existentes na base origem e comparando com o total na base destino. De forma amostral, pegando registros aleatórios e verificando se os dados foram gravados da forma como deveriam e de forma semântica, verificando se os dados fazem sentido ou até rodando o novo sistema apontando para a nova base com os dados legados e verificando se está tudo funcionando conforme esperado. Uma boa idéia seria também criar um ambiente de homologação com o novo sistema acessando a base nova com dados legados e solicitar testes para o próprio cliente, que conhece o negócio e sabe exatamente quais dados devem existir na base nova.

 

Conclusão

Nesse post apresentei alguns detalhes que precisam ser observados em um processo de migração. Para mais informações, recomendo a leitura do excelente artigo disponível nesse link onde o autor descreve um conjunto de etapas que devem ser seguidas para que o processo de migração não se torne um fracasso completo.

Referências

 

Por MARCIA TANIMOTO

Formada em Informática - UEM/Maringá. Analista de Sistemas, apaixonada pela profissão, curiosa e MATERANA de coração.

Postado em: 24 de abril de 2015

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Deixe seu comentário