O MySQL Event Scheduler funciona bem para tarefas simples em um único banco de dados, mas não oferece observabilidade, suporte a múltiplos bancos ou recuperação de falhas. A orquestração de tarefas do Data Management (DMS) opera fora do kernel do banco de dados e fornece um editor visual com arrastar e soltar, suporte a vários mecanismos, execução agendada, além de notificações e controles de O&M integrados.
Este tópico apresenta um cenário completo de agendamento: filtrar pedidos concluídos acima de $10.000 na tabela orders e gravar os resultados em uma tabela separada diariamente.
Por que usar o DMS em vez do MySQL Event Scheduler
|
Limitação |
MySQL Event Scheduler |
Orquestração de tarefas do DMS |
|
Configuração |
Exige sintaxe |
Editor visual com arrastar e soltar |
|
Escopo |
Apenas um único banco de dados |
Vários mecanismos (MySQL, Oracle, PostgreSQL, SQL Server) e fluxos entre bancos |
|
Observabilidade |
Sem histórico de execução, duração ou status |
Histórico completo e status no console de O&M |
|
Tratamento de falhas |
Não permite pausar, reexecutar ou recuperar eventos com falha |
Permite pausar, parar e reexecutar tarefas |
|
Notificações |
Nenhuma |
DingTalk, mensagem de texto e e-mail |
|
Dependência do kernel |
O agendador precisa estar ativado no nível do kernel |
Independente do kernel do banco de dados |
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster do AnalyticDB for MySQL (Enterprise Edition, Basic Edition, Data Lakehouse Edition ou Data Warehouse Edition)
Acesso ao console do AnalyticDB for MySQL
O banco de dados
adb_teste as tabelas de exemplo criados (consulte Dados de exemplo)
O recurso de gerenciamento de dados ponta a ponta não é compatível com clusters do AnalyticDB for MySQL na região da Indonésia (Jacarta).
Dados de exemplo
Os exemplos utilizam um banco de dados chamado adb_test com três tabelas: orders, finish_orders e large_finish_orders.
CREATE DATABASE adb_test;
CREATE TABLE orders (
order_id BIGINT NOT NULL COMMENT 'Order ID',
order_status VARCHAR(10) NOT NULL COMMENT 'Order status',
total_price DECIMAL(15,2) NOT NULL COMMENT 'Total price',
order_date DATE NOT NULL COMMENT 'Order date',
PRIMARY KEY (order_id)
);
CREATE TABLE finish_orders (
order_id BIGINT NOT NULL COMMENT 'Order ID',
total_price DECIMAL(15,2) NOT NULL COMMENT 'Total price',
order_date DATE NOT NULL COMMENT 'Order date',
PRIMARY KEY (order_id)
);
CREATE TABLE large_finish_orders (
order_id BIGINT NOT NULL COMMENT 'Order ID',
total_price DECIMAL(15,2) NOT NULL COMMENT 'Total price',
order_date DATE NOT NULL COMMENT 'Order date',
PRIMARY KEY (order_id)
);
Agende um fluxo de tarefas
O fluxo de trabalho possui três etapas:
Crie um fluxo de tarefas — configure o contêiner para suas tarefas
Adicione nós de tarefa — configure duas tarefas SQL com dependência entre elas
Agende e publique — ative o agendamento periódico e libere o fluxo de tarefas
Etapa 1: Crie um fluxo de tarefas
Faça logon no console do AnalyticDB for MySQL. No canto superior esquerdo, selecione uma região. No painel de navegação à esquerda, clique em Clusters e, em seguida, clique no ID do cluster desejado.
-
No painel de navegação à esquerda, clique em Job Scheduling.
Se esta for a primeira vez que você acessa um banco de dados AnalyticDB for MySQL pelo console do DMS, insira suas credenciais de logon do banco de dados. Para mais detalhes, consulte Fazer logon em um banco de dados . Caso já tenha feito logon anteriormente em um cluster do AnalyticDB for MySQL nos modos Flexible Management ou Stable Change sem marcar a opção Remember Password , uma solicitação de senha aparecerá ao abrir o console do DMS. Para detalhes sobre os modos de controle, consulte Modos de controle .
Passe o mouse sobre
> All Features.Escolha Data+AI > Data Development > Task Orchestration.
Na página Task orchestration, clique em Create Task Flow.
Na caixa de diálogo New Task Flow, insira um Task Flow Name (por exemplo,
Order Filtering) e uma Description opcional, depois clique em OK.
Etapa 2: Adicione nós de tarefa
Na página de orquestração de tarefas Order Filtering, adicione dois nós Single Instance SQL e conecte-os.
Adicione o nó Order Cleansing
Este nó filtra os pedidos concluídos da tabela orders e os insere na tabela finish_orders.
No painel à esquerda, arraste Single Instance SQL para a tela.
Selecione o nó e clique no ícone
para renomeá-lo como Order Cleansing.Clique duas vezes no nó (ou clique no ícone
) para abrir o editor.Na lista suspensa de bancos de dados, selecione
adb_test.-
Insira a seguinte instrução SQL e clique em Save:
Se a opção Automatic Save estiver ativada, a instrução SQL será salva automaticamente.
INSERT INTO finish_orders SELECT order_id, total_price, order_date FROM orders WHERE order_status = 'F';
Adicione o nó Large Order Generation
Este nó filtra pedidos de alto valor da tabela finish_orders e os insere na tabela large_finish_orders.
Arraste outro nó Single Instance SQL para a tela.
Renomeie-o para
Large Order Generation.Abra o editor e selecione
adb_testna lista suspensa de bancos de dados.-
Insira a seguinte instrução SQL e clique em Save:
Se a opção Automatic Save estiver ativada, a instrução SQL será salva automaticamente.
INSERT INTO large_finish_orders SELECT order_id, total_price, order_date FROM finish_orders WHERE total_price > 10000;
Conecte os dois nós
Passe o mouse sobre o nó Order Cleansing. Clique no círculo na borda direita e arraste uma linha até o nó Large Order Generation. Isso cria uma dependência: o nó Large Order Generation executa somente após a conclusão do nó Order Cleansing.

