A verificação de dados verifica se uma tarefa de migração migrou seus dados com precisão. O mecanismo de verificação se conecta aos bancos de dados de origem e destino e compara os documentos migrados com os dados de origem. O mecanismo de verificação valida o seguinte:
Nomes dos campos
Tipos de dados
Caminhos do campo
Values
A verificação de dados é executada por padrão para tarefas de migração únicas. Para saber como habilitar ou desabilitar a verificação de uma tarefa, consulte Usar verificação de dados.
Observação
Esta página descreve o mecanismo de verificação no Relational Migrator 1.18 ou posterior. As versões anteriores verificam apenas os valores da chave primária, verificam uma faixa mais estreita de esquemas e são executadas mais lentamente. Para usar esses recursos de verificação, atualize para 1.18 ou posterior.
Como funciona a verificação de dados
Para cada coleção em uma tarefa de migração, o mecanismo de verificação conclui as seguintes etapas:
Compara o número de documentos na collection de destino com o número de linhas na tabela de origem. Para saber mais, consulte Comparação de contagem de documentos.
Recupera linhas do banco de dados de origem em lotes, usando as chaves primárias da tabela de origem, e mapeia cada coluna de origem para seu caminho de campo correspondente na coleção.
Recupera os documentos que têm as mesmas chaves primárias da coleção de destino. O mecanismo de verificação desenrola e nivela esses documentos para que possa comparar cada valor de campo com o valor da coluna de origem correspondente.
Compara as linhas de origem com os documentos de destino. Para saber mais, consulte Comparação de nível de campo.
Se o mecanismo de verificação concluir essas etapas para cada coleção sem encontrar nenhuma incompatibilidade, o processo de verificação de dados relatará um status de VERIFIED. Para saber mais sobre os status de verificação, consulte Status de verificação de dados.
Comparação de contagem de documentos
Se o número de documentos na coleção de destino não corresponder ao número de linhas na tabela de origem do novo mapeamento de documentos, o mecanismo de verificação relatará a incompatibilidade. Uma incompatibilidade de contagem não interrompe a verificação da coleção.
Comparação em nível de campo
O mecanismo de verificação corresponde as linhas de origem aos documentos de destino pelos valores de suas chaves primárias. Como os valores da chave primária são exclusivos, eles normalmente identificam exatamente uma linha de origem e um documento de destino. O mecanismo de verificação compara cada par correspondente campo por campo. Se o par não corresponder, o mecanismo de verificação relata cada diferença.
Em alguns casos, várias linhas ou documentos compartilham os mesmos valores de chave primária. Por exemplo, quando o mecanismo de verificação desenrola um array incorporado, cada elemento do array compartilha os valores de chave primária de seu documento pai. Se várias linhas ou documentos incompatíveis compartilharem os mesmos valores de chave primária, o mecanismo de verificação não tentará emparelhá-los. Em vez disso, ele relata o número de linhas e documentos incompatíveis e exibe a diferença calculada para uma linha de origem representativa e um documento de destino.
Em ambos os casos, o mecanismo de verificação registra o conjunto completo de valores de chave primária para que você possa localizar os dados afetados.
Suposições de verificação
A verificação de dados pressupõe que os dados de origem não mudam após o início da tarefa de migração e que a coleção de destino contém apenas dados migrados. Se qualquer uma das suposições não for verdadeira, o mecanismo de verificação poderá relatar incompatibilidades que não são erros de migração:
Se a coleção de destino contivesse dados antes do início da tarefa de migração, o mecanismo de verificação relata os documentos pré-existentes como documentos inesperados.
Se os dados de origem forem alterados após o início da tarefa de migração, o mecanismo de verificação relatará incompatibilidades entre as linhas alteradas e os documentos migrados.
Limitações
A verificação de dados pode adicionar tempo significativo de computação a uma tarefa de migração. O mecanismo de verificação também tem limitações nos níveis de banco de dados, tarefa, coleção e campo.
Bancos de dados suportados
A verificação de dados suporta os seguintes bancos de dados de origem:
PostgreSQL
Oráculo
MySQL
Servidor SQL
Configurações não suportadas
A verificação de dados não pode ser executada quando a propriedade de usuário migrator.job.allow.null.join está definida como true. Valores nulos não correspondem em comparações SQL, então o mecanismo de verificação para e relata um erro no painel Job Update Log.
Coleções ignoradas
O mecanismo de verificação ignora uma coleção nos seguintes casos:
A tabela de origem não tem chave primária ou um ou mais campos de chave primária não são mapeados. O mecanismo de verificação usa valores de chave primária para recuperar linhas em lotes.
A coleção usa um filtro de regra de mapeamento. Para filtrar dados migrados, use um filtro de tabela. Para saber mais, consulte Filtros de regra de mapeamento e Filtros de tabela.
A coleção usa uma condição de array. Para saber mais, consulte array incorporado.
A coleção usa um filtro de tabela com um limite de linha. Sem uma cláusula
ORDER BY, as linhas selecionadas pelo filtro não são determinísticas. Para aplicar um limite de linha que possa ser verificado, adicione uma cláusulaORDER BYe uma cláusulaLIMITà declaração SQL do filtro.
Campos ignorados
O mecanismo de verificação ignora um campo nos seguintes casos:
O campo é um campo calculado. Para saber mais, consulte Campos calculados.
O tipo de coluna de origem do campo é
INTERVAL.O tipo de destino do campo não é
BOOL,DATE,DECIMAL,INTEGER,LONGouSTRING. Por exemplo, o mecanismo de verificação ignoraObjectIdcampos.