top of page
Buscar

MIGRAÇÃO DE DADOS

18 de set.
13 min de leitura

Da cópia técnica à preservação do significado

Um guia prático para levantamento, governança, mapeamento, grão, chaves, arquitetura em camadas, validação, cutover e operação.

Figura 1 — Visão geral do ciclo de migração adotado neste artigo.

Artigo técnico para profissionais de Engenharia de Dados

2026


Resumo

Migrações de dados falham com frequência não porque a equipe desconhece como copiar arquivos, executar cargas incrementais ou criar tabelas no ambiente de destino, mas porque o projeto começa sem um entendimento compartilhado sobre o que os dados representam. A ausência de requisitos claros, responsáveis pela decisão, definição de grão, chaves de negócio, regras de transformação e critérios de validação transforma um problema semântico em uma sequência de correções técnicas.

Este artigo propõe um processo de migração orientado por evidências e por contratos de dados. O foco é mostrar o que precisa ser decidido em cada etapa, quem deve decidir, como documentar exceções e como validar a passagem da origem para Landing, Bronze, Silver e Gold sem cair na armadilha de exigir igualdade literal entre estruturas que possuem propósitos diferentes. A premissa é simples: toda diferença precisa ser explicável; nem toda diferença é erro; e nem toda igualdade significa qualidade.

Princípio central — Migrar dados não é transportar valores de A para B. É preservar significado, rastreabilidade, confiabilidade e capacidade de decisão.


Roteiro do artigo

  • 1. Antes da primeira carga: defina o tipo de migração e o resultado esperado

  • 2. Descoberta e levantamento: conheça o ecossistema antes de desenhar o alvo

  • 3. Governança: identifique quem decide sobre cada dado

  • 4. Mapeamento origem → alvo: transforme conhecimento tácito em contrato

  • 5. Grão, chaves e identidade: o núcleo lógico da migração

  • 6. Ingestão, Landing e Bronze: fidelidade, reprocessamento e auditoria

  • 7. Silver: qualidade, padronização e semântica controlada

  • 8. Gold: modele para o negócio, não para imitar o legado

  • 9. Validação por etapa: o que comparar e com o quê

  • 10. Cutover, execução paralela e reconciliação final

  • 11. Operação pós-migração: observabilidade, reprocessamento e ownership

  • 12. Antipadrões, checklist e definição de pronto


1. Antes da primeira carga: defina o tipo de migração e o resultado esperado

A expressão “migração de dados” costuma agrupar iniciativas muito diferentes. Um rehost pode buscar máxima compatibilidade com o ambiente atual; uma modernização para lakehouse pode alterar formatos, modelos, padrões de ingestão, tratamento de histórico e formas de consumo; uma migração cloud-to-cloud pode preservar parte da arquitetura e mudar governança, serviços gerenciados ou mecanismos de processamento. Se o projeto não declarar qual desses objetivos está perseguindo, a equipe discutirá “paridade” sem saber o que paridade significa.

O primeiro artefato da migração deve ser um documento curto de intenção: escopo, dados incluídos, consumidores, nível de transformação permitido, requisitos de histórico, janela de corte, tolerância a indisponibilidade, requisitos regulatórios e critérios de aceite. Isso evita que decisões fundamentais surjam tardiamente dentro de uma tarefa técnica.

Pergunta

Exemplo de decisão

Estamos apenas movendo ou também modernizando?

Modernizar ingestão e modelo analítico; não reproduzir defeitos conhecidos do legado.

O histórico completo é obrigatório?

Sim, desde 2021, com reconciliação mensal e trilha por lote.

Quem é o consumidor final?

BI financeiro, produtos de dados e integrações operacionais.

Qual é o nível de compatibilidade esperado?

Semântica equivalente; estrutura física pode mudar.

Qual é a estratégia de corte?

Carga histórica, incremental, execução paralela e delta final.


Figura 2 — A migração deve tratar explicitamente a diferença entre preservar significado e replicar defeitos.


Decisão importante — Quando o comportamento incorreto do legado precisa ser temporariamente preservado por compatibilidade, trate-o como uma regra versionada e com prazo de retirada. Não o deixe escondido no código.


