Criar e manter pipelines ETL para mover dados do PolarDB for MySQL para o AnalyticDB for MySQL gera sobrecarga operacional e atrasa as análises. O Zero-ETL elimina esse problema ao replicar continuamente os dados do PolarDB for MySQL para o AnalyticDB for MySQL, sem código de pipeline, ferramentas de terceiros ou custos adicionais.
Conceitos principais
|
Termo |
Definição |
|
Tarefa Zero-ETL |
Trabalho de sincronização gerenciado que replica continuamente alterações DML e DDL de um cluster de origem do PolarDB for MySQL para um cluster de destino do AnalyticDB for MySQL. |
|
Cluster de origem |
Cluster do PolarDB for MySQL onde os dados transacionais são gerados. |
|
Cluster de destino |
Cluster do AnalyticDB for MySQL onde os dados replicados ficam disponíveis para análise. |
|
ACU |
Unidade de computação do AnalyticDB. Recurso utilizado para calcular quantas tarefas zero-ETL um cluster pode executar simultaneamente. |
Origens compatíveis
O Zero-ETL oferece suporte aos seguintes caminhos de sincronização de dados:
Do PolarDB for MySQL para o AnalyticDB for MySQL (este guia)
Do ApsaraDB RDS for MySQL para o AnalyticDB for MySQL. Para mais detalhes, consulte Usar zero-ETL para sincronizar dados.
Benefícios
Sem configuração de pipeline: Selecione os clusters de origem e de destino para iniciar a sincronização automaticamente. Não é necessário código ETL nem ferramentas de terceiros.
Sem custo extra: As tarefas Zero-ETL são gratuitas. A análise dos dados sincronizados no AnalyticDB for MySQL não gera cobranças adicionais.
Agregação de múltiplas origens: Sincronize dados de vários clusters do PolarDB for MySQL em um único cluster do AnalyticDB for MySQL para análises unificadas.
Regiões compatíveis
O Zero-ETL está disponível nas seguintes regiões: China (Pequim), China (Hangzhou), China (Xangai), China (Shenzhen), China (Zhangjiakou), China (Qingdao), China (Guangzhou), China (Hong Kong), Singapura, EUA (Vale do Silício) e EUA (Virgínia).
Limites de tarefas
O número máximo de tarefas zero-ETL por cluster do AnalyticDB for MySQL depende do total de recursos reservados do cluster:
|
Total de ACUs reservadas |
Máximo de tarefas zero-ETL |
|
Menos de 24 ACUs |
1 |
|
24 ACUs ou mais |
|
Exemplo: Um cluster com 48 ACUs resulta em 3 + 3 × [(48 − 24) ÷ 50] = 3 + 3 × 0 = 3 tarefas.
A contagem de ACUs varia conforme a edição do cluster:
Data Lakehouse Edition: ACUs = ACUs de recurso de computação reservado + ACUs de recurso de armazenamento reservado.
Data Warehouse Edition (modo elástico): ACUs = núcleos de recurso de computação + núcleos de recurso de I/O elástico.
Data Warehouse Edition (modo reservado): ACUs = núcleos de recurso de computação.
Caso o cluster atinja o limite de tarefas, exclua as tarefas zero-ETL não utilizadas no console do AnalyticDB for MySQL ou crie tarefas adicionais diretamente no console do Data Transmission Service (DTS).
Pré-requisitos
Antes de começar, verifique se você possui:
Um cluster do AnalyticDB for MySQL e um cluster do PolarDB for MySQL na mesma região. Para criar um cluster do PolarDB for MySQL, consulte Adquirir clusters
-
Contas de banco de dados para ambos os clusters:
AnalyticDB for MySQL: Criar uma conta de banco de dados
PolarDB for MySQL: Criar e gerenciar uma conta de banco de dados
Log binário ativado para o cluster do PolarDB for MySQL. Consulte Ativar log binário
Configurar permissões
Criar uma função vinculada a serviço para o AnalyticDB for MySQL
Faça login no console do Resource Access Management (RAM). No painel de navegação à esquerda, escolha Create Zero-ETL Task > Roles.
-
Verifique se existe uma função vinculada a serviço chamada AliyunServiceRoleForAnalyticDBForMySQL. Caso não exista, crie-a:
Clique em Create Role.
Na etapa Select role type, selecione Alibaba Cloud Service e clique em Next.
Na etapa Configure role, defina Role type como Service linked role e selecione AnalyticDB for MySQL na lista suspensa Select service.
Clique em OK e verifique se a função aparece na lista.
Conceder permissão a um usuário RAM para gerenciar tarefas zero-ETL
Um usuário RAM precisa de dois conjuntos de permissões para criar e gerenciar tarefas zero-ETL.
Etapa 1: Anexar a política de acesso total ao AnalyticDB for MySQL
Anexe a política AliyunADBFullAccess ao usuário RAM. Para obter instruções, consulte Conceder permissões a um usuário RAM.
Etapa 2: Criar e anexar uma política personalizada para zero-ETL
Crie uma política personalizada que conceda permissões do DTS nos clusters de origem e de destino e anexe-a ao usuário RAM. Para instruções sobre como criar políticas personalizadas, consulte Criar políticas personalizadas.
Utilize um dos seguintes modelos de política:
Conceder permissões para todas as instâncias do PolarDB for MySQL e clusters do AnalyticDB for MySQL
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:*",
"acs:polardb:*:*:*"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}
Conceder permissões para instâncias específicas do PolarDB for MySQL e clusters específicos do AnalyticDB for MySQL
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
"acs:polardb:*:*:dbcluster/pc-bp13jqn4a26b0****"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": "acs:dts:*:*:*"
}
]
}
Substitua am-2zeod8ax4b9a** pelo ID do seu cluster do AnalyticDB for MySQL e pc-bp13jqn4a26b0** pelo ID do seu cluster do PolarDB for MySQL.
Criar uma tarefa zero-ETL
Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo, selecione sua região. No painel de navegação à esquerda, clique em Clusters. Na página Clusters, clique na aba da edição correspondente ao seu cluster, localize-o e clique em seu ID.
-
Acesse a página de configuração do zero-ETL:
Enterprise Edition, Basic Edition ou Data Lakehouse Edition: No painel de navegação à esquerda, escolha Data Ingestion > Database Data Synchronization.
Data Warehouse Edition: No painel de navegação à esquerda, escolha Data Transmission Service > Zero-ETL.
-
Clique em Create Zero-ETL Task. Na página Create Zero-ETL Task, configure os parâmetros do cluster de origem e do cluster de destino:
Se você selecionar SSL-encrypted , ative primeiro a criptografia SSL para o cluster do PolarDB for MySQL. Consulte Configurar criptografia SSL .
Parâmetro
Descrição
Task name
Nome da tarefa zero-ETL.
Database type
Mecanismo do banco de dados de origem. Selecione PolarDB for MySQL.
Access method
Definido automaticamente como Alibaba Cloud Instance.
Instance region
Região onde o cluster do PolarDB for MySQL está localizado.
PolarDB cluster ID
ID do cluster do PolarDB for MySQL.
Database account
Conta de banco de dados do cluster do PolarDB for MySQL.
Database password
Senha da conta de banco de dados.
Encryption
Método de criptografia da conexão. Selecione Non-encrypted ou SSL-encrypted.
Parâmetro
Descrição
Database type
Definido automaticamente como AnalyticDB for MySQL 3.0.
Access method
Definido automaticamente como Alibaba Cloud Instance.
Instance region
Região onde o cluster do AnalyticDB for MySQL está localizado.
Instance ID
ID do cluster do AnalyticDB for MySQL.
Database account
Conta de banco de dados do cluster do AnalyticDB for MySQL.
Database password
Senha da conta de banco de dados.
-
Clique em Test Connectivity and Proceed. Configure as definições de sincronização:
Parâmetro
Descrição
DDL and DML operations to be synchronized
Operações DML (INSERT, UPDATE, DELETE) e operações DDL (CREATE, ALTER, DROP, TRUNCATE) a serem sincronizadas. Todas as operações vêm selecionadas por padrão.
Source objects and selected objects
Bancos de dados e tabelas a serem sincronizados.
Advanced settings (optional)
Intervalos de nova tentativa para falhas de conexão e outros erros nos clusters de origem e de destino.
-
Clique em Next: Configure Database and Table Fields. Configure os parâmetros de mapeamento de tabelas:
Parâmetro
Descrição
Database name
Nome do banco de dados selecionado.
Table name
Nome da tabela selecionada.
Primary key column
Coluna de chave primária da tabela.
Distribution key
Coluna de chave de distribuição da tabela.
Type
Tipo de tabela: tabela particionada ou tabela replicada.
Definition status
Status de configuração da tabela. Altera de Undefined para Defined após a configuração dos campos da tabela.
Clique em Next: Save Task Settings and Precheck.
-
Após a conclusão bem-sucedida da pré-verificação, clique em Start.
Se a pré-verificação falhar, revise os detalhes do erro e confirme se todos os pré-requisitos foram atendidos — o log binário está ativado no cluster do PolarDB for MySQL, existem contas de banco de dados em ambos os clusters e o usuário RAM possui as permissões necessárias.
A tarefa zero-ETL aparece na página de configuração do zero-ETL, onde é possível visualizar o Name, Source/Destination e Status da tarefa.
Monitorar tarefas zero-ETL e definir regras de alerta
Após iniciar uma tarefa zero-ETL, configure o monitoramento e os alertas no CloudMonitor.
Visualizar dados de monitoramento:
Faça login no console do CloudMonitor.
No painel de navegação à esquerda, escolha Cloud Service Monitoring > Cloud Service Monitoring.
Passe o mouse sobre o cartão AnalyticDB for MySQL e clique em AnalyticDB for mysql 3.0 - ZeroETL Latency.
Clique no ID do cluster para visualizar os detalhes de monitoramento das suas tarefas zero-ETL.
Criar uma regra de alerta:
No painel de navegação à esquerda, escolha Alerts > Alert Rules.
Clique em Create Alert Rule e configure os parâmetros de alerta. Defina Product como AnalyticDB for mysql 3.0 - ZeroETL Latency. Para mais detalhes, consulte Criar uma regra de alerta.
Criar uma política de assinatura:
No painel de navegação à esquerda, escolha Event Center > Event Subscription.
-
Clique em Create Subscription Policy e configure os parâmetros de assinatura. Para mais detalhes, consulte Gerenciar políticas de assinatura de eventos (recomendado).
Products: Selecione AnalyticDB for MySQL V3.0.
Event type: Selecione Abnormal ou Restore.
Event name: Selecione zero_etl_job_abnormal ou zero_etl_job_restore.
Próximos passos
Para sincronizar dados do ApsaraDB RDS for MySQL para o AnalyticDB for MySQL, consulte Usar zero-ETL para sincronizar dados.