Todos os produtos
Search
Central de documentação

Data Transmission Service:Migrar dados do PolarDB for PostgreSQL para o SelectDB

Última atualização: Jun 27, 2026

Use o Data Transmission Service (DTS) para migrar dados de um cluster PolarDB for PostgreSQL para uma instância SelectDB destinada à análise de grandes volumes de dados.

Escolha uma estratégia de migração

O DTS oferece três tipos de migração que você pode combinar conforme suas necessidades:

Estratégia

Tipos de migração

Quando usar

Tempo de inatividade

Migração completa

Schema Migration + Full Data Migration

Migração única; sem novas gravações de dados durante o processo

Necessário

Migração online

Schema Migration + Full Data Migration + Incremental Data Migration

Migração sem tempo de inatividade; o source continua recebendo gravações

Nenhum

Para a maioria das cargas de trabalho em produção, use a estratégia de migração online. Se optar apenas pela migração completa, interrompa todas as gravações no banco de dados source antes de iniciar. Caso contrário, ocorrerá inconsistência de dados entre o source e o destino.

Pré-requisitos

Antes de começar, verifique se você tem:

Se o cluster PolarDB for PostgreSQL source não oferecer suporte ao recurso de failover de slot de replicação lógica (por exemplo, quando Database Engine estiver definido como PostgreSQL 14 ) e você acionar um failover primário/secundário, a tarefa de migração falhará e não poderá ser recuperada.

Limitações

Banco de dados source

  • As tabelas a serem migradas devem ter uma chave primária ou um índice UNIQUE NOT NULL. Dependendo das suas tabelas:

    • Se todas as tabelas tiverem chave primária ou índice único não nulo: garanta que os campos da tabela sejam únicos. Caso contrário, poderão existir dados duplicados no banco de dados de destino.

    • Se algumas tabelas não tiverem nem chave primária nem índice único não nulo: ao configurar a instância, selecione Schema Migration em Migration Types. Em seguida, na etapa Configurations for Databases, Tables, and Columns, defina Engine como duplicate para essas tabelas. Caso contrário, a instância de migração poderá falhar ou haver perda de dados.

  • Durante a migração de schema e a migração completa de dados, não execute operações DDL que alterem o schema do banco de dados ou da tabela. A tarefa de migração falhará.

  • Na migração incremental de dados, uma única alteração de dados superior a 256 MB causa falha irrecuperável na instância de migração. Reconfigure a instância de migração.

  • Transações de longa duração durante a migração incremental podem causar acúmulo de logs WAL (write-ahead logging) e exaurir o espaço de armazenamento no banco de dados source.

Banco de dados de destino

  • As tabelas na instância SelectDB de destino devem usar o mecanismo Unique ou Duplicate.

  • Os nomes de bancos de dados e tabelas devem começar com uma letra. Use o recurso de mapeamento de nomes de objetos para renomear objetos que não começam com letra ou cujos nomes contenham caracteres chineses.

  • Não adicione nós de backend (BE) à instância SelectDB durante a migração. A tarefa falhará. Reinicie a instância de migração para retomar.

  • Não crie clusters na instância SelectDB de destino durante a migração. A tarefa falhará. Reinicie a instância de migração para retomar.

Comportamento da migração

  • Uma instância de migração pode migrar apenas um banco de dados. Para migrar vários bancos de dados, crie uma instância de migração separada para cada um.

  • O DTS não oferece suporte a tabelas de extensão TimescaleDB ou tabelas com herança entre schemas.

  • O DTS não valida metadados como sequences. Verifique manualmente a validade dos metadados após a migração.

  • Ao migrar tabelas particionadas, inclua tanto a tabela pai quanto todas as partições filhas como objetos de migração. A tabela pai de uma tabela particionada do PostgreSQL não armazena dados diretamente; todos os dados residem nas partições filhas. A ausência de partições filhas causa inconsistência de dados.

  • Em um cenário de mesclagem de várias tabelas (várias tabelas source migradas para uma única tabela de destino), os schemas de todas as tabelas source devem ser idênticos.

  • Não execute operações DDL que modifiquem várias colunas simultaneamente ou modifiquem a mesma tabela em sucessão.

  • O DTS cria as seguintes tabelas temporárias no banco de dados source durante a migração incremental. Não as exclua, pois a exclusão causa falha na tarefa. O DTS as remove automaticamente após a liberação da instância de migração: public.dts_pg_class, public.dts_pg_attribute, public.dts_pg_type, public.dts_pg_enum, public.dts_postgres_heartbeat, public.dts_ddl_command, public.dts_args_session e public.aliyun_dts_instance