2. Descoberta e levantamento: conheça o ecossistema antes de desenhar o alvo

A fase de descoberta reduz o desconhecido. Ela existe para responder não apenas “quais tabelas existem?”, mas também “quem usa?”, “de onde realmente vem?”, “qual é a frequência?”, “há campos calculados?”, “há correções manuais?”, “qual sistema é autoritativo?”, “qual regra só existe na cabeça de alguém?” e “o que quebra se este dado mudar?”. Uma tabela tecnicamente simples pode ter alto risco se alimentar fechamento contábil, cobrança ou indicadores regulatórios.

O levantamento precisa combinar inventário técnico com investigação funcional. Catálogo, DDL, linhagem, logs de execução e amostragem de dados mostram uma parte. Entrevistas com especialistas do domínio, usuários e mantenedores revelam regras implícitas. Essa combinação é o que permite transformar um legado desconhecido em um domínio migrável.

Dimensão do levantamento

O que registrar

Fonte e acesso

SGBD/arquivo/API, host lógico, schema, tabela, formato, codificação, credenciais por segredo, limites e SLAs.

Volume e perfil

Quantidade de linhas, crescimento, partições, cardinalidade, nulos, duplicidades, valores fora do domínio.

Temporalidade

Campo de criação/alteração, timezone, histórico disponível, late arrival, dados retroativos, fechamento.

Dependências

ETLs, relatórios, APIs, planilhas, jobs, consumidores, tabelas auxiliares, lookups.

Semântica

Significado de campos, fórmulas, códigos, exceções, regras manuais e sistema de registro.

Riscos

Dados pessoais, regras regulatórias, indisponibilidade, limitações de origem, janela de extração.

Entregável mínimo — Inventário de dados + mapa de dependências + perfil inicial + lista de riscos e dúvidas abertas. Sem isso, o desenho do alvo é uma hipótese.


3. Governança: identifique quem decide sobre cada dado

Uma migração frequentemente trava no ponto em que a engenharia encontra uma inconsistência e ninguém sabe quem pode decidir. O banco contém “A”, “B” e “X”, a documentação só reconhece “A” e “B”, e a equipe técnica é pressionada a escolher um tratamento para “X”. Esse é um problema de governança, não de SQL.

Figura 3 — Papéis que precisam participar das decisões de uma migração.


A responsabilidade deve ser explícita por domínio ou conjunto de dados. O negócio define o significado e o aceite; o Data Owner responde pelo domínio; o Data Steward ou especialista detalha regras e exceções; a engenharia implementa, instrumenta e prova o comportamento; os consumidores validam se o resultado atende ao uso real. Em estruturas menores, uma pessoa pode acumular papéis, mas a decisão ainda precisa ser registrada.

Decisão

Quem deve aprovar

Evidência

Significado de um campo

Data Owner / negócio

Definição no catálogo ou contrato

Tratamento de código inválido

Data Steward / SME

Regra de qualidade + destino da exceção

Deduplicação

Data Owner + engenharia

Chave, prioridade, tie-breaker e teste

Cálculo de KPI

Negócio / consumidor

Fórmula, grão, janela e exemplos

Mudança de chave de negócio

Data Owner + arquitetura

Impacto de relacionamento e histórico

Aceite da migração

Owner + consumidores críticos

Checklist, reconciliação e UAT


4. Mapeamento origem → alvo: transforme conhecimento tácito em contrato

O mapeamento não é uma planilha de “coluna A vira coluna B”. Ele é o contrato que explica como o significado é preservado ou alterado. Para cada atributo relevante, registre a origem, tipo, domínio, regra de transformação, nulabilidade, padrão de normalização, tratamento de exceção, criticidade, responsável pela decisão e forma de validação.

Origem

Alvo

Regra

Exceção

Validação

status_cliente CHAR(1)

status_cliente STRING

A→ATIVO; B→BLOQUEADO

Outros códigos → quarentena

Distribuição por status + amostra rastreável

cpf VARCHAR

cpf_normalizado STRING

Remover máscara; validar dígitos

Inválido não compõe BK

% válidos, nulos e duplicados

