AnalyticDB for MySQL oferece o recurso zero-ETL, que permite criar tarefas de sincronização de dados do ApsaraDB for MongoDB para o AnalyticDB for MySQL. Esse recurso facilita a sincronização e o gerenciamento de dados de ponta a ponta, integrando o processamento transacional à análise de dados.
Visão geral
Na era do big data, as empresas possuem dados de negócios distribuídos por diversos sistemas e plataformas. Para gerenciar e utilizar esses dados com eficiência, é comum depender de ferramentas de ETL para centralizar o gerenciamento.
ETL é o processo de extrair, transformar (limpar) e carregar dados de sistemas de negócios upstream em um data warehouse. O objetivo é consolidar dados dispersos de fontes upstream no data warehouse de destino, permitindo cálculos e análises adicionais para apoiar decisões de negócios eficazes.
Os processos tradicionais de ETL geralmente enfrentam os seguintes desafios:
Aumento nos custos de recursos: Fontes de dados diferentes podem exigir ferramentas de ETL distintas, e a construção de pipelines de ETL gera custos adicionais de recursos.
Maior complexidade do sistema: Os usuários precisam manter as ferramentas de ETL por conta própria, o que aumenta a dificuldade de operação e manutenção (O&M) e desvia o foco do desenvolvimento de aplicações de negócios.
Redução da atualidade dos dados: Alguns processos de ETL envolvem atualizações em lote periódicas, incapazes de gerar resultados analíticos rapidamente em cenários de aplicação quase em tempo real.
Para resolver essas questões, o Alibaba Cloud Database disponibiliza o recurso zero-ETL. Ele permite construir rapidamente pipelines de sincronização de dados entre sistemas transacionais (OLTP) e data warehouses (OLAP). Os dados dos sistemas OLTP são automaticamente extraídos, transformados, limpos e carregados nos data warehouses OLAP. Dessa forma, você conclui a sincronização e o gerenciamento de dados em uma única plataforma, integra o processamento transacional à análise de dados e ajuda os clientes a focarem na análise de dados para seus negócios.
Benefícios
Facilidade de uso: Não é necessário criar e manter pipelines de dados complexos para operações de ETL (extração, transformação e carga). Basta selecionar os dados de origem e a instância de destino para criar automaticamente pipelines de sincronização de dados em tempo real. Isso reduz a complexidade de construção e gerenciamento de pipelines, permitindo que você se concentre no desenvolvimento de aplicações de nível superior.
Custo zero: Pipelines Zero-ETL não geram taxas adicionais. Analise os dados upstream no AnalyticDB for MySQL gratuitamente.
Convergência de múltiplas fontes: Utilize pipelines Zero-ETL para sincronizar dados de várias instâncias em um cluster AnalyticDB for MySQL em tempo real, criando uma perspectiva global de análise.
Tarefas de sincronização de dados suportadas
Caminhos de sincronização do RDS for MySQL para o AnalyticDB for MySQL. Para mais informações, consulte Use zero-ETL to synchronize data.
Caminho de sincronização do DTS para o AnalyticDB for MySQL.
Tarefas de sincronização de dados do ApsaraDB for MongoDB para o AnalyticDB for MySQL.
Pré-requisitos
Um cluster AnalyticDB for MySQL e uma instância ApsaraDB for MongoDB criados na mesma região.
Contas de banco de dados configuradas tanto para o cluster AnalyticDB for MySQL quanto para a instância ApsaraDB for MongoDB.
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).
-
Se o número de pipelines Zero-ETL de um cluster AnalyticDB for MySQL atingir o limite, não será possível criar novos pipelines Zero-ETL. Nesse caso, utilize o DTS para criar novos pipelines de sincronização ou exclua pipelines Zero-ETL não utilizados para liberar espaço. Os limites de pipelines Zero-ETL são:
Se o total de ACUs para recursos reservados no cluster for inferior a 24 ACUs, é possível criar 1 pipeline Zero-ETL.
-
Caso o total de ACUs para recursos reservados no cluster seja igual ou superior a 24 ACUs, a capacidade é de 3+3*[(Total de ACUs-24)/50] pipelines Zero-ETL.
O resultado de [(Total de ACUs-24)/50] é arredondado para baixo. Por exemplo, se o total de ACUs for 48, o resultado será 0,48, arredondado para 0. Nesse cenário, você pode criar 3 pipelines Zero-ETL.
NotaNa Lakehouse Edition, o total de ACUs para recursos reservados corresponde à soma das ACUs de recursos computacionais reservados e recursos de armazenamento reservados.
Na Data Warehouse Edition, 1 núcleo equivale a 1 ACU. No modo elástico, o total de ACUs para recursos reservados é a soma dos núcleos de recursos computacionais e recursos de I/O elástico. Já no modo reservado, o total de ACUs para recursos reservados corresponde ao número de núcleos dos recursos computacionais.
Preparações
**Criar a função vinculada ao service do AnalyticDB for MySQL**
Acesse a lista de Roles no console do RAM.
Verifique se a função vinculada ao service AliyunServiceRoleForAnalyticDBForMySQL já existe na lista de funções. Caso contrário, crie a função.
Clique em Create Role.
Na caixa de diálogo Create Role, selecione Alibaba Cloud Service e clique em Next.
Defina o tipo de função como Alibaba Cloud Service e selecione AnalyticDB for MySQL.
Clique em Complete. Retorne à lista de funções e verifique se a função vinculada ao service foi criada.
Conceder permissões de gerenciamento a um usuário RAM
Usuários RAM necessitam dos dois tipos de permissão a seguir para criar e gerenciar pipelines Zero-ETL.
Para criar e gerenciar pipelines Zero-ETL, o usuário RAM deve ter permissões de gerenciamento (AliyunADBFullAccess) sobre o AnalyticDB for MySQL. Para mais informações, consulte Conceder permissões a um usuário RAM.
A seção a seguir descreve os scripts das políticas personalizadas:
Conceder permissões em todas as instâncias do ApsaraDB for MongoDB e clusters AnalyticDB for MySQL
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:*",
"acs:dds:*:*:*"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}
Conceder permissões em uma instância específica do ApsaraDB for MongoDB e um cluster específico do AnalyticDB for MySQL
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
"acs:dds:*:*:dbinstance/dds-t4n8aaa4dcdb****"
]
},
{
"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, selecione a região onde o cluster está localizado. No painel de navegação à esquerda, clique em Clusters e, em seguida, clique no id do cluster desejado.
No painel de navegação à esquerda, escolha .
-
Clique em Create Zero-ETL Task. Na etapa Configure Source and Destination Databases da página Create Zero-ETL Task, configure os parâmetros da instância de source e do cluster de destino.
-
A tabela a seguir descreve os parâmetros da instância de source.
Parâmetro
Descrição
Task Name
Nome da tarefa zero-ETL.
Database Type
Motor de banco de dados da instância de source. Selecione MongoDB.
Access Method
Método de acesso da instância de source. O valor é definido automaticamente como Alibaba Cloud Instance.
Instance Region
Região onde a instância do ApsaraDB for MongoDB está localizada.
Architecture
Arquitetura da instância do ApsaraDB for MongoDB. Apenas ReplicaSet é suportado.
Migration Method
Método utilizado para sincronizar dados incrementais. Valores válidos:
-
Oplog (recomendado):
Esta opção fica disponível quando o recurso oplog está habilitado na instância de source.
NotaO Oplog vem habilitado por padrão em bancos de dados MongoDB autogerenciados e em instâncias do ApsaraDB for MongoDB. Ao usar este método para sincronizar dados incrementais, a latência das tarefas de sincronização incremental é baixa devido à alta velocidade de extração de logs. Portanto, recomendamos selecionar Oplog.
-
ChangeStream:
Esta opção fica disponível quando change streams estão habilitados na instância de source.
NotaSe a instância de source for Amazon DocumentDB (cluster não elástico), apenas ChangeStream poderá ser selecionado.
Instance ID
ID da instância do ApsaraDB for MongoDB.
Authentication Database
Nome do banco de dados ao qual pertence a conta de banco de dados da instância do ApsaraDB for MongoDB. Se você não modificou o banco de dados, admin será usado.
Database Account
Nome da conta de banco de dados da instância do ApsaraDB for MongoDB.
Database Password
Senha da conta de banco de dados da instância do ApsaraDB for MongoDB.
Encryption
Método de criptografia usado para conectar à instância do ApsaraDB for MongoDB. Selecione Non-encrypted ou SSL-encrypted.
NotaSe você selecionar SSL-encrypted, deverá primeiro ativar o recurso SSL encryption na instância do ApsaraDB for MongoDB.
-
-
Configure o banco de dados de destino:
Banco de Dados de Destino
Descrição
Database Type
O banco de dados de destino suporta apenas AnalyticDB MySQL 3.0.
Access Method
Apenas 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 de banco de dados do cluster AnalyticDB for MySQL.
Database Password
Senha da conta de banco de dados do cluster AnalyticDB for MySQL.
-
-
Após configurar os parâmetros acima, clique em Test Connectivity and Proceed. Na etapa Configure Zero-ETL, configure os parâmetros descritos na tabela a seguir.
Parâmetro
Descrição
DDL and DML Operations to Be Synchronized
Operações DML (INSERT, UPDATE e DELETE) que você deseja sincronizar. Por padrão, todas as operações vêm selecionadas.
Source Objects and Selected Objects
Objetos de source e objetos que você deseja sincronizar.
Advanced Settings (Optional)
Tempo de nova tentativa para conexões falhas entre as instâncias e clusters de source e destino, além do tempo de nova tentativa para outros problemas ocorridos nessas instâncias e clusters.
Depois de configurar todos os parâmetros anteriores, clique em Next: Save Task and Precheck.
-
Após a aprovação na pré-verificação, clique em Start para iniciar a tarefa Zero-ETL.
Na página Free Data Sync, visualize o Name, Source/Target, Status e outras informações da tarefa Zero-ETL desejada.
Monitoramento e alertas de tarefas Zero-ETL
Após criar e iniciar uma tarefa Zero-ETL, defina regras de alerta para essa tarefa no console do CloudMonitor e monitore o status de execução em tempo real. Siga as etapas abaixo:
Faça login no console do CloudMonitor.
-
Visualize as informações de monitoramento.
No painel de navegação à esquerda, escolha .
Passe o ponteiro sobre o cartão AnalyticDB for MySQL e clique em AnalyticDB for MySQL 3.0 - ZeroETL Latency.
Na página Clusters, clique em um id de cluster para visualizar as informações de monitoramento das tarefas Zero-ETL associadas a esse cluster.
-
Crie uma regra de alerta.
No painel de navegação à esquerda, escolha .
-
Clique em Create Alert Rule. No painel Create Alert Rule, configure a regra de alerta para a tarefa Zero-ETL. Para mais informações, consulte Criar uma regra de alerta acionada por limiar.
NotaDefina Product como AnalyticDB for MySQL 3.0 - ZeroETL Latency.
-
Crie uma assinatura.
No painel de navegação à esquerda, escolha .
-
Clique em Create Subscription. Na página Create Subscription, configure a assinatura para a tarefa Zero-ETL. Para mais informações, consulte Criar assinaturas de eventos.
NotaProduct: Selecione AnalyticDB for MySQL 3.0.
Event Type: Selecione Exception ou Restore.
Event Name: Selecione ZeroETL Task Exception ou ZeroETL Task Recovery.