Comportamento do mecanismo Unique

Se a tabela de destino usar o mecanismo Unique, todas as chaves únicas na tabela de destino devem existir na tabela source e ser incluídas como objetos de migração. Caso contrário, poderá ocorrer inconsistência de dados.

Comportamento do mecanismo Duplicate

Se a tabela de destino usar o mecanismo Duplicate:

  • O DTS converte instruções UPDATE e DELETE em instruções INSERT.

  • Linhas duplicadas podem aparecer no destino nestes casos: ocorrência de nova tentativa, reinício da instância de migração ou execução de duas ou mais operações DML na mesma linha após o início da migração. Use as colunas adicionais (_is_deleted, _version e _record_id) para identificar e remover duplicatas.

Requisitos para migração incremental de dados

Antes de gravar dados nas tabelas incluídas em uma migração incremental, execute o seguinte comando em cada tabela no banco de dados source:

ALTER TABLE schema.table REPLICA IDENTITY FULL;

Substitua schema e table pelo nome real do schema e da tabela. Execute este comando fora do horário de pico e não bloqueie as tabelas. O bloqueio pode causar deadlock.

Se você ignorar o item de pré-verificação relacionado, o DTS executará este comando automaticamente durante a inicialização da instância. Isso ocorre quando a instância é executada pela primeira vez ou quando a granularidade do objeto de migração está definida como Schema e uma nova tabela é criada ou reconstruída usando o comando RENAME.

Gerenciamento de slots de replicação

O DTS cria um slot de replicação com o prefixo dts_sync_ no banco de dados source para replicar dados incrementais. O slot retém até 15 minutos de logs incrementais.

Quando uma tarefa de migração falha ou a instância de migração é liberada, o DTS tenta limpar o slot de replicação automaticamente. A limpeza manual é necessária nos seguintes casos:

  • A senha da conta do banco de dados source foi alterada durante a migração.

  • O endereço ip do DTS foi removido da lista de permissões durante a migração.

  • Ocorreu um failover primário/secundário. Faça logon no banco de dados secundário para realizar a limpeza.

Slots de replicação não limpos se acumulam e consomem espaço em disco, o que pode tornar o banco de dados source indisponível.

Faturamento

Tipo de migração

Custo de configuração do link

Custo de transferência de dados

Schema migration + full data migration

Gratuito

Gratuito

Incremental data migration

Cobrado. Consulte Visualize o faturamento.

Operações SQL suportadas para migração incremental

Tipo

Operações

DML

INSERT, UPDATE, DELETE

DDL

ADD COLUMN, DROP COLUMN

Migrar dados do PolarDB for PostgreSQL para o SelectDB

Etapa 1: Acesse a página Data Migration

Use um dos seguintes métodos:

Console do DTS

  1. Faça logon no console do DTS

  2. No painel de navegação à esquerda, clique em Data Migration.

  3. No canto superior esquerdo, selecione a região onde a instância de migração reside.

Console do DMS

Nota

A operação real pode variar dependendo do modo e do layout do console do DMS. Para mais informações, consulte Modo simples e Personalizar o layout e o estilo do console do DMS.

  1. Faça logon no console do DMS

  2. Na barra de navegação superior, passe o ponteiro sobre Data + AI > DTS (DTS) > Data Migration.

  3. Na lista suspensa à direita de Data Migration Tasks, selecione a região onde a instância de migração reside.

Etapa 2: Crie uma tarefa

Clique em Create Task para acessar a página de configuração da tarefa.

Etapa 3: Configure bancos de dados source e de destino

Configure os parâmetros descritos na tabela a seguir.