dt_alt DATETIME

updated_at TIMESTAMP

Converter para UTC

Timezone desconhecido → flag

Min/max e contagem por dia

vl_saldo NUMERIC

saldo_fechamento DECIMAL

Usar último evento válido do dia

Sem evento → regra acordada

Reconciliação por conta/data

O mapeamento também precisa registrar o que não será migrado e o motivo. Campos obsoletos, técnicos, duplicados ou sem consumidor devem ser eliminados de forma deliberada. “Não entrou porque ninguém usou” é muito diferente de “não entrou porque foi esquecido”.

Boa prática — Versione o mapeamento junto com o código. Uma alteração de regra de transformação é uma mudança de contrato e deve ser rastreável.


5. Grão, chaves e identidade: o núcleo lógico da migração

Antes de escrever o modelo alvo, descreva em linguagem simples o que uma linha representa. Esse enunciado é o grão. Em uma fato de transações, pode ser “uma linha por evento financeiro confirmado”. Em uma dimensão de cliente, pode ser “uma linha por pessoa por versão válida”. Em um snapshot diário, “uma linha por conta por data de referência”. O grão determina quais colunas podem formar unicidade e quais agregações fazem sentido.

Figura 4 — Relação entre pergunta de negócio, grão e estratégia de chaves.


Em migrações, é comum confundir a chave técnica do legado com a identidade de negócio. Um ID sequencial pode ser apenas um detalhe de implementação e não sobreviver a múltiplas fontes. Por isso, separe os conceitos:

  • Chave natural: atributo ou combinação que identifica o registro no domínio, quando confiável.

  • Business Key (BK): representação controlada da identidade de negócio usada no modelo e nas regras de integração.

  • Surrogate Key (SK): chave técnica gerada no alvo, útil em dimensões e relacionamentos internos.

  • Hash de negócio ou hash de mudança: mecanismo técnico para comparação/detecção, não substituto automático da definição semântica da chave.

Uma BK ruim contamina deduplicação, SCD, joins e reconciliação. Portanto, antes de adotar “ID da origem”, teste estabilidade, reutilização, colidibilidade entre sistemas, presença histórica e comportamento em casos de fusão, cancelamento ou reativação.

Figura 5 — Exemplo de por que a quantidade de linhas pode mudar legitimamente entre origem e Gold.


6. Ingestão, Landing e Bronze: fidelidade, reprocessamento e auditoria

Neste artigo, Landing representa a zona de recepção do dado e Bronze representa a persistência bruta auditável. Essa convenção estende a arquitetura Medallion tradicional, em que Bronze já é a camada raw. O importante é que o projeto deixe claro onde termina a transferência e onde começa o histórico técnico persistido.

Na ingestão, a prioridade é não perder evidência. O dado deve chegar com metadados suficientes para reconstruir o que ocorreu: origem, arquivo ou partição, timestamp de ingestão, batch_id, intervalo de extração, watermark utilizado, hash do arquivo quando aplicável e status da carga. Transformações destrutivas devem ser evitadas nessa etapa.

Etapa

Objetivo

Validações recomendadas

Origem → Landing

Garantir que a transferência terminou corretamente

Arquivos esperados, tamanho, checksum quando possível, contagem por extração, janela temporal, falhas de leitura.

Landing → Bronze

Persistir o raw com metadados e parsing controlado

Linhas lidas x gravadas, schema capturado, registros malformados, colunas técnicas, duplicidade de lote.

Reprocessamento

Reexecutar sem corromper histórico

Idempotência, batch_id, partição, overwrite/merge planejado, trilha de execução.

Regra de ouro — Se a camada raw não permite reprocessar a Silver de forma determinística, a migração perde uma das suas principais garantias operacionais.


7. Silver: qualidade, padronização e semântica controlada

Silver é o ponto em que o dado deixa de ser apenas recebido e passa a ser confiável para integração. É onde entram schema enforcement, tipagem, normalização, deduplicação, tratamento de nulos, domínio de valores, integração de fontes, resolução de late-arriving data e políticas de histórico. A documentação da Databricks descreve a camada Silver justamente como o estágio de limpeza, validação e enriquecimento; a qualidade deve aumentar à medida que o dado progride pelas camadas.

