Use o Data Transmission Service (DTS) para transmitir alterações incrementais de uma instância ApsaraDB RDS for MySQL para um projeto DataHub em tempo real. Com a sincronização em execução, analise os dados com o Alibaba Cloud Realtime Compute for Apache Flink ou o StreamCompute.
Pré-requisitos
Antes de começar, verifique se você tem:
Um projeto DataHub na região China (Hangzhou), China (Shanghai), China (Beijing) ou China (Shenzhen). Para criar um projeto, consulte Create a project.
Tabelas para sincronizar com restrições PRIMARY KEY ou UNIQUE.
Faturamento
|
Tipo de sincronização |
Taxa |
|
Sincronização de esquema e sincronização completa de dados |
Gratuita |
|
Sincronização incremental de dados |
Paga. Para mais informações, consulte Billing overview. |
Limitações
Sem dados históricos (apenas CDC): Não há suporte para sincronização inicial completa de dados. O DTS sincroniza apenas as alterações ocorridas após o início da tarefa.
Apenas tabelas: Selecione somente tabelas como objetos de sincronização.
Evite DDL durante a sincronização: Operações DDL em tabelas sincronizadas enquanto a tarefa está em execução podem causar falha na sincronização.
Operações SQL compatíveis com sincronização
|
Tipo de operação |
Instrução SQL |
|
DML |
INSERT, UPDATE e DELETE |
|
DDL |
ADD COLUMN |
Configure a sincronização de dados
Etapa 1: Adquirir uma instância de sincronização de dados
Adquira uma instância de sincronização de dados. Para mais informações, consulte Purchase a DTS instance.
Na página de compra, defina Source Instance como MySQL , Destination Instance como DataHub e Synchronization Topology como One-way Synchronization .
Etapa 2: Configure a tarefa
-
Faça login no console do DTS.
Caso seja redirecionado para o console do Data Management (DMS), clique em no ícone
localizado na
para acessar a versão anterior do console do DTS. No painel de navegação à esquerda, clique em Data Synchronization.
Na parte superior da página Synchronization Tasks, selecione a região onde a instância de destino está localizada.
Localize a instância de sincronização de dados e clique em Configure Task na coluna Actions.
-
Configure as instâncias source e de destino.
Seção
Parâmetro
Descrição
N/A
Nome da tarefa de sincronização
Nome gerado automaticamente pelo DTS. Especifique um nome descritivo para facilitar a identificação da tarefa. O nome não precisa ser único.
Detalhes da instância source
Tipo de instância
Selecione RDS Instance.
ImportantePara um banco de dados MySQL autogerenciado, prepare primeiro o ambiente necessário. Consulte Preparation overview.
Região da instância
Região source selecionada na página de compra. Somente leitura.
ID da instância
O ID da instância ApsaraDB RDS source.
Conta do banco de dados
A conta do banco de dados source.
ImportanteEste parâmetro não é necessário para MySQL 5.5 ou MySQL 5.6.
Senha do banco de dados
A senha da conta.
ImportanteEste parâmetro não é necessário para MySQL 5.5 ou MySQL 5.6.
Criptografia
Selecione Non-encrypted ou SSL-encrypted. Se escolher SSL-encrypted, ative a criptografia SSL na instância RDS antes de configurar esta tarefa. Consulte Configure the SSL encryption feature.
ImportanteEste parâmetro está disponível apenas na China continental e em China (Hong Kong).
Detalhes da instância de destino
Tipo de instância
DataHub. Somente leitura.
Região da instância
Região de destino selecionada na página de compra. Somente leitura.
Projeto
O nome do projeto DataHub de destino.
-
Clique em Set Whitelist and Next no canto inferior direito. O DTS adiciona automaticamente seus blocos CIDR de servidor à lista de permissões de endereços IP de instâncias de banco de dados da Alibaba Cloud (como ApsaraDB RDS for MySQL) ou às regras de grupo de segurança de instâncias Elastic Compute Service (ECS) que hospedam o banco de dados. Se o banco de dados autogerenciado estiver hospedado em várias instâncias ECS, adicione manualmente os blocos CIDR dos servidores DTS às regras de grupo de segurança de cada instância ECS. Para bancos de dados autogerenciados em um data center ou hospedados por um provedor de cloud terceirizado, adicione manualmente os blocos CIDR do servidor DTS. Consulte Add the CIDR blocks of DTS servers.
AvisoAdicionar blocos CIDR do DTS a uma lista de permissões ou grupo de segurança pode introduzir riscos de segurança. Adote medidas preventivas, como fortalecer a segurança de senhas, limitar portas expostas, auditar chamadas de API e revisar regularmente as regras da lista de permissões. Para maior segurança, conecte o banco de dados ao DTS usando Express Connect, VPN Gateway ou Smart Access Gateway.
-
Configure a política e os objetos de sincronização.
Parâmetro
Descrição
Sincronização inicial
Selecione Initial Schema Synchronization. O DTS sincroniza os esquemas dos objetos selecionados para o projeto DataHub de destino.
Objetos a sincronizar
Na seção Available, selecione as tabelas e clique em
para movê-las para a seção Selected. Para renomear objetos sincronizados no destino, use o recurso de mapeamento de nomes de objetos. Consulte Rename an object to be synchronized.Ativar novas regras de nomenclatura para colunas adicionais
Escolha Yes ou No. Antes de configurar este parâmetro, verifique se os nomes das colunas adicionais entram em conflito com colunas existentes no tópico de destino. Caso contrário, a tarefa de sincronização de dados pode falhar ou ocorrer perda de dados. Consulte Naming rules for additional columns.
Renomear bancos de dados e tabelas
Use o recurso de mapeamento de nomes de objetos para renomear os objetos sincronizados no destino. Consulte Object name mapping.
Replicar tabelas temporárias quando o DMS executa operações DDL
Controla se o DTS sincroniza tabelas temporárias geradas por operações DDL online no DMS. Yes: O DTS sincroniza tabelas temporárias. Grandes operações DDL online podem aumentar a latência da sincronização. No: O DTS ignora tabelas temporárias e sincroniza apenas o DDL original da source. As tabelas de destino podem ser bloqueadas.
Tempo de nova tentativa para conexões com falha
Padrão: 720 minutos (12 horas). Se o DTS reconectar dentro desse período, a sincronização será retomada. Caso contrário, a tarefa falhará. Haverá cobrança do DTS durante os períodos de nova tentativa. Defina este valor com base nas necessidades do seu negócio e libere a instância se as instâncias source e de destino forem liberadas.
(Opcional) Na seção Selected, passe o mouse sobre o nome de uma tabela e clique em Edit para configurar uma chave de shard para particionamento da tabela.
-
Clique em Precheck no canto inferior direito.
O DTS executa uma verificação prévia antes de iniciar a tarefa. A tarefa só começa após a aprovação nessa verificação. Se algum item falhar, clique em no ícone
ao lado do item com falha para visualizar os detalhes. Corrija o problema e execute a verificação novamente, ou ignore o item com falha e execute novamente caso nenhuma correção seja necessária. Após a exibição da mensagem Precheck Passed, feche a caixa de diálogo Precheck. A tarefa será iniciada automaticamente.
Aguarde a conclusão da sincronização inicial. O status da tarefa mudará para Synchronizing. Verifique o status da tarefa na página Synchronization Tasks.