Seção Parâmetro Descrição
Task Name Nome da tarefa do DTS. O DTS gera um nome automaticamente. Especifique um nome descritivo para facilitar a identificação. O nome não precisa ser único.
Source Database Select Existing Connection Se você tiver uma instância de banco de dados registrada no DTS, selecione-a na lista suspensa. O DTS preencherá os parâmetros restantes automaticamente. Consulte Gerenciar conexões de banco de dados. Caso contrário, configure os parâmetros abaixo.
Database Type Selecione PolarDB for PostgreSQL.
Access Method Selecione Alibaba Cloud Instance.
Instance Region Selecione a região onde o cluster PolarDB for PostgreSQL source reside.
Replicate Data Across Alibaba Cloud Accounts Selecione No (este exemplo usa uma instância na conta atual).
Instance ID Selecione o id do cluster PolarDB for PostgreSQL source.
Database Name Insira o nome do banco de dados que contém os objetos a serem migrados.
Database Account Insira a conta do banco de dados. Consulte Pré-requisitos para ver as permissões necessárias.
Database Password Insira a senha da conta do banco de dados.
Destination Database Select Existing Connection Se você tiver uma instância de banco de dados registrada no DTS, selecione-a na lista suspensa. Caso contrário, configure os parâmetros abaixo.
Database Type Selecione SelectDB.
Access Method Selecione Alibaba Cloud Instance.
Instance Region Selecione a região onde a instância SelectDB de destino reside.
Replicate Data Across Alibaba Cloud Accounts Selecione No (este exemplo usa uma instância na conta atual).
Instance ID Selecione o id da instância SelectDB de destino.
Database Account Insira a conta do banco de dados. Consulte Pré-requisitos para ver as permissões necessárias.
Database Password Insira a senha da conta do banco de dados.

Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.

Adicione os endereços ip dos servidores do DTS às configurações de segurança dos bancos de dados source e de destino. O DTS pode adicionar esses endereços ip automaticamente ou você pode adicioná-los manualmente. Consulte Adicionar endereços ip de servidores do DTS a uma lista de permissões .

Etapa 4: Configure objetos de migração

Na página Configure Objects, defina os seguintes parâmetros.

Parâmetro Descrição
Migration Types Selecione os tipos de migração com base na sua estratégia: <br>- Full migration (sem tolerância a tempo de inatividade): Selecione Schema Migration e Full Data Migration. Interrompa todas as gravações no source antes de iniciar. <br>- Online migration (tempo de inatividade zero): Selecione Schema Migration, Full Data Migration e Incremental Data Migration.
Processing Mode of Conflicting Tables - Precheck and Report Errors: O DTS verifica se existem tabelas com o mesmo nome no destino. Se houver duplicatas, a pré-verificação falhará. Para resolver, renomeie a tabela de destino usando o recurso de mapeamento de nomes de objetos. <br>- Ignore Errors and Proceed: O DTS ignora a verificação de nomes duplicados.
Aviso

Isso pode causar inconsistência de dados. Se os schemas coincidirem, os registros do source substituirão os registros de destino com a mesma chave primária. Se os schemas diferirem, a migração poderá falhar ou produzir dados incompletos. Use com cautela.

Capitalization of Object Names in Destination Instance Controla a capitalização dos nomes de bancos de dados, tabelas e colunas no destino. O padrão é DTS default policy. Consulte Especificar a capitalização de nomes de objetos na instância de destino.
Source Objects Selecione os objetos a serem migrados. Clique no ícone 向右小箭头 para movê-los para Selected Objects. A granularidade do objeto de migração pode ser schema, tabela ou coluna.
Selected Objects - Para mapear um objeto para um nome ou destino diferente, clique com o botão direito no objeto e selecione a opção de mapeamento. Consulte Mapear nomes de objetos. <br>- Para remover um objeto, clique nele e depois clique no ícone image. <br>- Para definir o parâmetro bucket_count de uma tabela (disponível quando Schema Migration está selecionado e a granularidade do objeto de migração é tabela): clique com o botão direito na tabela, defina Enable Parameter Settings como Yesconfigurações de notificação de alerta, insira o valor e clique em OK. <br>- Para filtrar linhas por condições SQL, clique com o botão direito em uma tabela e especifique as condições. Consulte Especificar condições de filtro. <br>- Para selecionar quais operações SQL migrar incrementalmente, clique com o botão direito em um objeto e selecione as operações.
Importante
  • Se você não selecionar Schema Migration, crie manualmente as tabelas de destino com o modelo de dados Unique ou Duplicate antes de iniciar a migração. Consulte Mapeamentos de tipos de dados, Colunas adicionais e Modelos de dados.

  • O valor do parâmetro bucket_count deve ser um número inteiro positivo. O valor padrão é auto.

  • Se você usar o mapeamento de nomes de objetos para renomear um objeto, outros objetos dependentes dele poderão falhar na migração.

  • O mapeamento de nomes de objetos aplica-se a bancos de dados, tabelas e colunas. Se um nome contiver caracteres chineses, renomeie-o para um nome apenas ASCII. Caso contrário, a tarefa poderá falhar.