A regra crítica é separar correção legítima de alteração arbitrária. Se um CPF inválido impede a identificação confiável da entidade, a Silver não deveria “inventar” um CPF. Ela pode normalizar formatos válidos, marcar inconsistências, quarentenar, enriquecer a partir de uma fonte autorizada ou aplicar uma regra aprovada. A mesma lógica vale para códigos de status, datas impossíveis, duplicidades e relacionamentos incompletos.

Tipo de regra

Exemplo

Tratamento

Sintática

CPF com máscara, texto com acento/caixa inconsistente

Normalizar de forma determinística.

Domínio

status fora da lista aprovada

Quarentena ou valor “DESCONHECIDO” conforme contrato.

Unicidade

duas linhas para a mesma BK no mesmo instante

Aplicar prioridade/tie-breaker documentado.

Referencial

fato sem dimensão correspondente

Chave “desconhecido”, atraso controlado ou quarentena.

Temporal

evento atrasado altera período já processado

Política de late arrival e janela de reprocessamento.

Quarentena — Quarentena não é lixeira. Ela precisa de motivo, volume, criticidade, responsável, SLA de tratamento e possibilidade de reprocessamento.


8. Gold: modele para o negócio, não para imitar o legado

A Gold costuma ser a camada mais distante estruturalmente da origem porque seu objetivo é servir ao consumo de negócio: modelos dimensionais, data marts, agregações, métricas e entidades conformadas. Isso não significa que ela pode divergir sem controle; significa que a forma de validação muda. A Gold deve ser rastreável até a origem e reconciliável com ela, mas a conformidade principal é com o grão, as regras de negócio e os contratos aprovados.

Exigir igualdade registro a registro entre uma tabela transacional do legado e uma fato agregada por dia é um erro de critério, não uma falha da migração. Da mesma forma, uma dimensão de cliente corretamente deduplicada pode ter menos linhas que o cadastro legado. A validação precisa responder por que houve diferença e se a diferença está prevista.

Figura 6 — Cada camada responde a uma pergunta de validação diferente.


Para fatos, valide explicitamente o grão e a aditividade das medidas. Uma medida de movimento pode ser somável; um saldo diário geralmente é semiaditivo no tempo e não deve ser somado indiscriminadamente entre datas. Para dimensões, valide BK, SK, atributos conformados, histórico SCD, registros desconhecidos e integridade referencial.

Pergunta-chave — Se a Gold “precisa bater com a origem”, defina exatamente o que deve bater: total financeiro por período? quantidade de eventos válidos? entidades únicas? saldo de fechamento? Nunca use “bater” como requisito sem uma métrica formal.


9. Validação por etapa: o que comparar e com o quê

Validação de migração não é um único teste no final. É uma cadeia de evidências. Quanto mais cedo um erro é detectado, menor o custo de diagnóstico. O conjunto de testes deve avançar de integridade técnica para reconciliação volumétrica, qualidade, semântica e aceite de negócio.

Figura 7 — Camadas de evidência necessárias para afirmar que uma migração está reconciliada.


Comparação

O que deve ser validado

Quando diferenças são aceitáveis

Origem x Landing

arquivos/lotes, tamanho, contagem, janela, ausência de perda

Somente se a extração foi definida como amostral ou filtrada.

Landing x Bronze

linhas persistidas, parsing, schema, metadados

Registros inválidos podem ir para erro/quarentena, desde que contabilizados.

Bronze x Silver

regras de qualidade, deduplicação, tipagem, domínios

Sim, quando regras aprovadas removem/mesclam/quarentenam registros.

Silver x Gold

grão, joins, agregações, SK/BK, métricas

Sim, e frequentemente esperado por modelagem dimensional e agregação.

Gold x negócio

KPI, comportamento, casos reais, UAT

Apenas dentro de tolerâncias ou exceções explicitamente aprovadas.

Para cada divergência, registre classificação, causa, regra que a explica, volume afetado e aprovação. Essa prática muda a conversa de “não bateu” para “há 1.842 linhas consolidadas em 1.121 clientes porque a regra de identidade é CPF válido e existem duplicidades históricas documentadas”.

