AnalyticDB for MySQL oferece um recurso zero-ETL que permite criar um link do RDS for MySQL no AnalyticDB for MySQL. Esse recurso facilita o gerenciamento da sincronização de dados em um único console e integra o processamento transacional à análise de dados.
Visão geral
Na era do big data, as empresas frequentemente lidam com dados dispersos em diferentes sistemas e plataformas. Para utilizar essas informações de forma eficaz, elas geralmente dependem de ferramentas de extração, transformação e carga (ETL) para centralizar o gerenciamento de dados.
O ETL é um processo que extrai dados de sistemas de negócios upstream, transforma-os e limpa-os, carregando-os em seguida em um data warehouse. O objetivo é consolidar dados distribuídos em um data warehouse de destino para análises posteriores e possibilitar melhores decisões de negócios.
Os processos tradicionais de ETL costumam apresentar as seguintes desvantagens:
Aumento nos custos de recursos: Fontes de dados distintas podem exigir ferramentas de ETL diferentes. A construção de pipelines de dados ETL gera custos adicionais de recursos.
Maior complexidade do sistema: A manutenção das ferramentas de ETL por conta própria eleva a complexidade operacional e desvia o foco do desenvolvimento de aplicações.
Latência de dados: Alguns processos de ETL envolvem atualizações em lote periódicas. Em aplicações quase em tempo real, isso pode atrasar a geração de resultados analíticos.
Para resolver esses desafios, a Alibaba Cloud disponibiliza o recurso zero-ETL. Ele permite construir rapidamente uma tarefa de sincronização de dados entre um sistema de processamento transacional online (OLTP) e um sistema de processamento analítico online (OLAP). O recurso extrai, transforma e carrega automaticamente os dados do sistema OLTP para o data warehouse. Isso simplifica o gerenciamento de dados, integra o processamento transacional às análises e permite que você se concentre na análise essencial dos dados.
Benefícios
Facilidade de uso: Não é preciso criar e manter pipelines de dados complexos para ETL. Para criar uma tarefa de sincronização de dados em tempo real, basta selecionar a origem e o destino. Assim, você fica livre para focar no desenvolvimento da aplicação.
Custo zero: Links zero-ETL não geram cobranças adicionais. Analise os dados upstream no AnalyticDB for MySQL gratuitamente.
Agregação de múltiplas fontes: Utilize tarefas zero-ETL para sincronizar dados de várias instâncias em um único cluster AnalyticDB for MySQL em tempo real e crie uma visualização unificada para análise global.
Sincronização suportada
Sincronização de dados do RDS for MySQL para o AnalyticDB for MySQL.
Sincronização de dados do PolarDB for MySQL para o AnalyticDB for MySQL. Para mais informações, consulte Synchronize data from PolarDB for MySQL.
Pré-requisitos
Seu cluster AnalyticDB for MySQL e a instância RDS for MySQL devem estar na mesma região.
É necessário ter contas de banco de dados tanto para o cluster AnalyticDB for MySQL quanto para a instância RDS for MySQL.
Faturamento
As tarefas zero-ETL são gratuitas.
Observações de uso
O recurso zero-ETL está disponível apenas nas seguintes regiões: China (Beijing), China (Hangzhou), China (Shanghai), China (Shenzhen), China (Zhangjiakou), China (Qingdao), China (Guangzhou), China (Hong Kong), Singapore, US (Silicon Valley) e US (Virginia).
-
Caso o número de tarefas zero-ETL no seu cluster AnalyticDB for MySQL atinja o limite, não será possível criar novas tarefas. Use o DTS para criar novas tarefas de sincronização de dados ou exclua tarefas zero-ETL não utilizadas para liberar capacidade. Os limites são os seguintes:
Se o total de ACUs reservadas do cluster for inferior a 24, é possível criar uma tarefa zero-ETL.
-
Se o total de ACUs reservadas do cluster for 24 ou mais, você poderá criar
3 + 3 * floor((Total ACUs - 24) / 50)tarefas zero-ETL.O resultado de
floor((Total ACUs - 24) / 50)é arredondado para baixo até o inteiro mais próximo. Por exemplo, se um cluster tiver 48 ACUs, o cálculo será3 + 3 * floor((48 - 24) / 50), que resulta em3 + 3 * floor(0.48). Isso se simplifica para3 + 3 * 0, permitindo a criação de 3 tarefas zero-ETL.
NotaPara um cluster Data Lakehouse Edition, o total de ACUs reservadas corresponde à soma das ACUs de computação reservadas e das ACUs de armazenamento reservadas.
Em um cluster Data Warehouse Edition, um núcleo equivale a uma ACU. Para um cluster no elastic mode, o total de ACUs reservadas é a soma dos núcleos dos recursos de computação e dos recursos de I/O elástico. Já para um cluster no reserved mode, o total de ACUs reservadas corresponde ao número de núcleos dos recursos de computação.
Preparações
Criar um AnalyticDB for MySQL
Acesse a página Role no console RAM.
Verifique se já existe uma função vinculada ao service chamada AliyunServiceRoleForAnalyticDBForMySQL. Caso contrário, crie a função.
No painel de navegação à esquerda, clique em Create Role.
Na caixa de diálogo Create Role, selecione Alibaba Cloud Service e clique em Next.
Como tipo de função, selecione Service-Linked Role e, em seguida, escolha AnalyticDB for MySQL na lista suspensa de serviços.
Clique em Finish. Retorne à lista de funções e verifique se a função vinculada ao service foi criada.
Conceder permissões a um usuário RAM
Um usuário RAM precisa dos dois tipos de permissão a seguir para criar e gerenciar tarefas zero-ETL.
Conceder permissões do AnalyticDB for MySQL
O usuário RAM deve ter a permissão de gerenciamento do AnalyticDB for MySQL, AliyunADBFullAccess, para criar e gerenciar links Zero-ETL no AnalyticDB for MySQL. Para obter instruções, consulte Manage RAM user permissions.
Conceder permissões zero-ETL
Para criar e gerenciar links Zero-ETL, o usuário RAM precisa ter permissões para criar links nas instâncias de source e de destino (AnalyticDB for MySQL). Você pode create a custom permission policy que permita ao usuário RAM criar links para todas as instâncias ou apenas para instâncias específicas da fonte de dados e do AnalyticDB for MySQL e, depois, anexar a política de permissão personalizada ao usuário RAM.
Veja a seguir exemplos de scripts para políticas de permissão personalizadas:
Autorizar todas as instâncias RDS for MySQL e clusters AnalyticDB for MySQL
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:*",
"acs:rds:*:*:*",
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}
Conceder permissões a uma instância RDS for MySQL e a um cluster AnalyticDB for MySQL específicos
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
"acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****",
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": "acs:dts:*:*:*"
}
]
}
Procedimento
Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique em no ID do cluster.
-
Acesse a página do recurso zero-ETL. O ponto de entrada varia conforme a edição do cluster.
Para um cluster Enterprise Edition, Basic Edition ou Data Lakehouse Edition: No painel de navegação à esquerda, escolha .
Para um cluster Data Warehouse Edition: No painel de navegação à esquerda, escolha .
-
Clique em Create Zero-ETL Task. Na página Create Zero-ETL Task, configure as informações dos bancos de dados de source e de destino.
-
Configure as informações do banco de dados de source:
Banco de dados de source
Descrição
Task Name
Nome da tarefa zero-ETL.
Database Type
Selecione RDS for MySQL.
Access Method
Somente Alibaba Cloud Instance é suportado.
Instance Region
Região onde a instância RDS for MySQL está localizada.
RDS Instance ID
ID da instância RDS for MySQL.
Database Account
Conta do banco de dados da instância RDS for MySQL.
Database Password
Senha da conta do banco de dados da instância RDS for MySQL.
Encryption
Método de conexão com a instância RDS for MySQL. As opções incluem conexão não criptografada e conexão segura SSL.
NotaSe você selecionar SSL-encrypted, será necessário ativar primeiro a criptografia SSL para a instância RDS for MySQL. Para mais informações, consulte Use a cloud certificate to quickly enable SSL encryption.
-
Configure as informações do banco de dados de destino:
Banco de dados de destino
Descrição
Database Type
Atualmente, apenas o AnalyticDB for MySQL 3.0 é suportado como destino.
Access Method
Somente Alibaba Cloud Instance é suportado.
Instance Region
Região onde o cluster AnalyticDB for MySQL está localizado.
Instance ID
ID do cluster AnalyticDB for MySQL.
Database Account
Conta do banco de dados do cluster AnalyticDB for MySQL.
Database Password
Senha da conta do banco de dados do cluster AnalyticDB for MySQL.
-
-
Após configurar os parâmetros, clique em Test Connectivity and Proceed. Na página de configuração, defina os seguintes parâmetros:
Parâmetro
Descrição
DDL and DML Operations to Be Synchronized
Selecione as operações DML e DDL a serem sincronizadas. Todas as operações vêm selecionadas por padrão.
Source Objects e Selected Objects
Objetos de source no banco de dados e objetos a serem sincronizados.
Advanced Settings (Optional)
Configure intervalos de nova tentativa para indisponibilidade do banco de dados e outros problemas potenciais.
-
Depois de concluir as configurações, clique em Next: Configure Database and Table Fields e configure as seguintes informações:
Configuração
Descrição
Database Name
Selecione um banco de dados existente.
Table Name
Selecione uma tabela existente.
Primary Key Column
Coluna de chave primária da tabela selecionada.
Distribution Key
Coluna de chave de distribuição da tabela selecionada.
Type
Tipo da tabela. As opções incluem tabela particionada e tabela replicada.
Definition Status
Após a configuração dos campos de banco de dados e tabela, o status muda de Undefined para Defined.
Após configurar todos os parâmetros, clique em Next: Save Task Settings and Precheck.
-
Se a pré-verificação for bem-sucedida, clique em Start para iniciar a tarefa zero-ETL.
Na página Zero-ETL, visualize informações sobre a tarefa, incluindo seu ID/Name, Source/Destination e Status.
Monitoramento e alertas zero-ETL
Depois de criar e iniciar uma tarefa zero-ETL, defina regras de alerta no console CloudMonitor para monitorar seu status em tempo real. Siga estas etapas:
Faça login no console Cloud Monitor.
-
Visualize as informações de monitoramento.
No painel de navegação à esquerda, escolha .
Passe o mouse sobre o cartão AnalyticDB for MySQL e clique em AnalyticDB for mysql 3.0 - ZeroETL Latency.
Clique em um ID de cluster para visualizar as informações de monitoramento das tarefas zero-ETL nesse cluster.
-
Crie uma regra de alerta.
No painel de navegação à esquerda, clique em .
-
Clique em Create Alert Rule. No painel Create Alert Rule, configure uma regra de alerta para a tarefa zero-ETL. Para mais informações, consulte Create an alert rule.
NotaPara o parâmetro Product, selecione AnalyticDB for mysql 3.0 - ZeroETL Latency.
-
Crie uma política de assinatura.
No painel de navegação à esquerda, clique em .
-
Clique em Create a subscription policy. Na página Create a subscription policy, configure a política de assinatura para a tarefa zero-ETL. Para mais informações, consulte Create an event subscription.
NotaProduct: Selecione Analyticdb for mysql 3.0.
event types: Selecione Abnormal ou Restore.
Event Name: Selecione zero_etl_job_abnormal ou zero_etl_job_restore.