Etapa 5: Configure definições avançadas

Clique em Next: Advanced Settings e configure os seguintes parâmetros.

Parâmetro

Descrição

Dedicated Cluster for Task Scheduling

Por padrão, o DTS usa um cluster compartilhado. Adquira um cluster dedicado para melhorar a estabilidade da tarefa de migração. Consulte O que é um cluster dedicado do DTS.

Retry Time for Failed Connections

Tempo durante o qual o DTS tenta reconectar após uma falha de conexão. Intervalo válido: 10–1.440 minutos. Padrão: 720 minutos. Defina um valor maior que 30. Se o DTS reconectar dentro da janela de tentativas, a tarefa será retomada; caso contrário, ela falhará. Nota: Se várias tarefas compartilharem o mesmo banco de dados source ou de destino, o último tempo de tentativa configurado terá precedência. O DTS cobra pela instância durante as tentativas.

Retry Time for Other Issues

Tempo durante o qual o DTS tenta novamente após falhas que não sejam de conexão (como erros DDL ou DML). Intervalo válido: 1–1.440 minutos. Padrão: 10 minutos. Defina um valor maior que 10. Deve ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Migration

Limita a carga de leitura/gravação nos bancos de dados source e de destino durante a migração completa. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Migration estiver selecionado.

Enable Throttling for Incremental Data Migration

Limita a carga durante a migração incremental. Configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s). Disponível apenas quando Incremental Data Migration estiver selecionado.

Environment Tag

(Opcional) Aplique uma tag de ambiente à instância.

Configure ETL

Ativa o recurso de extração, transformação e carga (ETL). Selecione Yes para inserir instruções de processamento de dados. Consulte Configure ETL em uma tarefa de migração ou sincronização de dados.

Monitoring and Alerting

Configura alertas para falhas de tarefa ou latência acima de um limiar. Selecione Yes para configurar limiares de alerta e definições de notificação. Consulte Configure monitoramento e alertas.

Etapa 6: Configure campos de banco de dados e tabelas (opcional)

Clique em Next: Configure Database and Table Fields para definir a Primary Key Column, Distribution Key e Engine das tabelas de destino.

Esta etapa está disponível apenas quando Schema Migration estiver selecionado. Para visualizar todas as tabelas, defina Definition Status como All .
Primary Key Column pode ser uma chave primária composta. Selecione uma ou mais colunas em Primary Key Column para usar como Distribution Key .
Para tabelas sem chave primária ou restrição UNIQUE, defina Engine como duplicate . Caso contrário, a migração poderá falhar ou haver perda de dados.

Etapa 7: Execute a pré-verificação

Clique em Next: Save Task Settings and Precheck.

Para visualizar os parâmetros da api para configurar esta tarefa, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters antes de prosseguir.

O DTS executa uma pré-verificação antes de iniciar a migração. Se a pré-verificação falhar:

  • Para itens com falha: clique em View Details, analise os resultados, resolva os problemas e clique em Precheck Again.

  • Para itens de alerta: se o alerta puder ser ignorado, clique em Confirm Alert Details > Ignore > OK > Precheck Again. Observe que ignorar alertas pode causar inconsistência de dados.

Etapa 8: Adquirir a instância

  1. Aguarde até que Success Rate atinja 100% e clique em Next: Purchase Instance.

  2. Na página Purchase Instance, configure a classe da instância:

    Seção Parâmetro Descrição
    New Instance Class Resource Group O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte O que é o Resource Management?.
    Instance Class A classe da instância determina a velocidade da migração. Consulte Classes de instâncias de migração de dados.
  3. Leia e marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Clique em Buy and Start e, em seguida, clique em OK na caixa de diálogo de confirmação.