Exemplo de reconciliação

Resultado esperado

COUNT(*) por batch_id

Provar completude de ingestão.

COUNT DISTINCT(BK) por competência

Detectar perda, duplicidade ou mudança de identidade.

SUM(valor) por período e domínio

Reconciliar medidas aditivas.

MIN/MAX(data_evento)

Verificar cobertura temporal.

Distribuição por status/categoria

Detectar alteração de domínio e mapeamento.

Amostra rastreável por BK

Explicar transformação registro a registro.

Registros em quarentena por regra

Medir dívida de qualidade e risco do corte.


10. Cutover, execução paralela e reconciliação final

O cutover é uma mudança de sistema de confiança. Por isso, a virada deve ser preparada como um evento controlado, não como “o dia em que paramos o legado”. Uma estratégia típica inclui carga histórica, sincronização incremental, período de execução paralela, freeze quando necessário, delta final, alteração dos consumidores e hypercare.

Figura 8 — Sequência de cutover baseada em redução progressiva de incerteza.


Durante a execução paralela, compare resultados em janelas que representem o uso real. Um único dia “batendo” pode esconder efeitos de fechamento mensal, late-arriving data, feriados, virada de competência ou regras que só aparecem em casos raros. A janela deve ser proporcional ao ciclo do negócio.

Critério de go-live

Exemplo

Carga histórica completa

100% das partições previstas processadas; exceções contabilizadas.

Incremental estável

Sem lacunas de watermark/CDC e com reexecução testada.

Qualidade dentro do limite

Regras críticas sem violação; não críticas com aceite e plano.

Reconciliação aprovada

Totais, entidades e KPIs dentro das tolerâncias acordadas.

Consumidores validados

Dashboards, APIs e extrações críticas testados.

Rollback definido

Critérios, responsáveis e procedimento exercitado ou revisado.


11. Operação pós-migração: observabilidade, reprocessamento e ownership

Uma migração não termina no primeiro dia em produção. O alvo precisa entrar em operação com observabilidade suficiente para detectar falhas antes que os consumidores as encontrem. Isso inclui saúde da ingestão, atraso, volume, qualidade, schema drift, falhas de dependência, custo anômalo e comportamento de dados críticos.

Também é necessário preservar o ownership. Após o projeto, alguém continua responsável por aprovar mudanças de domínio, tratar violações de qualidade, atualizar contratos e decidir sobre novas fontes. Sem essa continuidade, o alvo moderno começa a acumular as mesmas ambiguidades do legado.

Sinal observável

Pergunta operacional

Freshness

Os dados chegaram no horário esperado?

Volume

O volume está dentro da faixa histórica ou houve queda/pico?

Qualidade

Quais regras falharam e qual o impacto?

Schema

Houve coluna nova, removida ou tipo alterado?

Linhas rejeitadas

Quantas foram para quarentena e por quê?

Reconciliação contínua

Totais e entidades continuam coerentes entre estágios?

Custo/performance

Mudanças de volume ou desenho degradaram processamento?


12. Antipadrões que aparecem repetidamente em migrações

  • Começar pelo código: A equipe cria pipelines antes de fechar escopo, grão, ownership e regras. Resultado: retrabalho estrutural.

  • Usar o legado como especificação perfeita: O legado contém decisões históricas, atalhos e defeitos. Ele é evidência importante, mas não substitui o significado do negócio.

  • Validar Gold com COUNT(*) do legado: Contagem de linhas ignora agregação, deduplicação, SCD e mudança de grão.

  • Deixar exceções escondidas: CASE WHEN e filtros ad hoc viram “regra” sem dono e sem rastreabilidade.

  • Chamar qualquer ID de chave de negócio: IDs técnicos podem ser instáveis entre sistemas e não representar identidade real.

  • Excluir registros sem contabilizar: Toda perda precisa aparecer como rejeição, quarentena, regra de exclusão ou decisão aprovada.

  • Cutover sem rollback: Se não existe forma de voltar ou corrigir, o risco operacional foi transferido para o consumidor.


