Ao configurar uma tarefa de sincronização ou migração de dados, use o recurso de mapeamento de nomes de objetos do Data Transmission Service (DTS) para definir os nomes de bancos de dados, tabelas e colunas na instância de destino. Esse recurso permite sincronizar ou migrar dados para objetos específicos no destino, ou criar novos objetos com o mesmo esquema da origem, mas com nomes diferentes.
Casos de uso
Os cenários a seguir também se aplicam quando os bancos de dados de origem e de destino residem na mesma instância. Nesse caso, é necessário isolar os dados. Por exemplo, use nomes de bancos de dados ou tabelas distintos para garantir esse isolamento.
|
Cenário |
Descrição |
|
Crie um objeto no banco de dados de destino para receber dados. |
|
|
Especifique os objetos no banco de dados de destino que receberão os dados. Por exemplo, consolide dados de várias tabelas em uma única tabela maior. |
Crie previamente um objeto no banco de dados de destino para receber os dados e garantir a compatibilidade.
|
|
Crie um objeto no banco de dados de destino. |
Este cenário tem suporte apenas para tarefas de migração de dados. Selecione apenas Schema Migration no parâmetro Migration Types. |
Pré-requisitos
A tarefa deve estar na etapa Configure Objects, onde você mapeará bancos de dados, tabelas e colunas. Para saber como acessar a etapa Configure Objects, consulte os documentos de configuração relacionados em Visão geral da solução de sincronização e Visão geral da solução de migração.
Recomendamos selecionar todas as opções em Migration Types ou Synchronization Types. Caso contrário, os resultados da sincronização ou migração podem não atender às suas expectativas.
A página de configuração legada deve estar na etapa Configure Objects and Advanced Settings.
Observações de uso
Não mapeie nomes de objetos após o início da tarefa, pois isso pode causar perda de dados ou falha na execução.
Para instâncias Tair ou Redis, há suporte apenas para mapeamento de nomes de bancos de dados. Especifique um banco de dados de destino entre DB 0 e DB 255 para receber os dados.
Se o tipo de banco de dados de destino for DataHub, não há suporte para mapeamento de nomes de bancos de dados.
Quando o banco de dados de destino for do tipo Kafka e você usar o recurso de mapeamento para alterar o Table Name, os dados serão gravados no tópico especificado. Certifique-se de que o nome do tópico inserido no campo Table Name exista na instância Kafka de destino. Caso contrário, a tarefa falhará.
Ao selecionar bancos de dados inteiros como objetos para sincronização ou migração, há suporte apenas para mapeamento de nomes de bancos de dados.
Para usar o mapeamento de nomes de tabelas ou colunas, a granularidade de seleção dos objetos da tarefa deve ser "collection" para bancos de dados de origem MongoDB, "Redis DB" para bancos de dados de origem Tair/Redis e "table" para os demais tipos de banco de dados.
O uso do mapeamento de nomes de objetos pode causar falhas na sincronização ou migração de outros objetos dependentes do objeto mapeado.
Mapear um único nome de objeto
Mova os objetos da tarefa da área Source Objects para a caixa Selected Objects.
-
Abra a caixa de diálogo de mapeamento do banco de dados ou da tabela.
Clique com o botão direito do mouse no objeto desejado na área Selected Objects.
Passe o mouse sobre o objeto alvo e clique em Edit exibido.
-
Na caixa de diálogo exibida, altere o nome do objeto para a instância de destino.
NotaAo mapear nomes de bancos de dados ou tabelas para determinadas instâncias, também é possível adicionar colunas extras e filtrar instruções SQL (DML e DDL) para tarefas incrementais. Os recursos disponíveis variam conforme o console.
Se forem selecionadas instruções SQL diferentes para o mapeamento de nomes de bancos de dados e de tabelas, as instruções definidas para o mapeamento de tabelas terão precedência.
Também é possível configure condições para filtrar dados da tarefa na caixa de diálogo Edit Table. Para mais informações, consulte Definir condições de filtro.
-
Mapeamento de nomes de bancos de dados
Na caixa de diálogo Edit Schema, defina o nome do banco de dados na instância de destino.
NotaQuando os tipos de banco de dados de origem e de destino forem ambos SQL Server, a caixa de diálogo Edit Database Name será exibida.
-
Mapeamento de nomes de tabelas
Na caixa de diálogo Edit Table, defina o nome da tabela de dados na instância de destino.
NotaSe a instância de destino for Elasticsearch, o único caractere especial com suporte em nomes de índices e tipos é o sublinhado (_).
-
Mapeamento de nomes de colunas
Na caixa de diálogo Edit Table, na área Column, defina o Destination Column Name para a coluna correspondente na instância de destino.
Por exemplo, mapeie a coluna de origem
idparaid_newenameparaname_new.
Clique em OK.
Conclua as etapas restantes de configuração.
Mapear vários nomes de objetos em lote
Mova os objetos da tarefa da caixa Source Objects para a caixa Selected Objects.
Clique em Batch Edit no canto superior direito da área Selected Objects.
-
Na caixa de diálogo Batch Edit, mapeie em lote os nomes de bancos de dados ou tabelas conforme necessário.
Tipo de banco de dados de origem: Tair/Redis
-
Na caixa Select Objects, selecione os objetos que deseja editar.
NotaO tipo de edição em lote assume como padrão Include Only Selected Databases.
Opcional: Na seção Select Editing Type, clique em Object Name.
-
Selecione o escopo da alteração.
Edit Renamed Object Name: aplica a modificação em lote aos nomes de bancos de dados já renomeados.
Edit Original Object Name: gera novos nomes de bancos de dados modificando os nomes originais.
-
Escolha uma regra para a alteração de nome e configure o novo nome.
Adicionar prefixo ou sufixo ao nome: em Select Rule, selecione Add Prefix and Suffix e insira o prefixo e o sufixo.
Renomear em lote: defina Select Rule como Change All Names e insira o novo nome.
Remover uma parte específica de todos os nomes: defina Select Rule como Shorten All Names e insira a palavra-chave a ser removida.
Clique em Apply para adicionar as regras de mapeamento em lote configuradas.
Clique em OK.
Quando o banco de dados de origem é SQL Server
-
Selecione o tipo de edição em lote.
Neste exemplo, selecione Select All Databases and Tables.
Na caixa Select Objects, selecione os objetos que deseja editar.
Opcional: Na seção Select Editing Type, clique em Object Name.
-
Opcional: selecione um tipo de nome de objeto.
NotaA configuração Select Object Type só está disponível se, na página Configure Objects, o item Schema Mapping Mode of Source and Destination Databases estiver definido como Use <Source schema name>.<Source table name> as the destination table name, ou se a página Configure Objects não possuir o item de configuração Schema Mapping Mode of Source and Destination Databases.
Database/Table Name: modifique o mapeamento de nomes apenas para bancos de dados e tabelas nos objetos selecionados.
Schema Name: modifique o mapeamento apenas dos nomes de esquema nos objetos selecionados.
-
Selecione o escopo da alteração.
Edit Renamed Object Name: aplica a modificação em lote aos nomes de objetos já renomeados.
Edit Original Object Name: modifique os nomes dos bancos de dados com base em seus nomes originais.
-
Escolha uma regra para a alteração de nome e configure o novo nome.
Adicionar prefixo ou sufixo ao nome: em Select Rule, selecione Add Prefix and Suffix e insira o prefixo e o sufixo.
Renomear em lote: defina Select Rule como Change All Names e insira o novo nome.
Remover uma parte específica de todos os nomes: defina Select Rule como Shorten All Names e insira a palavra-chave a ser removida.
Clique em Apply para adicionar as regras de mapeamento em lote configuradas.
Clique em OK.
Outros tipos de banco de dados
-
Selecione o tipo de edição em lote.
Neste exemplo, selecione Select All Databases and Tables.
Na caixa Select Objects, selecione os objetos que deseja editar.
-
Opcional: Na seção Select Editing Type, clique em Object Name.
NotaPara certas instâncias, o mapeamento em lote também permite adicionar colunas extras e filtrar instruções SQL (DML e DDL) para tarefas incrementais. Os recursos disponíveis variam conforme o console.
-
Selecione o escopo da alteração.
Edit Renamed Object Name: aplica a modificação em lote aos nomes de bancos de dados, tabelas e colunas previamente renomeados.
Edit Original Object Name: modifique os nomes de bancos de dados, tabelas e colunas em uma operação em lote com base em seus nomes originais.
-
Escolha uma regra para a alteração de nome e configure o novo nome.
Adicionar prefixo ou sufixo ao nome: em Select Rule, selecione Add Prefix and Suffix e insira o prefixo e o sufixo.
Renomear em lote: defina Select Rule como Change All Names e insira o novo nome.
Remover uma parte específica de todos os nomes: defina Select Rule como Shorten All Names e insira a palavra-chave a ser removida.
Clique em Apply para adicionar as regras de mapeamento em lote configuradas.
Clique em OK.
-
Conclua as etapas restantes de configuração.
Sincronizar ou migrar colunas específicas
Em cenários de mesclagem de tabelas, em que dados de várias tabelas são sincronizados ou migrados para uma única tabela de destino, o uso deste recurso pode causar falha na tarefa ou inconsistência de dados.
Mova as tabelas a serem sincronizadas ou migradas da caixa Source Objects para a caixa Selected Objects.
Clique com o botão direito do mouse no objeto alvo na área Selected Objects para abrir a interface de mapeamento de tabelas.
-
Na caixa de diálogo Edit Table, em Columns, desmarque a opção Sync All Columns.
Selecione as colunas a serem sincronizadas, como
id(bigint) ename(varchar(20)) e, se necessário, modifique seus nomes na caixa Destination Column Name. Desmarque as colunas que você não deseja sincronizar ou migrar.
Clique em OK.
Conclua as etapas restantes de configuração.
Perguntas frequentes
-
Como filtrar colunas que não desejo sincronizar ou migrar?
Para usar o mapeamento de nomes de colunas, desmarque Sync All Columns e, em seguida, desmarque a caixa de seleção da coluna correspondente.
-
É possível alterar o tipo de dados de uma coluna usando o mapeamento de nomes de colunas?
Não.
-
Posso modificar uma regra de edição em lote existente?
Não. Clique em
ao lado da regra para removê-la e adicione uma nova. -
Por que minha regra de edição em lote desapareceu?
Isso pode ocorrer porque você não clicou em Apply após configurar as regras de mapeamento em lote, ou porque as regras foram excluídas acidentalmente.