Esquema do tópico DataHub
Quando o DTS sincroniza dados incrementais para um tópico DataHub, ele adiciona colunas de metadados ao tópico.
Neste exemplo,id,nameeaddresssão campos de dados. Quando as regras de nomenclatura anteriores são utilizadas, o DTS adiciona o prefixodts_a todos os campos, incluindo os campos originais da source. Quando as novas regras de nomenclatura são usadas, o DTS não adiciona prefixo aos campos originais da source.

|
Nome da coluna anterior |
Novo nome da coluna |
Tipo |
Descrição |
|
|
|
String |
ID exclusivo da entrada de log incremental. Incrementa automaticamente para cada nova entrada. Em cenários de recuperação de desastres, o rollback pode causar duplicação de ID. Para operações UPDATE, ambas as entradas de log (pré-atualização e pós-atualização) compartilham o mesmo |
|
|
|
String |
O tipo de operação. Valores válidos: |
|
|
|
String |
O ID do servidor do banco de dados. |
|
|
|
String |
O nome do banco de dados. |
|
|
|
String |
O nome da tabela. |
|
|
|
String |
O timestamp da operação em UTC. Este também é o timestamp do arquivo de log. |
|
|
|
String |
Indica se os valores da linha são valores pré-atualização. Valores válidos: |
|
|
|
String |
Indica se os valores da linha são valores pós-atualização. Valores válidos: |
Valores de flag antes e depois
As colunas dts_before_flag e dts_after_flag indicam se uma linha no tópico representa o estado antes ou depois de uma alteração de dados.
|
Operação |
Entradas de log geradas |
dts_before_flag |
dts_after_flag |
Conteúdo da linha |
|
INSERT |
1 |
|
|
Os valores recém-inseridos. |
|
DELETE |
1 |
|
|
Os valores excluídos. |
|
UPDATE (primeira entrada) |
2 (mesmo |
|
|
Valores pré-atualização. |
|
UPDATE (segunda entrada) |
2 (mesmo |
|
|
Valores pós-atualização. |
Operação INSERT
A entrada de log contém os valores recém-inseridos. dts_before_flag é N e dts_after_flag é Y.
Operação UPDATE
O DTS gera duas entradas de log com os mesmos valores de dts_record_id, dts_operation_flag e dts_utc_timestamp. A primeira entrada captura os valores pré-atualização (dts_before_flag=Y, dts_after_flag=N). A segunda entrada captura os valores pós-atualização (dts_before_flag=N, dts_after_flag=Y).

Operação DELETE
A entrada de log contém os valores excluídos. dts_before_flag é Y e dts_after_flag é N.

Próximos passos
Depois que a tarefa de sincronização estiver em execução, use o Alibaba Cloud Realtime Compute for Apache Flink para analisar os dados no projeto DataHub. Para mais informações, consulte What is Alibaba Cloud Realtime Compute for Apache Flink?