13. Checklist prático de uma migração bem estruturada

  • ☐ Escopo, objetivo e tipo de migração definidos.

  • ☐ Inventário de fontes, consumidores e dependências concluído.

  • ☐ Data Owner / responsável por domínio identificado.

  • ☐ Mapeamento origem → alvo versionado e aprovado.

  • ☐ Grão de cada dataset descrito em linguagem de negócio.

  • ☐ BK, SK, regras de deduplicação e histórico definidos.

  • ☐ Estratégia de ingestão, incrementalidade, watermark/CDC e reprocessamento documentada.

  • ☐ Metadados de lote e linhagem disponíveis desde a ingestão.

  • ☐ Regras de qualidade classificadas por criticidade.

  • ☐ Quarentena com SLA, motivo e responsável.

  • ☐ Critérios de validação específicos por etapa definidos antes da execução.

  • ☐ Reconciliações por volume, chave, período, domínio e medida implementadas.

  • ☐ Diferenças entre origem e alvo documentadas e explicadas.

  • ☐ UAT com consumidores críticos concluído.

  • ☐ Plano de cutover, execução paralela e rollback definido.

  • ☐ Observabilidade e ownership pós-migração ativados.


14. Definição de pronto por etapa

Etapa

Pode avançar quando...

Descoberta

fontes, dependências, riscos e dúvidas críticas estão registrados.

Governança

há responsáveis e um processo de decisão para ambiguidades.

Mapeamento

campos, regras, exceções e critérios de validação estão aprovados.

Ingestão/Bronze

a transferência é completa, auditável e reprocessável.

Silver

qualidade, identidade, deduplicação e regras temporais são determinísticas.

Gold

grão, relacionamentos e métricas atendem aos contratos de negócio.

Validação

diferenças são explicadas e aceitas; não existem divergências críticas sem dono.

Cutover

consumidores, rollback, monitoração e suporte estão prontos.


15. Conclusão

Os problemas mais caros de uma migração de dados geralmente nascem antes da primeira linha de código: requisitos incompletos, ausência de ownership, semântica não documentada, grão indefinido e critérios de validação genéricos. Quando essas lacunas existem, a engenharia acaba tentando resolver por implementação decisões que deveriam ter sido tomadas por governança e pelo domínio.

Um processo robusto muda a ordem do trabalho. Primeiro entende, depois define, então implementa, valida e só então promove o dado para consumo. Landing e Bronze preservam a evidência; Silver controla qualidade e identidade; Gold expressa o modelo de negócio. A validação acompanha essa evolução: começa pela fidelidade técnica e termina no aceite semântico e funcional.

A origem continua fundamental durante toda a migração, mas seu papel muda. Ela é a referência para demonstrar que nada foi perdido e para rastrear como o alvo foi construído. Ela não precisa ser o molde permanente do novo ambiente. Uma plataforma de dados bem projetada deve ser capaz de explicar cada diferença entre legado e alvo — inclusive quando o resultado correto é, deliberadamente, diferente.

Síntese — Uma migração está concluída quando o novo ambiente consegue provar de onde o dado veio, por que ele tem aquele valor, qual regra o transformou, quem aprovou a regra e como reprocessá-lo se necessário.


Referências e leituras complementares

Databricks — Medallion Architecture. Referência para organização em camadas com qualidade crescente entre Bronze, Silver e Gold.

Databricks — Reliability best practices. Práticas de confiabilidade e qualidade em arquitetura lakehouse.

Microsoft — Cloud Adoption Framework: Assess workloads for cloud migration. Ênfase em descoberta de componentes, dependências e requisitos antes da migração.

Microsoft — Planeje sua migração. Planejamento, priorização e sequência de migração.

Microsoft — Migration wave planning. Organização de migração em ondas para reduzir risco e complexidade.


Nota: a arquitetura em camadas apresentada no artigo é uma adaptação prática para cenários de engenharia de dados que utilizam Landing + Bronze + Silver + Gold. A nomenclatura pode variar entre organizações; o essencial é explicitar a responsabilidade de cada estágio e seus critérios de qualidade.

 
 
 

Comentários


bottom of page