O Data Transmission Service (DTS) migra dados de um cluster do PolarDB for MySQL para um banco de dados Doris autogerenciado, permitindo cargas de trabalho de análise em grande escala no Doris. Este tópico orienta a configuração usando um banco de dados Doris implantado em uma instância ECS como destino.
Para concluir esta migração:
Conceda as permissões necessárias às contas do banco de dados.
Crie uma tarefa do DTS e conecte os bancos de dados de origem e de destino.
Selecione os tipos e os objetos de migração.
Execute uma pré-verificação, compre uma instância do DTS e inicie a migração.
Pré-requisitos
Crie um banco de dados Doris de destino. O espaço de armazenamento disponível desse banco de dados precisa ser maior que o espaço de armazenamento usado pelo cluster do PolarDB for MySQL de origem.
Para obter mais informações sobre as versões compatíveis dos bancos de dados de origem e de destino, consulte Overview of migration solutions .
Permissões necessárias para as contas do banco de dados
As permissões necessárias variam de acordo com os tipos de migração selecionados.
|
Banco de dados |
Migração de schema |
Migração de dados completa |
Migração de dados incremental |
|
Cluster do PolarDB for MySQL de origem |
SELECT |
SELECT |
Permissões de leitura e gravação |
|
Banco de dados Doris de destino |
Usage_priv, Select_priv, Load_priv, Alter_priv, Create_priv, Drop_priv |
(igual) |
(igual) |
Para criar e autorizar contas de banco de dados:
Para um cluster do PolarDB for MySQL, consulte Crie e gerencie uma conta de banco de dados.
Para um banco de dados Doris, consulte Authentication and Authorization.
Faturamento
|
Tipo de migração |
Taxas de configuração do link |
Custo de transferência de dados |
|
Migração de schema e migração de dados completa |
Gratuito |
Gratuito, a menos que o Access Method do destino esteja definido como Public IP Address. Consulte Billing overview. |
|
Migração de dados incremental |
Cobrado. Consulte Billing overview. |
— |
Operações SQL compatíveis para migração incremental
|
Tipo de operação |
Instruções SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
ADD COLUMN, MODIFY COLUMN, CHANGE COLUMN, DROP COLUMN, DROP TABLE, TRUNCATE TABLE, RENAME TABLE |
As operações RENAME TABLE podem causar inconsistência de dados. Se você selecionar uma tabela como objeto de migração e a renomear durante o processo, o DTS não migrará os dados dessa tabela para o destino. Para evitar isso, selecione o banco de dados que contém a tabela como objeto de migração e garanta que tanto o banco de dados com o nome original quanto o banco de dados com o novo nome estejam incluídos nos objetos de migração.
Restrições e limites
Revise as seguintes restrições antes de configurar sua tarefa de migração.
Limites do banco de dados de origem
Largura de banda de saída: o servidor que hospeda o banco de dados de origem deve ter largura de banda de saída suficiente. A largura de banda insuficiente reduz a velocidade da migração.
-
Requisitos de tabela:
Tabelas com chaves primárias ou restrições UNIQUE: garanta que os campos da tabela sejam únicos para evitar dados duplicados no destino.
Tabelas sem chaves primárias ou restrições UNIQUE: ao configurar a tarefa, selecione Schema Migration em Migration Types e, em seguida, defina Engine como duplicate para essas tabelas na etapa Configurations for Databases, Tables, and Columns. Caso contrário, a tarefa poderá falhar ou poderá haver perda de dados.
Limite de mapeamento de colunas: se você mapear nomes de colunas ou editar por coluna, uma única tarefa migra no máximo 1.000 tabelas. Para ultrapassar esse limite, divida as tabelas em várias tarefas ou migre o banco de dados inteiro sem edições por coluna.
-
Incremental migration only:
Ative o log binário e defina
loose_polar_log_bincomoon. Sem isso, a pré-verificação falha e a tarefa não inicia. Consulte Enable binary logging e Modifique parâmetros. > Note: Ativar o log binário em um cluster do PolarDB for MySQL consome espaço de armazenamento e gera taxas.Retenha os logs binários por pelo menos 3 dias (recomenda-se 7 dias). Um período de retenção menor pode impedir que o DTS leia os logs necessários, o que pode causar inconsistência ou perda de dados — problemas não cobertos pelo Acordo de Nível de Serviço (SLA) do DTS. Consulte Modifique o período de retenção.
-
Operações a serem evitadas durante a migração:
Não execute operações DDL que alterem o schema do banco de dados ou da tabela durante a migração de schema ou a migração de dados completa. Isso causa a falha da tarefa.
Se você executar apenas a migração de dados completa (sem a incremental), não grave novos dados na origem. Para manter a consistência em tempo real, selecione a migração de schema, a migração de dados completa e a migração de dados incremental juntas.
O DTS não migra as alterações de dados de operações não registradas em logs binários — como recuperação de backup físico ou operações em cascata. > Note: Se isso ocorrer, execute uma migração de dados completa novamente quando for viável para o seu negócio.
Outros limites
Nós somente leitura: o DTS não oferece suporte à migração de nós somente leitura do cluster do PolarDB for MySQL de origem.
Tabelas externas do OSS: o DTS não oferece suporte à migração de tabelas externas do OSS da origem.
Failover primário/secundário: o DTS não oferece suporte ao failover primário/secundário do banco de dados de origem durante a migração completa. Se ocorrer um failover, reconfigure a tarefa imediatamente.
-
Modelos de tabela de destino: o DTS migra dados apenas para tabelas que usam o modelo Unique Key ou Duplicate Key no Doris.
Modelo Duplicate Key: dados duplicados podem aparecer se ocorrer uma nova tentativa ou reinicialização, ou se houver duas ou mais operações DML na mesma linha após o início da tarefa. Deduplique os dados usando as colunas adicionais (
_is_deleted,_version,_record_id). O DTS converte instruções UPDATE e DELETE em instruções INSERT para tabelas do modelo Duplicate Key.
Parâmetro
bucket_count: o único parâmetro configurável na caixa Selected Objects. Deve ser um número inteiro positivo. Padrão: auto.Criação de cluster: não crie clusters no banco de dados Doris de destino durante a migração. Se isso causar uma falha, reinicie a instância de migração para retomar.
-
Requisitos de nome de objeto:
O Doris aceita apenas nomes de bancos de dados e tabelas que começam com uma letra. Use o recurso de mapeamento de nomes de objetos para renomear objetos que não atendam a esse requisito.
Se o nome de um banco de dados, tabela ou coluna contiver caracteres chineses, use o recurso de mapeamento de nomes de objetos para renomeá-lo (por exemplo, para um equivalente em inglês). Caso contrário, a tarefa poderá falhar.
Restrições de DDL: o DTS não oferece suporte a operações DDL que modificam várias colunas simultaneamente ou que modificam a mesma tabela em sucessão.
Nós de backend (BE): não adicione nós BE ao banco de dados Doris de destino durante a migração. Se isso causar uma falha, reinicie a instância de migração para retomar.
Mesclagem de várias tabelas: ao migrar dados de várias tabelas de origem para uma única tabela de destino, todos os schemas das tabelas de origem devem ser consistentes. Schemas inconsistentes podem causar inconsistência de dados ou falha na tarefa.
Comprimento VARCHAR: no PolarDB for MySQL,
VARCHAR(M)especifica o comprimento de caracteres. No Doris,VARCHAR(N)especifica o comprimento em bytes. Se você não usar a migração de schema do DTS, defina o comprimento do campo VARCHAR no Doris como quatro vezes o comprimento do MySQL.-
Ferramentas de DDL online:
O DTS oferece suporte a alterações de DDL online feitas com DMS ou gh-ost. O DTS migra apenas as instruções DDL originais, não os dados de tabelas temporárias. No entanto, a tabela de destino pode sofrer bloqueio durante esse processo.
O DTS não oferece suporte a alterações de DDL online feitas com ferramentas como pt-online-schema-change na origem. Tais alterações na origem podem causar perda de dados ou falha na tarefa.
Impacto no desempenho: durante a migração completa, o DTS lê da origem e grava no destino, aumentando a carga do servidor de banco de dados. Execute a migração durante horários de menor carga, quando a carga da CPU estiver abaixo de 30%.
Fragmentação de tablespace: operações INSERT simultâneas durante a migração completa causam fragmentação de tabela no destino. Após a migração completa, o tablespace usado no destino será maior do que na origem.
Gravações simultâneas no destino: a gravação de dados de outras origens no destino durante a migração pode causar inconsistência de dados.
Tabela de heartbeat: o DTS executa periodicamente
CREATE DATABASE IF NOT EXISTS \test\`` na origem para avançar o offset do log binário.-
Latência de migração incremental: o DTS usa uma política de sincronização em lote para reduzir a carga no destino. Por padrão, o DTS grava em um único objeto no máximo a cada 5 segundos, resultando em uma latência de sincronização típica de até 10 segundos. Para reduzir a latência, ajuste o parâmetro
selectdb.reservoir.timeout.millisecondsno console. Intervalo válido: 1.000 a 10.000 milissegundos.Um valor menor aumenta a frequência de gravação, o que pode aumentar a carga e o tempo de resposta (RT) do destino e, por sua vez, aumentar a latência de sincronização. Ajuste com base na carga do destino.
Recuperação de instância: se uma instância do DTS falhar, o suporte tentará a recuperação em até 8 horas. Durante a recuperação, o DTS pode reiniciar a instância ou ajustar seus parâmetros (apenas parâmetros da instância do DTS, não parâmetros do banco de dados). Consulte Modifique os parâmetros da instância para ver os parâmetros que o DTS pode modificar.
Não há suporte para a migração de dados do tipo VECTOR.
Migrar dados do PolarDB for MySQL para o Doris
Etapa 1: Abrir a página Data Migration
Acesse a página Data Migration usando um dos seguintes métodos e selecione a região onde a instância de migração reside.
Console do DTS
Faça login no console do DTS.console do DTS
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo, selecione a região onde a instância de migração de dados reside.
Console do DMS
Nota
As etapas reais podem variar com base no modo e no layout do console do DMS. Consulte Simple mode e Customize the layout and style of the DMS console.
Faça login no console do DMS.console do DMS
Na barra de navegação superior, passe o ponteiro sobre Data + AI > DTS (DTS) > Data Migration.
Na lista suspensa à direita de Data Migration Tasks, selecione a região onde a instância de migração de dados reside.
Etapa 2: Configurar os bancos de dados de origem e de destino
Clique em Create Task.
-
Configure os parâmetros do banco de dados de origem e de destino descritos na tabela a seguir.
Categoria
Parâmetro
Descrição
N/D
Task Name
O nome da tarefa do DTS. O DTS gera um nome automaticamente. Especifique um nome descritivo que facilite a identificação da tarefa. O nome não precisa ser exclusivo.
Source Database
Select Existing Connection
Se a instância estiver registrada no DTS, selecione-a na lista suspensa. O DTS preenche automaticamente os parâmetros abaixo. Se não estiver registrada, configure os parâmetros manualmente.
Database Type
Selecione PolarDB for MySQL.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região onde o cluster do PolarDB for MySQL de origem reside.
Replicate Data Across Alibaba Cloud Accounts
Selecione No para usar uma instância na conta atual do Alibaba Cloud.
PolarDB Cluster ID
Selecione o ID do cluster do PolarDB for MySQL de origem.
Database Account
Insira a conta do banco de dados do cluster de origem. Consulte Permissions required for database accounts.
Database Password
Insira a senha da conta do banco de dados.
Encryption
Selecione um método de conexão. Para criptografia SSL, consulte Set SSL encryption.
Destination Database
Select Existing Connection
Se a instância estiver registrada no DTS, selecione-a na lista suspensa. O DTS preenche automaticamente os parâmetros abaixo. Se não estiver registrada, configure os parâmetros manualmente.
Database Type
Selecione Doris.
Access Method
Selecione Self-managed Database on ECS. Para outros tipos de conexão, consulte Preparations.
Instance Region
Selecione a região onde o banco de dados Doris de destino reside.
ECS Instance ID
Selecione o ID da instância ECS onde o banco de dados Doris está implantado. Se o Doris estiver implantado em várias instâncias ECS (por exemplo, nós BE ou Frontend (FE) em instâncias separadas), adicione os blocos CIDR dos servidores DTS às regras de segurança de cada instância ECS.
Port Number
Insira a porta de serviço do banco de dados Doris de destino. Padrão: 9030.
Database Account
Insira a conta do banco de dados Doris de destino. Consulte Permissions required for database accounts.
Database Password
Insira a senha da conta do banco de dados.
-
Clique em Test Connectivity and Proceed e, em seguida, clique em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers.
Garanta que os blocos CIDR dos servidores DTS estejam adicionados às configurações de segurança dos bancos de dados de origem e de destino. Consulte Add DTS server IP addresses to a whitelist .
Etapa 3: Configurar 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 de acordo com seus requisitos:
Apenas migração completa: selecione Schema Migration e Full Data Migration.
Migração completa com sincronização contínua: selecione Schema Migration, Full Data Migration e Incremental Data Migration.
ImportanteApós a migração, os tipos de dados do PolarDB for MySQL são convertidos para os tipos do Doris. Se você pular o Schema Migration, crie tabelas de destino usando o modelo Unique Key ou Duplicate Key antes da migração. Consulte Data type mappings, Additional column information e Unique Key Model.
Se você não selecionar Incremental Data Migration, não grave dados na origem durante a migração.
Processing Mode of Conflicting Tables
Precheck and Report Errors: o DTS verifica se há tabelas com o mesmo nome no destino. Se existirem conflitos, a pré-verificação falha e a tarefa não inicia. Para resolver conflitos sem excluir a tabela de destino, use o mapeamento de nomes de objetos para renomear o objeto. Consulte Map object names.
Ignore Errors and Proceed: o DTS ignora a verificação de conflito de nomes.
AvisoIsso pode causar inconsistência de dados. Se os schemas corresponderem, os registros de origem substituem os registros de destino com a mesma chave primária. Se os schemas forem diferentes, pode ocorrer migração parcial ou falha.
Capitalization of object names in destination instance
Controla a capitalização dos nomes de bancos de dados, tabelas e colunas no destino. Padrão: DTS default policy. Consulte Especifique a capitalização dos nomes de objetos na instância de destino.
Source Objects
Selecione um ou mais objetos em Source Objects e clique no ícone de seta para adicioná-los a Selected Objects. Selecione bancos de dados ou tabelas como objetos de migração.
Selected Objects
Para renomear um objeto de migração no destino, clique com o botão direito no objeto. Consulte Map object names.
Para definir a contagem de buckets (
bucket_count) para uma tabela: clique com o botão direito na tabela, defina Enable Parameter Settings como Yesalert notification settings, insira o valor e clique em OK. Disponível apenas quando Schema Migration estiver selecionado.Para selecionar operações SQL incrementais no nível do banco de dados ou da tabela, clique com o botão direito no objeto e selecione as operações SQL.
Para filtrar linhas usando condições WHERE, clique com o botão direito na tabela e configure as condições. Consulte Defina condições de filtro.
Se você usar o mapeamento de nomes de objetos, outros objetos que dependem do objeto mapeado podem apresentar falha na migração.
-
Clique em Next: Advanced Settings e configure os seguintes parâmetros.
Parâmetro
Descrição
Dedicated cluster for task scheduling
O DTS agenda tarefas para o cluster compartilhado por padrão. Para maior estabilidade, compre um cluster dedicado. Consulte What is a DTS dedicated cluster.
Retry time for failed connections
O intervalo de tempo em que o DTS tenta reconectar quando a origem ou o destino fica inacessível após o início da tarefa. Valores válidos: 10 a 1.440 minutos. Padrão: 720 minutos. Defina um valor maior que 30. Se o DTS reconectar dentro dessa janela, ele retoma a tarefa; caso contrário, a tarefa falha.<br>
NotaSe várias tarefas compartilharem a mesma origem ou destino, o valor especificado mais recentemente tem precedência. O DTS cobra pela instância durante as novas tentativas.
Retry time for other issues
O intervalo de tempo em que o DTS repete operações DDL ou DML com falha após o início da tarefa. Valores válidos: 1 a 1.440 minutos. Padrão: 10 minutos. Defina um valor maior que 10.
ImportanteEste valor deve ser menor que Retry time for failed connections.
Enable throttling for full data migration
Limita as operações de leitura e gravação durante a migração completa para reduzir a carga do servidor. 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 as operações 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.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
Controla se o DTS grava operações SQL em tabelas de heartbeat na origem enquanto a instância está em execução.
Yes: não grava operações de tabela de heartbeat. Pode ocorrer latência na instância do DTS.
No: grava operações de tabela de heartbeat. Isso pode afetar recursos como backup físico e clonagem do banco de dados de origem.
Environment tag
(Opcional) Selecione uma tag para identificar a instância.
Configure ETL
Define se o recurso de extração, transformação e carga (ETL) será configurado. Consulte What is ETL?
Yes: ative o ETL e insira instruções de processamento no editor de código. Consulte Configure ETL in a data migration or data synchronization task.
No: pule a configuração do ETL.
Monitoring and alerting
Configura alertas para a tarefa. Se a tarefa falhar ou a latência de migração exceder o limiar, os contatos de alerta recebem notificações.
No: sem alertas.
Yes: configure o limiar de alerta e as configurações de notificação. Consulte Configure monitoring and alerting when you create a DTS task.
-
(Opcional) Clique em Next: Configure Database and Table Fields para definir a Primary Key Column, a Distribution Key e o Engine para as tabelas de destino.
- Esta etapa está disponível apenas se você selecionou Schema Migration na etapa anterior. Defina Definition Status como All e visualize e modifique todas as tabelas. - Para Primary Key Column , selecione uma ou mais colunas para formar uma chave primária composta. Pelo menos uma Primary Key Column também deve atuar como Distribution Key . - Para tabelas sem chaves primárias ou restrições UNIQUE, defina Engine como duplicate . Caso contrário, a migração poderá falhar ou poderá haver perda de dados.
Etapa 4: Executar uma pré-verificação e iniciar a migração
-
Clique em Next: Save Task Settings and Precheck e salve as configurações da tarefa.
- Para visualizar os parâmetros da API para esta configuração de tarefa, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters . - O DTS executa uma pré-verificação antes de iniciar a tarefa. A tarefa só inicia após passar na pré-verificação. - Se a pré-verificação falhar, clique em View Details ao lado de cada item com falha, corrija os problemas e execute a pré-verificação novamente. - Se um alerta for acionado durante a pré-verificação: para alertas não ignoráveis, corrija o problema e execute a pré-verificação novamente. Para alertas ignoráveis, clique em Confirm Alert Details > Ignore > OK e execute a pré-verificação novamente. Ignorar alertas pode causar inconsistência de dados ou expor seu negócio a riscos.
Depois que a Success Rate atingir 100%, clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure os seguintes parâmetros.
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 What is Resource Management?
Instance Class
A classe da instância determina a velocidade da migração. Selecione uma classe de acordo com seus requisitos. Consulte Instance classes of data migration instances.
Leia e aceite os Data Transmission Service (Pay-as-you-go) Service Terms e clique em Buy and Start. Na mensagem de confirmação, confirme e clique em OK.
Acompanhe o progresso na página Data Migration e atualize a página para ver o status.
Se a tarefa não puder migrar dados incrementais, ela é interrompida automaticamente. A coluna Status mostra Completed .
Se a tarefa migrar dados incrementais, ela executa continuamente e não é interrompida automaticamente. A coluna Status mostra Running .
Mapeamentos de tipos de dados
Quando o DTS migra dados do PolarDB for MySQL para o Doris, ocorrem as seguintes conversões de tipo.
Categoria | Tipo do PolarDB for MySQL | Tipo do Doris | Notas |
Inteiro | TINYINT | TINYINT | |
TINYINT UNSIGNED | SMALLINT | Tipos sem sinal são promovidos para o próximo tipo com sinal para evitar estouro. | |
SMALLINT | SMALLINT | ||
SMALLINT UNSIGNED | INT | ||
MEDIUMINT | INT | ||
MEDIUMINT UNSIGNED | BIGINT | ||
INT | INT | ||
INT UNSIGNED | BIGINT | ||
BIGINT | BIGINT | ||
BIGINT UNSIGNED | LARGEINT | ||
BIT(M) | INT | ||
Decimal | DECIMAL | DECIMAL | Não há suporte para ZEROFILL. |
NUMERIC | DECIMAL | ||
FLOAT | FLOAT | ||
DOUBLE | DOUBLE | ||
BOOL / BOOLEAN | BOOLEAN | ||
Data e hora | DATE | DATEV2 | |
DATETIME[(fsp)] | DATETIMEV2 | ||
TIMESTAMP[(fsp)] | DATETIMEV2 | ||
TIME[(fsp)] | VARCHAR | O Doris não possui um tipo TIME nativo. | |
YEAR[(4)] | INT | ||
String | CHAR / VARCHAR | VARCHAR | Importante Para evitar perda de dados, o DTS converte CHAR e VARCHAR(n) para VARCHAR(4×n). Se nenhum comprimento for especificado, o padrão é VARCHAR(65533). O DTS converte dados com mais de 65.533 caracteres para STRING. |
BINARY / VARBINARY | STRING | ||
TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT | STRING | ||
TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB | STRING | ||
ENUM | STRING | ||
SET | STRING | ||
JSON | STRING |
Informações adicionais de colunas
Para tabelas que usam o modelo Duplicate Key, o DTS adiciona automaticamente as seguintes colunas às tabelas de destino. Use essas colunas para deduplicar dados.
|
Nome da coluna |
Tipo de dados |
Valor padrão |
Descrição |
|
|
INT |
0 |
Indica se a linha foi excluída. INSERT e UPDATE definem isso como 0; DELETE define isso como 1. |
|
|
BIGINT |
0 |
Para migração de dados completa: 0. Para migração de dados incremental: o timestamp em segundos do log binário de origem. |
|
|
BIGINT |
0 |
Para migração de dados completa: 0. Para migração de dados incremental: o ID de registro exclusivo e de incremento automático da entrada de log incremental. |