Monitore o progresso na página Data Migration:

  • Apenas migração completa: a tarefa para automaticamente quando concluída. O status mostra Completed.

  • Migração incremental incluída: a tarefa é executada continuamente e nunca para automaticamente. O status mostra Running.

Durante a migração completa de dados, o DTS consome recursos de leitura e gravação nos bancos de dados source e de destino, o que aumenta a carga do banco de dados. Execute a migração fora do horário de pico, quando a carga de cpu em ambos os bancos de dados estiver abaixo de 30%.

Mapeamentos de tipos de dados

Os tipos de dados são convertidos ao migrar do PolarDB for PostgreSQL para o SelectDB. Revise os mapeamentos antes da migração, especialmente para tipos com possíveis diferenças de precisão ou semântica.

Categoria Tipo PolarDB for PostgreSQL Tipo SelectDB
Numérico SMALLINT SMALLINT
INTEGER INT
BIGINT BIGINT
DECIMAL DECIMAL
NUMERIC DECIMAL
REAL DOUBLE
DOUBLE DOUBLE
SMALLSERIAL SMALLINT
SERIAL INT
BIGSERIAL BIGINT
Monetário MONEY STRING
Caractere CHAR(n), VARCHAR(n) VARCHAR
TEXT STRING
Binário BYTEA STRING
Data e hora TIMESTAMP [(P)] [WITHOUT TIME ZONE] DATETIMEV2
TIMESTAMP [(P)] WITH TIME ZONE DATETIMEV2
DATE DATEV2
TIME [(P)] [WITHOUT TIME ZONE] VARCHAR(50)
TIME [(P)] WITH TIME ZONE VARCHAR(50)
INTERVAL [FIELDS] [(P)] STRING
Booleano BOOLEAN BOOLEAN
Geométrico POINT, LINE, LSEG, BOX, PATH, POLYGON, CIRCLE STRING
Endereço de rede CIDR, INET, MACADDR, MACADDR8 STRING
Busca de texto TSVECTOR STRING
XML XML STRING
JSON JSON JSON

Notas importantes sobre conversão:

  • CHAR(n) e VARCHAR(n): Convertidos para VARCHAR(4*n) para evitar perda de dados devido a caracteres multibyte. Se nenhum comprimento for especificado, o SelectDB usa o padrão VARCHAR(65533). Se o comprimento resultante exceder 65.533, os dados serão convertidos para STRING.

Colunas adicionais

O DTS adiciona automaticamente as seguintes colunas às tabelas de destino que usam o mecanismo Duplicate. Essas colunas permitem identificar e remover registros duplicados.

Coluna

Tipo de dado

Padrão

Valor

_is_deleted

Int

0

INSERT ou UPDATE: 0. DELETE: 1.

_version

Bigint

0

Migração completa: 0. Migração incremental: timestamp em segundos do log binário source.

_record_id

Bigint

0

Migração completa: 0. Migração incremental: o id do registro da entrada de log incremental (único e autoincrementável).

Notas de uso

Latência da migração incremental

O DTS usa uma política de sincronização em lote para reduzir a carga no destino. Por padrão, cada objeto de sincronização é gravado no máximo uma vez a cada 5 segundos, resultando em uma latência de sincronização normal geralmente dentro de 10 segundos.

Para reduzir a latência, ajuste o parâmetro selectdb.reservoir.timeout.milliseconds da instância de migração no console do DTS. O intervalo válido é de 1.000 a 10.000 milissegundos.

Um tempo de agrupamento menor aumenta a frequência de gravação, o que eleva a carga e o tempo de resposta no destino. Isso, por sua vez, pode aumentar a latência de sincronização. Ajuste com base na carga real do destino.

Recuperação de falha da instância

Se uma instância de migração falhar, o suporte do DTS tentará a recuperação dentro de 8 horas. Durante a recuperação, a instância pode ser reiniciada ou seus parâmetros ajustados (apenas os parâmetros da instância do DTS são modificados; os parâmetros do banco de dados não são alterados). Para obter a lista de parâmetros que podem ser modificados, consulte Modifique parâmetros da instância.

Migração fora de pico

Execute a migração fora do horário de pico, quando a carga de cpu nos bancos de dados source e de destino estiver abaixo de 30%. Isso reduz o risco de degradação de desempenho nas cargas de trabalho de produção.