AnalyticDB for MySQL oferece o AnalyticDB Pipeline Service (APS) para sincronização de dados em tempo real. Crie um job de sincronização para ingerir dados de um Logstore do AnalyticDB for MySQL em um cluster AnalyticDB for MySQL a partir de um offset específico. O APS oferece suporte a análises quase em tempo real, arquivamento completo de dados históricos e análise elástica.
Pré-requisitos
Você criou um cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
Um grupo de recursos de job foi criado para o cluster AnalyticDB for MySQL.
-
Você criou uma conta de banco de dados para o cluster AnalyticDB for MySQL.
Se você usar uma conta Alibaba Cloud, basta criar uma conta privilegiada.
Se você usar um usuário do Resource Access Management (RAM), crie uma conta privilegiada e uma conta padrão e associe a conta padrão ao usuário RAM.
Você ativou o Simple Log Service (SLS) e criou um projeto e um Logstore na mesma região do cluster AnalyticDB for MySQL. Para mais informações, consulte Usar o LoongCollector para coletar e analisar logs de texto de instâncias ECS.
Observações de uso
Cada tabela em um cluster AnalyticDB for MySQL pode ser sincronizada com apenas um Logstore do SLS.
Após a ingestão, é necessário realizar um commit para tornar os dados visíveis. Para garantir a estabilidade do job e o desempenho ideal de leitura e escrita, o recurso de sincronização de dados do AnalyticDB for MySQL usa um intervalo de commit padrão de 5 minutos. Portanto, após criar e iniciar um job de sincronização de dados, aguarde pelo menos 5 minutos para visualizar o primeiro lote de dados.
Faturamento
A sincronização de dados por meio do AnalyticDB for MySQL gera as seguintes taxas:
Taxas de recursos elásticos para as ACUs do AnalyticDB for MySQL. Para mais informações, consulte Faturamento da Data Lakehouse Edition e Faturamento da Enterprise Edition e Basic Edition.
Taxas do OSS, incluindo custos de armazenamento e requisições GET, PUT, entre outras. Para mais detalhes, consulte Visão geral do faturamento.
Procedimento
Etapa 1 (Opcional): Configure a autorização do Resource Access Management (RAM).
Etapa 2: Criar uma fonte de dados.
Etapa 3: Criar um job de sincronização.
Etapa 4: Iniciar o job de sincronização.
Etapa 5: Analisar dados.
Etapa 6 (Opcional): Gerencie fontes de dados.
Configure a autorização do Resource Access Management (RAM)
Para sincronizar dados do SLS para o AnalyticDB for MySQL entre contas Alibaba Cloud diferentes, crie uma função RAM na conta de origem, conceda as permissões necessárias e modifique a política de confiança. Se a sincronização ocorrer dentro da mesma conta, ignore esta etapa e prossiga para Criar uma fonte de dados.
-
Crie uma função RAM. Para mais informações, consulte Criar uma função RAM para uma conta Alibaba Cloud confiável.
NotaAo configurar o parâmetro Select Trusted Alibaba Cloud Account, selecione Another Alibaba Cloud Account e insira o ID da conta Alibaba Cloud à qual o cluster AnalyticDB for MySQL pertence. Acesse o Account Center e visualize o Account ID na página Overview.
Conceda a permissão AliyunAnalyticDBAccessingLogRolePolicy à função RAM. Para mais detalhes, consulte Conceder permissões a uma função RAM.
-
Modifique a política de confiança da função RAM. Para obter instruções, consulte Modificar a política de confiança de uma função RAM.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud Account ID>:root" ], "Service": [ "<Alibaba Cloud Account ID>@ads.aliyuncs.com" ] } } ], "Version": "1" }NotaO ID da Conta Alibaba Cloud corresponde ao valor inserido na Etapa 1. Não inclua os sinais de maior e menor que (<>) ao configurar o parâmetro.
Criar uma fonte de dados
Se você já tiver uma fonte de dados configurada, ignore esta etapa e prossiga para Criar um job de sincronização.
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 desejado e clique no respectivo ID.
No painel de navegação à esquerda, escolha Data Ingestion>Data Sources.
No canto superior esquerdo, clique em Create Data Source.
-
Na página Create Data Source, configure os seguintes parâmetros.
Parâmetro
Descrição
Data Source Type
Selecione SLS.
Data Source Name
Gerado automaticamente com base no tipo de fonte de dados e na hora atual. Altere o nome conforme necessário.
Data Source Description
Descrição da fonte de dados, como cenário de aplicação e restrições de negócio.
Deployment Mode
Somente Alibaba Cloud Instance tem suporte.
Region of Simple Log Service Project
Região onde o projeto SLS está localizado.
Across Alibaba Cloud Accounts
Define se os dados serão sincronizados a partir de uma fonte SLS em outra conta Alibaba Cloud.
-
Mesma conta: Sincroniza dados do SLS da conta atual para o AnalyticDB for MySQL.
-
Contas cruzadas: Sincroniza dados do SLS de uma conta diferente para o AnalyticDB for MySQL. Ao optar pela sincronização entre contas, informe a Alibaba Cloud Account e a RAM Role.
Nota-
Alibaba Cloud Account: ID da conta Alibaba Cloud proprietária dos dados de origem.
-
RAM Role: Nome da função RAM criada na conta de origem. Refere-se à função configurada na Etapa 1 da seção "Configure a autorização do RAM".
-
Simple Log Service Project
Projeto SLS de origem.
ImportanteA lista de Projetos SLS exibe todos os projetos pertencentes à conta Alibaba Cloud e seus usuários RAM. Se você selecionar um projeto da conta principal, certifique-se de que o usuário RAM tenha permissões adequadas. Caso contrário, a sincronização de dados para o AnalyticDB for MySQL falhará.
Simple Log Service Logstore
Logstore SLS de origem.
-
Após configurar os parâmetros, clique em Create.
Criar um job de sincronização
No painel de navegação à esquerda, clique em Simple Log Service/Kafka Data Synchronization.
No canto superior esquerdo, clique em Create Synchronization Job.
-
Na página Create Synchronization Job, configure os parâmetros nas etapas Source and Destination Settings, Destination Database and Table Settings e Synchronization Settings.
-
A tabela abaixo detalha os parâmetros de Source and Destination.
Parâmetro
Descrição
Job Name
Nome do job de sincronização. Gerado automaticamente com base no tipo de fonte de dados e na hora atual. Pode ser alterado conforme necessário.
Data Source
Selecione uma fonte de dados SLS existente ou crie uma nova.
Destination Type
Opções com suporte:
-
Data Lake - User OSS.
-
Data Lake - AnalyticDB Lake Storage (recomendado).
ImportanteSe você selecionar Data Lake - AnalyticDB Lake Storage, será necessário primeiro ativar o lake storage.
ADB Lake Storage
Nome do lake storage onde residem os dados do AnalyticDB for MySQL.
Escolha o lake storage de destino na lista suspensa. Se não houver nenhum disponível, clique em Automatically Created na lista para criar um automaticamente.
ImportanteEste parâmetro é obrigatório apenas quando o Destination Type estiver definido como Data Lake - AnalyticDB Lake Storage.
OSS Path
Caminho de armazenamento no OSS para os dados do lakehouse do AnalyticDB for MySQL.
Importante-
Parâmetro exigido somente quando o Destination Type for Data Lake - User OSS.
-
A lista suspensa mostra todos os buckets na mesma região do cluster AnalyticDB for MySQL. Você pode selecionar qualquer um deles. Planeje o caminho de armazenamento com cuidado, pois não será possível alterá-lo após a criação do job.
-
Recomenda-se escolher um diretório vazio. O caminho do OSS não pode ser prefixo do caminho de outro job de sincronização, nem vice-versa, para evitar sobreposição de dados. Por exemplo, se dois jobs tiverem os caminhos
oss://testBucketName/test/sls1/eoss://testBucketName/test/, haverá relação de prefixo e risco de sobrescrita durante a sincronização.
Storage Format
Formato de armazenamento dos dados. Opções disponíveis:
-
PAIMON.
ImportanteTem suporte apenas quando o Destination Type estiver definido como Data Lake - User OSS.
-
ICEBERG.
-
-
A tabela a seguir descreve os parâmetros de Destination Database and Table Settings.
Parâmetro
Descrição
Database Name
Nome do banco de dados de destino no AnalyticDB for MySQL. Se não existir um banco com o nome especificado, um novo será criado. Caso já exista, os dados serão sincronizados para ele. Para convenções de nomenclatura, consulte Limites.
ImportanteNa seção Source and Destination Settings, se o Storage Format estiver definido como PAIMON, um banco de dados existente deve atender às condições abaixo. Caso contrário, o job de sincronização falhará:
-
O banco deve ser externo. A instrução
CREATE DATABASEdeve serCREATE EXTERNAL DATABASE <database_name>. -
A cláusula
DBPROPERTIESna instruçãoCREATE DATABASEdeve incluir a propriedadecatalog, e seu valor deve serpaimon. -
A cláusula
DBPROPERTIESdeve conter a propriedadeadb.paimon.warehouse. Exemplo:adb.paimon.warehouse=oss://testBucketName/aps/data. -
A cláusula
DBPROPERTIESdeve incluir a propriedadeLOCATION, sendo necessário adicionar.dbao nome do banco no caminho. Do contrário, consultas XIHE falharão. Exemplo:LOCATION='oss://testBucketName/aps/data/kafka_paimon_external_db.db/'.Para o caminho do OSS especificado em
LOCATION, o bucket e o diretório devem existir previamente. Caso contrário, a criação do banco de dados falhará.
Table Name
Nome da tabela de destino no AnalyticDB for MySQL. Se a tabela não existir no banco de dados, ela será criada. Se já existir uma tabela com esse nome, a sincronização de dados falhará. Para regras de nomenclatura, consulte Limites.
Schema Field Mapping
Por padrão, os campos são obtidos da configuração do job de envio (shipping) do SLS. Se não houver job de envio configurado para o Logstore, os campos serão extraídos dos dados de log mais recentes.
-
Tipos de dados com suporte: BOOLEAN, INT, BIGINT, FLOAT, DOUBLE e STRING.
-
Campos reservados do SLS também podem ser sincronizados. Para mais informações, consulte Campos reservados.
Importante-
Não é permitido modificar os nomes dos campos de destino.
-
Se o job já foi executado (incluindo execuções em andamento ou concluídas), não é possível alterar colunas existentes, mas novas colunas podem ser adicionadas. Jobs criados mas ainda não iniciados podem ser modificados livremente.
Partition Key Settings
Defina uma chave de partição para a tabela de destino. Recomenda-se particionar por tempo de log ou lógica de negócio para melhorar o desempenho de ingestão e consulta. Sem essa configuração, a tabela de destino não será particionada por padrão.
É possível formatar a chave de partição de destino por tempo ou por um campo de partição específico.
-
Para particionar por data e hora, selecione um campo de data/hora como chave de partição. Como método de formatação, escolha formatação de tempo e especifique o formato do campo de origem e o formato da partição de destino. O AnalyticDB for MySQL usa o formato de origem para identificar o valor do campo e convertê-lo para o formato da partição de destino. Por exemplo, se o campo de origem for
gmt_createdcom valor1711358834, o formato de origem for timestamp com precisão de segundos e o formato da partição de destino foryyyyMMdd, os dados serão particionados como20240325. -
Para particionar pelo valor do campo, selecione "Specify partition field" como método de formatação.
-
-
A tabela abaixo apresenta os parâmetros de Synchronization Settings.
Parâmetro
Descrição
Starting Consumer Offset for Incremental Synchronization
Offset a partir do qual o job começa a consumir dados do SLS. Opções:
-
Earliest offset (begin_cursor): Consome dados desde o offset mais antigo disponível no Logstore.
-
Latest offset (end_cursor): Inicia o consumo a partir do offset mais recente no Logstore.
-
Custom: Permite selecionar qualquer ponto no tempo. O sistema começará a consumir dados a partir do primeiro registro no SLS que esteja nesse momento ou posteriormente.
Job Resource Group
Grupo de recursos responsável por executar o job de sincronização.
ACUs for Incremental Synchronization
Especifique a quantidade de AnalyticDB Compute Units (ACUs) no Grupo de Recursos do Job. O valor mínimo é 2 e o máximo corresponde aos recursos computacionais disponíveis no grupo. Alocar mais ACUs é recomendado para melhorar o desempenho de ingestão e a estabilidade do job.
NotaAo criar um job de sincronização de dados, ele utiliza recursos elásticos do Grupo de Recursos do Job. Como esses jobs ocupam recursos por longos períodos, o sistema deduz o consumo do total disponível no grupo. Por exemplo, se um grupo possui 48 ACUs e um job existente usa 8 ACUs, restarão no máximo 40 ACUs para outros jobs no mesmo grupo.
Advanced Settings
Configurações avançadas para personalizar o job de sincronização. Entre em contato com o suporte técnico caso precise realizar ajustes personalizados.
-
-
Após configurar os parâmetros, clique em Submit.
Iniciar a tarefa de sincronização de dados
Na página Simple Log Service/Kafka Data Synchronization, selecione a tarefa de sincronização desejada e clique em Start na coluna Actions.
Clique em Search no canto superior esquerdo. A tarefa terá sido iniciada com sucesso quando seu status mudar para Running.
Análise de dados
Após a conclusão bem-sucedida da sincronização, utilize o desenvolvimento Spark Jar para analisar os dados no AnalyticDB for MySQL. Para saber mais sobre desenvolvimento Spark, consulte Editor de desenvolvimento Spark e Desenvolvimento de aplicações Spark offline.
No painel de navegação à esquerda, clique em .
-
No modelo padrão, insira as instruções de exemplo e clique em Run Now.
-- Here is just an example of SparkSQL. Modify the content and run your spark program. conf spark.driver.resourceSpec=medium; conf spark.executor.instances=2; conf spark.executor.resourceSpec=medium; conf spark.app.name=Spark SQL Test; conf spark.adb.connectors=oss; -- Here are your sql statements show tables from lakehouse20220413156_adbTest; Opcional: Na aba Applications, clique em Logs na coluna Actions para visualizar o log de execução do job Spark SQL.
Gerencie fontes de dados
No painel de navegação à esquerda, clique em Data Ingestion>Data Sources. As seguintes ações estão disponíveis na coluna Actions.
|
Ações |
Descrição |
|
Create Job |
Cria um job de sincronização ou migração de dados para a fonte selecionada. |
|
View |
Exibe a configuração detalhada da fonte de dados. |
|
Edit |
Permite editar propriedades da fonte de dados, como nome e descrição. |
|
Delete |
Exclui a fonte de dados. Nota
Não é possível excluir uma fonte de dados associada a um job de sincronização ou migração. Primeiro, exclua o job na página Simple Log Service/Kafka Data Synchronization. Para isso, localize o job alvo e, na coluna Actions, clique em Delete. |