Etapa 3: Agende e publique
-
Na seção Task Flow Information, abaixo da tela, ative a chave Enable Scheduling e configure os parâmetros de agendamento.
Este exemplo agenda a tarefa para execução diária às 01:00, de 1º de fevereiro de 2023 a 28 de fevereiro de 2023. Ajuste o cronograma conforme suas necessidades. Para todos os parâmetros de agendamento disponíveis, consulte Configurar agendamento .
No canto superior esquerdo da tela, clique em Publish.
Na caixa de diálogo Publish, insira quaisquer Remarks e clique em Publish.
-
Verifique se o fluxo de tarefas foi publicado: clique em Go to O&M no canto superior direito e verifique o parâmetro Released.
Valor
Significado
Published
O fluxo de tarefas está ativo e executará conforme o agendamento
Not published
O fluxo de tarefas não foi publicado com êxito
Monitore e gerencie fluxos de tarefas
Após a publicação, utilize o console de O&M do DMS para monitorar e gerenciar seus fluxos de tarefas.
Visualize o histórico e o status das execuções
No console de O&M, visualize o histórico de execução de cada fluxo de tarefas. Use essas informações para identificar execuções que falharam ou demoraram mais do que o esperado.
Trate falhas de tarefas
Quando uma tarefa falha, o console de O&M do DMS oferece operações como pausa, parada e reexecução. Para reexecutar ou tentar novamente um fluxo de tarefas, acesse o console de O&M, localize a execução com falha e escolha a ação apropriada.
Configure notificações
Para receber alertas quando uma tarefa for concluída com sucesso ou falhar, configure as notificações nas configurações do fluxo de tarefas. O DMS suporta os seguintes métodos de notificação:
DingTalk
Mensagem de texto
E-mail