Migração de Dados | ETL K2View | Kal TI Migração de Dados | ETL K2View | Kal TI
Migração de dados: não deixe tornar seu projeto um fracasso
Publicado em 13 de Maio de 2016 25 de dezembro de 2016 por kaltiadm
Em um projeto de desenvolvimento e implantação de sistemas, independentemente do tipo de projeto, é comum existir a necessidade de migrar dados de sistemas legados para o novo sistema. Nesse processo, alguma conversão, tratamento e/ou transformação dos dados será necessária para que seja possível migrá-los.
Os problemas ocorrem quando se tenta levar dados mantidos por sistemas legados para "encaixar" em uma nova definição. Um erro comum em projetos de sistemas é que o gerente do projeto fica muito focado em determinar claramente os requisitos funcionais de um novo sistema e dispõe de pouca ou nenhuma atenção para a migração de dados que deve ocorrer. É comum também que o processo de migração de dados seja representado como uma simples atividade dentro de um planejamento maior. Não tenha dúvidas de que a migração de dados é uma atividade custosa dentro do projeto e, se não for dada a devida atenção, se tornará caminho crítico do projeto, e pode ainda gerar atrasos em sua entrega e até mesmo levá-lo ao fracasso.
A fim de evitar problemas na migração de dados, essa atividade deve ser executada de uma forma para que se possa garantir sua qualidade final. Para tanto, um processo sistemático divido em etapas com atividades distintas, em que cada atividade gera insumos para a execução da atividade seguinte, deve ser seguido. A figura abaixo apresenta as etapas e as atividades do processo que serão discutidas a seguir.
A etapa de planejamento da migração é horizontal e permeia todas outras etapas. Uma vez definida a estratégia, o processo é iterativo, podendo ser incremental, paralelo ou ocorrer em ciclos de revisões sistemáticas. É iterativo porque o processo se repete diversas vezes para se chegar a um resultado e a cada vez gera um resultado parcial que será usado na vez seguinte. Pode ser incremental se a estratégia definida for "fatiar" a migração em conjuntos de dados por assunto, por exemplo, como cadastros, faturamento etc., e executar cada fatia, uma após a outra. Pode ser paralelo, se for possível executar cada fatia ao mesmo tempo, por equipes diferentes, por exemplo. Ou pode-se optar por migrar todo o conjunto de dados e validar o processo em ciclos de revisões sistemáticas até conseguir a excelência no processo.
Na fase de estratégia é que ocorre o planejamento geral do processo de migração de dados. É importante notar que projetos de migração de dados não ocorrem de forma independente. Pelo contrário, eles são demandados a partir de outros esforços de desenvolvimento. A fase de estratégia é fundamental para que o processo de migração de dados ocorra de forma clara e sem problemas e fornecerá os artefatos necessários para a condução das próximas atividades do processo.
O objetivo da fase de estratégia é obter uma compreensão high-level do processo a ser executado e a definição de como será executado. Possui foco na descoberta, no planejamento e no alinhamento do processo com stakeholders. As atividades são realizadas para obter uma avaliação dos dados de origem e criar documentos de planejamento para estabelecer formalmente o escopo, a abordagem e a estratégia da migração. As informações levantadas nessa fase dimensionarão o esforço necessário para a execução da migração.
Atividades que devem ser executadas nessa fase:
Definição do escopo da migração
Definição de como será executado o processo (big-bang, faseado, paralelo etc.)
Especificação das tecnologias envolvidas nas fontes de dados de origem e destino
Especificação das tecnologias e metodologias que suportarão o processo de migração
Identificação de riscos associados
Workshop de migração de dados
O objetivo da realização de um workshop de migração de dados é apresentar a abordagem definida para o processo de migração para os stakeholders. Esse workshop destina-se a ser de mão dupla, no qual os membros da equipe de migração de dados poderão compartilhar a abordagem escolhida e experiências em projetos anteriores e, por outro lado, membros da área de negócio poderão apresentar os objetivos de negócio, restrições e preocupações.
No decorrer do workshop, a estratégia traçada anteriormente poderá sofrer alterações. É importante que esse alinhamento ocorra ainda na fase de estratégia para que não aconteçam retrabalhos nas atividades seguintes. Dessa forma, a equipe pode definir uma estratégia adequada para a execução de todo o processo.
Ao concluir o workshop de migração de dados, a equipe de migração obtém uma compreensão dos objetivos de negócio e os desafios em termos do processo de migração, e os clientes de negócio ganham uma compreensão das complexidades e dos desafios para execução do processo e como gerenciar os riscos associados.
Entradas da atividade:
Saídas da atividade:
Declaração de escopo de migração de dados
A fase de análise da migração de dados deve ser programada para ocorrer simultaneamente com a mesma fase do projeto principal. O objetivo da fase de análise é identificar detalhadamente as fontes de dados que devem ser migradas para o novo sistema. As fontes podem não estar limitadas a um único sistema, assim como podem ser planilhas, arquivos texto ou outras fontes de dados não estruturados.
Nesta fase, a equipe deve familiarizar-se com os dados que se pretende migrar. O entendimento do modelo conceitual de dados na origem facilitará a atividade seguinte. A identificação de tabelas, campos e tipos de dados nas fontes de origem fazem parte desta atividade do processo.
Assim como a equipe deve estar familiarizada com o conjunto de dados que se deve migrar, a equipe deve conhecer qual será o destino dos dados. Modelos conceitual e físico, com tabelas, campos e tipos de dados devem ser identificados para a atividade seguinte do processo.
O propósito da auditoria de dados é analisar o perfil e a qualidade dos dados que serão migrados em suas fontes de origem. A atividade de perfil de dados (data profiling) é o processo de analisar os dados legados para identificar anomalias nos dados e validar regras de negócio a serem aplicadas. Na atividade de auditoria de dados, o foco é conduzir a análise observando problemas típicos, como a falta de dados, nomes de colunas inconsistentes e tipos de dados inconsistentes. A equipe de migração deve envolver usuários de negócio para auxiliar a identificar gaps existentes nos níveis requeridos de qualidade de dados.
Modelos conceituais e físicos das fontes de dados de origem
Modelos conceituais e físicos das fontes de dados de destino
Relatório de auditoria de dados (gaps e riscos identificados quanto à qualidade de dados)
A fase de design tem por objetivo especificar os requisitos necessários para a execução da migração. Nesta fase, serão definidos os mapeamentos entre as fontes de dados de origem e destino e as transformações necessárias para que a migração ocorra. Técnicas de ETL (extract, trasnform, load) podem ser utilizadas neste momento. Durante o desenho da solução a ser implementada, algumas questões que não foram identificadas na fase de análise podem ser identificadas. Caso isso ocorra, a equipe deve voltar à fase de análise para sanar as dúvidas/questões encontradas e posteriormente continuar com o design da solução.
Um documento de especificação técnica deve ser gerado contendo os seguintes tópicos:
Diagrama arquitetural do ambiente
Padrões de conectividade de fontes de dados de origem e destino
Requisitos de retenção de dados (tudo, n anos/meses, transações em aberto etc.)
Mapeamento/correspondência entre entidades físicas e respectivos atributos
Especificação técnica de migração de dados
Na fase de desenvolvimento, constrói-se efetivamente a solução que foi especificada na fase anterior. Durante a construção da solução, algumas questões que não foram mapeadas na fase de design podem ser identificadas. Caso isso ocorra, a equipe deve voltar à fase de design para sanar as dúvidas/questões encontradas e posteriormente continuar com o design da solução. Note que pode ser necessário voltar até a fase de análise, caso as atividades da fase de design não consigam solucionar o problema encontrado.
Solução de migração
O desenvolvimento é acompanhado por uma atividade de teste de software, que é um elemento fundamental da garantia de qualidade do processo de migração. Essa atividade fornecerá subsídios para uma revisão sistemática da especificação, design e codificação com o intuito de diminuir ao máximo a quantidade de erros. Os erros encontrados na fase de testes podem ser divididos em dois tipos: erros físicos e erros lógicos. Erros físicos são essencialmente fáceis de tratar e estão ligados à natureza sintática do mapeamento dos campos. Erros lógicos devem ser revistos na fase de análise e design da migração. Estão ligados à natureza semântica dos campos.
Algumas perguntas devem ser observadas na execução dos testes:
Quantos registros espera-se criar em cada objeto?
Os dados foram carregados nos campos corretos?
Os dados foram formatados de forma correta?
As transformações foram executadas conforme o esperado?
Relatório de execução de testes (sucesso e erros ocorridos por objeto migrado)
Com base nos testes executados, uma revisão de todo o processo executado deve ser efetuada. Nesta fase é que pode-se verificar se toda a análise, design, desenvolvimento e, até mesmo, a estratégia adotada foi eficaz. Neste momento, a equipe de migração deve decidir se o processo está pronto para ser executado em produção ou se um novo ciclo deve ser iniciado. Um plano de roll-out deve ser criado para que todos os passos, ordenação necessária para a execução das atividades, tempo previsto da execução e resultados esperados estejam documentados para a execução do processo em ambiente de produção.
Relatório de correções a serem executadas (caso necessário)
Go-ahead para o roll-out (se o processo estiver ok)
Plano de roll-out
A fase de roll-out é a execução da solução desenvolvida em ambiente de produção. Para a execução do roll-out, os erros devem ser totalmente corrigidos ou uma discussão com a área de negócio sobre os erros encontrados a nível semântico de dados deve ser realizada. Erros sintáticos devem ser revistos na fase anterior e corrigidos.
Não recomenda-se que diversos roll-outs na forma "tentativa e erro" sejam executados. Muitas vezes a limpeza dos dados migrados em ambiente de produção, para realização de uma nova migração, pode ser uma tarefa custosa e difícil de ser realizada, além de apresentar um risco à integridade dos dados.
Relatório de execução da migração.
Migrar dados de um sistema para outro não é uma atividade trivial e deve ser dada a devida atenção por sua complexidade, que por muitas vezes é negligenciada. Para o usuário final, ter seu sistema funcional não é o suficiente se os dados que ele tinha no sistema antigo não estão lá disponíveis. Considere que a migração de dados é um subproduto de um projeto maior, e não apenas uma atividade, e merece atenção especial.
Se você ficou com alguma dúvida, quer saber mais sobre migração de dados, entre em contato com os nossos consultores. Eles terão muito prazer em ajudá-lo.