As propriedades de tempo são as condições centrais de agendamento que definem quando e como o DataWorks aciona uma tarefa agendada. Elas incluem não apenas o horário agendado para definir o momento da execução, mas também um conjunto de configurações avançadas, como modo de geração de instâncias, calendário de agendamento, configurações de reexecução e políticas de tempo limite. Em conjunto, esses parâmetros formam o plano de comportamento temporal de uma tarefa, controlando suas regras de acionamento, limites de execução e recuperação automática de erros. Este guia oferece uma visão detalhada sobre como configure cada propriedade de tempo e como ela funciona, e ajuda a criar fluxos de trabalho de dados automatizados, estáveis, confiáveis e que dispensam supervisão constante.
Início rápido: Exemplo de configuração
Cenário: Uma empresa de e-commerce precisa calcular automaticamente o total de vendas do dia anterior às 02:00 todos os dias. Se a tarefa falhar devido a fatores como flutuações de rede, o sistema deve repetir a execução automaticamente 3 vezes.
-
Etapa 1: Defina o horário agendado
Defina o ciclo de agendamento: Clique duas vezes no nome da tarefa para abrir o painel de configuração da tarefa. Clique em Schedule Settings > Time Properties à direita. Defina o Scheduling Cycle como Day.
Defina o horário agendado: Defina o horário agendado para 02:00.
-
Etapa 2: Defina a política de agendamento
Defina a propriedade de reexecução: Defina a propriedade de reexecução como You can run again after successful or failed operation..
Reexecução automática em caso de falha: Selecione Auto Rerun upon Failure, defina o número de tentativas como
3e o intervalo como5 minutes.Mantenha os valores padrão para as outras propriedades.
-
Resultado:
Após a implantação da tarefa, o sistema a aciona automaticamente às 02:00 todos os dias, a partir do dia seguinte (T+1). Se a tarefa falhar, o sistema a reexecuta a cada 5 minutos. A tarefa é executada no máximo 4 vezes (1 execução normal + 3 tentativas).
Como funciona
As configurações de propriedades de tempo definem todo o ciclo de vida de uma tarefa agendada, desde a geração da instância até a execução. Elas abrangem as seguintes dimensões principais:
Horário de agendamento: Defina visualmente a frequência e o horário específico de execução da tarefa.
-
Gerenciamento do ciclo de vida da instância: Determina quando uma instância é criada e seu período de validade. Inclui:
Modo de geração de instâncias: Controla se as instâncias são geradas no dia da implantação ou no dia seguinte.
Período de vigência: Define o intervalo de validade geral da tarefa.
Calendário de agendamento: Exclui dias não úteis (como feriados).
Política de execução: Define o comportamento da instância quando o horário agendado é atingido, por meio do tipo de agendamento. Determina se a instância é executada normalmente, se passa por uma execução simulada (dry run) ou se é suspensa.
Tratamento de exceções e tolerância a falhas: Fornece mecanismos de tratamento automático para exceções, como falhas de execução ou tempos limite, por meio de definições de tempo limite e configurações de reexecução.
Horário de agendamento
O horário de agendamento controla quando uma tarefa tem sua execução planejada (também conhecido como horário agendado) e determina com que frequência um nó de tarefa é acionado automaticamente no ambiente de produção. Com base no ciclo configurado, o sistema gera o número correspondente de instâncias periódicas para a tarefa e conduz a execução automatizada de todo o fluxo de trabalho por meio do horário agendado e das dependências de agendamento dessas instâncias.
O horário agendado e a data de negócios (business date) são os dois conceitos de tempo base mais importantes no DataWorks. Para obter mais informações, consulte Scheduled time and business date.
Independência e dependências dos ciclos de agendamento
Independência de frequência: A frequência de agendamento de uma tarefa (como "por hora" ou "diária") depende da sua própria configuração e é independente da frequência de suas tarefas upstream. Por exemplo, uma tarefa de relatório com agendamento diário pode depender de uma tarefa de preparação de dados com agendamento horário. Para obter mais informações sobre configurações de dependência em diferentes frequências de ciclo, consulte Configure cross-cycle dependencies.
Dependência de instância: As dependências entre tarefas com diferentes ciclos de agendamento (dependências entre ciclos) são, na essência, dependências de instâncias. O sistema resolve essas dependências automaticamente e garante que uma instância downstream cumpra as condições de dependência somente após todas as instâncias upstream correspondentes à sua data de negócios serem concluídas com êxito.
Mecanismo de execução simulada (dry run): Para evitar bloqueios, tarefas não agendadas diariamente (como tarefas semanais, mensais ou anuais) geram uma instância de execução simulada nos dias em que não são executadas. O sistema marca imediatamente essa instância como bem-sucedida sem executar código ou consumir recursos, garantindo que as tarefas downstream agendadas diariamente possam ser acionadas normalmente.
Horário agendado versus horário de execução real
Horário agendado: O horário definido na configuração de agendamento é o horário de início esperado da tarefa, ou seja, o horário mínimo para o início da execução da tarefa.
-
Horário de execução real: O horário de início real da tarefa depende do atendimento simultâneo das duas condições a seguir:
Todas as instâncias upstream foram concluídas com êxito.
Há recursos de computação disponíveis.
Fuso horário de agendamento
O horário de agendamento de uma tarefa utiliza o fuso horário correspondente à região do seu workspace por padrão. Para alterar o fuso horário, consulte Configure the scheduling time zone para cenários como transições de horário de verão. Supported time zones
A seguir, são apresentados exemplos de configuração para cada cenário:
Agendamento no nível de minutos
Defina o horário de início, o horário de término e o intervalo de execução. O intervalo mínimo é de 1 minuto. Dentro do intervalo de tempo especificado, o sistema gera várias instâncias em intervalos fixos.
Exemplo de configuração
O nó de destino é agendado a cada 30 minutos no intervalo de 00:00 a 23:59 todos os dias.
Detalhes da instância
A figura a seguir mostra os horários agendados e a substituição dos parâmetros de agendamento para instâncias de um nó que é agendado a cada 30 minutos.
Agendamento no nível de horas
Indicado para cenários de sincronização de alta frequência ou computação quase em tempo real.
-
Lógica de geração de instâncias: O sistema calcula instâncias periódicas com base em um intervalo fechado [horário de início, horário de término].
Exemplo: Se o intervalo de tempo for definido como
[00:00,03:00]e o intervalo de execução for de1 hour, o sistema gerará 4 instâncias com horários de execução agendados para 00:00, 01:00, 02:00 e 03:00.
-
Métodos de configuração:
Acionamento baseado em intervalo: Execute a tarefa ciclicamente em um intervalo fixo (como a cada hora) dentro do período especificado.
Acionamento em horário específico: Execute a tarefa em um ou mais horários específicos.
Exemplo de configuração
A tarefa de destino é agendada automaticamente a cada 6 horas no intervalo de 00:00 a 23:59 todos os dias.
Detalhes do agendamento
O sistema de agendamento gera 4 instâncias por dia e as executa nos horários agendados de 00:00, 06:00, 12:00 e 18:00.
Agendamento no nível de dias
O agendamento no nível de dias é o método mais comum. Ele permite executar uma tarefa uma vez por dia em um horário especificado dentro de um período de validade. Por padrão, as tarefas recém-criadas usam o agendamento no nível de dias, e o horário agendado é gerado aleatoriamente no intervalo de 00:00 a 00:30. Especifique um horário de execução personalizado conforme necessário. Por exemplo, defina a tarefa para ser executada uma vez por dia às 13:00.
Exemplo de configuração
Defina o Scheduling Cycle como Day e o Scheduled Time como 13:00. O sistema gera automaticamente a expressão cron 00 00 13 * * ?.
Detalhes do agendamento
O sistema de agendamento gera e executa instâncias para a tarefa automaticamente. A figura a seguir mostra os horários de processamento de dados para cada data de negócios.
Agendamento no nível de semanas
Recomendado para agregações de negócios semanais ou manutenção periódica de dados executada em uma frequência fixa semanal.
Lógica de geração de instâncias: O sistema gera instâncias todos os dias dentro do período de validade.
Execução normal: A lógica do código é acionada conforme o agendamento apenas nos dias de execução selecionados (como segunda e sexta-feira).
Execução simulada automática: O sistema marca automaticamente as instâncias geradas em dias não selecionados (como terça, quarta, quinta, sábado e domingo) com o status de "execução simulada bem-sucedida". O sistema não executa a lógica do código nem consome recursos de computação.
Exemplo de configuração
Se a tarefa de destino estiver configurada para ser executada na segunda e na sexta-feira de cada semana, as instâncias geradas nesses dias serão agendadas e executadas normalmente. As instâncias geradas nos outros cinco dias (terça, quarta, quinta, sábado e domingo) serão instâncias de execução simulada. Quando o horário agendado for atingido, o sistema marcará diretamente essas instâncias com o status de bem-sucedida, sem executar a lógica do código.
Defina o Scheduled Time como 13:00. O sistema gera automaticamente a expressão cron 00 00 13 ? * 1,5.
Detalhes do agendamento
O sistema de agendamento gera e executa instâncias para a tarefa automaticamente.
Agendamento no nível de meses
Projetado para cenários em que os dados são processados mensalmente. Este é um ciclo de agendamento comumente usado para tarefas principais, como liquidações financeiras, relatórios de desempenho mensal e análises mensais de comportamento do usuário.
Lógica de geração de instâncias: O sistema gera instâncias com base nos dias específicos do mês selecionados. Cada instância mensal representa um mês civil completo.
Execução normal: A lógica do código é acionada conforme o agendamento apenas nos dias de execução selecionados (como o dia 15 ou o último dia de cada mês).
Execução simulada automática: O sistema marca automaticamente as instâncias geradas em dias não selecionados (como do dia 1 ao dia 14 de cada mês) com o status de "execução simulada". O sistema não executa a lógica do código nem consome recursos de computação.
Exemplo de configuração
Se a tarefa de destino estiver configurada para executar a liquidação no último dia de cada mês, a instância gerada no último dia de cada mês será agendada e executada normalmente. As instâncias geradas em outras datas serão de execução simulada. Isso significa que, quando o horário agendado é atingido, o sistema as marca automaticamente com o status de bem-sucedida, sem executar nenhuma lógica de código.
Neste exemplo, o Specified Time é definido como the 15th of each month e the last day of each month, e o scheduled time é definido como 02:00. O sistema gera automaticamente a expressão cron 00 00 02 15,L * ?.
Detalhes do agendamento
O sistema de agendamento gera e executa instâncias para a tarefa automaticamente.
-
Ao usar o recurso backfill data para fazer backfill de dados de uma tarefa agendada mensalmente, observe que a data selecionada é o data timestamp, em que data timestamp = scheduled date - 1.
Exemplos:
Para uma tarefa agendada no primeiro dia de cada mês, selecione o data timestamp como o último dia do mês anterior ao fazer o backfill de dados.
Para uma tarefa agendada no último dia de cada mês, selecione o data timestamp como o dia anterior ao último dia do mês ao fazer o backfill de dados.
Se você selecionar um data timestamp diferente para o backfill, as instâncias de backfill serão de execução simulada.
Para mais cenários de dependência, consulte Dependency scenarios.
Agendamento no nível de anos
Mais indicado para tarefas de dados de ciclo longo, como resumos trimestrais, auditorias anuais ou processamentos relacionados a feriados específicos.
-
Lógica de geração de instâncias: As instâncias são geradas para todos os 365 dias do ano, mas o sistema aciona a execução real apenas nos meses e datas especificados.
Combinações flexíveis: Há suporte para a seleção de várias datas em meses diferentes. Por exemplo, execute uma tarefa apenas no primeiro ou no último dia de cada trimestre.
Mecanismo de execução simulada: Em datas que não cumprem as condições de execução, as instâncias passam por execução simulada em segundos. O sistema não executa a lógica nem consome recursos de computação.
Exemplo de configuração
Se a tarefa de destino estiver configurada para ser executada no primeiro e no último dia de janeiro, abril, julho e outubro de cada ano, as instâncias geradas nessas datas especificadas serão agendadas e executadas normalmente. As instâncias geradas em outras datas serão de execução simulada. Isso significa que, quando o horário agendado é atingido, o sistema as marca automaticamente com o status de bem-sucedida, sem executar nenhuma lógica de código.
Neste exemplo, o Specified Time é definido como the last day of each month, e o scheduled time é definido como 00:00. O sistema gera automaticamente a expressão cron 00 00 00 L 1,4,7,10 ?.
Detalhes do agendamento
O sistema de agendamento gera e executa instâncias para a tarefa automaticamente.
A expressão cron é gerada automaticamente com base no horário selecionado e não pode ser modificada manualmente.
Gerenciamento do ciclo de vida da instância
Essas configurações determinam se as instâncias da tarefa são criadas. Elas não se referem ao horário de execução específico de uma tarefa. Em vez disso, controlam em nível macro se as instâncias devem ser criadas e se as próprias regras de agendamento são válidas.
Modo de geração de instâncias: Determina se as alterações de configuração entram em vigor no dia atual ou no dia seguinte. O modo de dia seguinte (padrão) garante que as alterações não interfiram nas tarefas do dia atual, permitindo uma transição suave. O modo imediato força a redefinição das instâncias do dia atual para aplicar as alterações. Use este modo apenas para correções urgentes depois de compreender totalmente o impacto e avaliar os riscos.
Período de vigência: Define o intervalo de tempo válido para todo o conjunto de regras de agendamento.
Calendário de agendamento: Permite vincular o agendamento a um calendário específico, como a execução apenas em dias úteis. Isso oferece um controle mais flexível do que um ciclo semanal.
Modo de geração de instâncias
Após a implantação de um nó no sistema de agendamento de produção, a plataforma gera Auto Triggered Instances com base no Instance Generation Mode configurado para o nó, que inclui Next Day e Immediately After Deployment. Independentemente do modo de geração de instâncias, visualize as dependências mais recentes da tarefa na página Cycle Task no Operation Center. No entanto, o momento em que as auto triggered instances entram em vigor e as dependências são atualizadas depende do modo de geração de instâncias selecionado, conforme descrito a seguir.
Para garantir que as instâncias geradas imediatamente após a implantação sejam agendadas normalmente sem execuções simuladas expiradas, certifique-se de que o scheduled time da tarefa seja pelo menos 10 minutos posterior ao deployment time. A tarefa só executa a lógica do código ou regenera instâncias com base na configuração de agendamento mais recente em um horário efetivo que seja pelo menos 10 minutos após a implantação.
Independentemente do modo de geração de instâncias selecionado, as alterações feitas durante o período das 22:00~24:00 entram em vigor no terceiro dia após a implantação do nó no ambiente de produção. Evite fazer alterações na tarefa durante esse período.
Modo de geração de instâncias | Descrição |
T+1 dia seguinte (recomendado) |
|
As instâncias para o dia atual são geradas imediatamente após a implantação do nó. Uma instância é acionada normalmente apenas quando o horário agendado é pelo menos 10 minutos posterior ao horário de implantação. Se o horário agendado for anterior a esse limite (incluindo horários passados e horários dentro do período de buffer), a instância entra automaticamente em um estado de dry-run, ou seja, o sistema a marca diretamente como bem-sucedida sem executar nenhum código.
|
Diferença na forma como o código da tarefa e as configurações de agendamento entram em vigor: Independentemente do modo de geração de instâncias, uma instância sempre lê o código mais recente da tarefa no momento da execução. No entanto, as configurações de agendamento (como parâmetros de agendamento e políticas de reexecução) são congeladas na instância no momento da sua geração. Se modificar a configuração de agendamento após a geração de uma instância, a instância existente não sincroniza as alterações automaticamente e continua sendo executada com a configuração antiga do momento da geração. Para aplicar alterações, use Refresh Instance no Operation Center para atualizar a configuração de agendamento das instâncias existentes no local. Se precisar apenas que uma execução específica use a configuração mais recente, execute um backfill para a tarefa para reexecutá-la com a configuração mais recente. Para obter mais informações, consulte Instance generation mode: Immediately after deployment.
Período de vigência
Define o intervalo de tempo válido para o agendamento automático de tarefas. Após o término do período de vigência, a tarefa não gera mais instâncias e se torna uma tarefa expirada. Monitore e gerencie essas tarefas no O&M overview.
Calendário de agendamento
Usado para definir as datas e os métodos de agendamento para tarefas. O DataWorks oferece suporte aos seguintes dois tipos de calendários:
Calendário padrão: Fornecido pela plataforma e aplicável a cenários gerais.
Calendário de agendamento personalizado: Definido pelo usuário e aplicável a setores e cenários que exigem datas de agendamento flexíveis (por exemplo, o setor financeiro), configure regras como os workspaces aos quais o calendário se aplica, o período de vigência do calendário e os métodos de agendamento para tarefas em datas especificadas. Para obter mais informações, consulte Custom scheduling calendar.
Combine o calendário de agendamento selecionado com scheduled time, instance generation mode e outras configurações de agendamento para agendar tarefas em horários especificados.
Política de execução
Esta configuração define como uma tarefa é executada após ser acionada.
Tipo de agendamento
Os tipos de agendamento suportados pelo DataWorks estão descritos na tabela a seguir.
|
Tipo de agendamento |
Impacto |
Caso de uso |
|
Normal |
Execute o código normalmente e aciona tarefas downstream. |
Uma tarefa periódica executada em estado normal, cujas instâncias periódicas geradas também são executadas nesse estado. |
|
Suspend scheduling |
Quando o horário agendado é atingido, o sistema não executa a instância e a marca como falha, o que bloqueia as tarefas downstream. Suspender o agendamento equivale a congelar no Operation Center. Um nó com agendamento suspenso exibe o ícone de congelamento |
Indicado para truncamento de emergência de fluxos de trabalho. Quando um fluxo de trabalho não precisa ser executado por um período, selecione este tipo de agendamento para congelar o nó raiz do fluxo de trabalho. Quando o fluxo de trabalho precisar ser executado novamente, descongele o nó raiz. Para obter mais informações sobre como descongelar tarefas, consulte Unfreeze a task. |
|
Dry Run |
Quando o horário agendado é atingido, o sistema marca diretamente a instância como bem-sucedida (com duração de execução de |
Quando um nó não precisa ser executado por um período e você não deseja bloquear seus nós downstream, selecione este tipo de agendamento. |
Tratamento de exceções e tolerância a falhas
Essas configurações são fundamentais para garantir a estabilidade do pipeline de dados ao predefinir planos de resposta para várias exceções possíveis.
Propriedade de reexecução: Define se e como o sistema deve reexecutar automaticamente uma tarefa em caso de falha.
Configurações de tempo limite: Define uma duração máxima de execução adequada para uma tarefa. Se a tarefa exceder essa duração, o sistema poderá acionar um alerta automaticamente ou encerrar a tarefa, evitando que um único nó fique travado e consuma recursos em excesso.
Definição de tempo limite
Define a duração máxima de execução permitida para uma tarefa. Se a duração da execução exceder esse valor, o sistema encerra a tarefa automaticamente e a marca como falha para evitar que fique travada e afete todo o fluxo de trabalho.
Escopo: Aplica-se a instâncias periódicas, instâncias de backfill e instâncias de teste.
Valor padrão: O padrão é de 3 a 7 dias, ajustado dinamicamente pelo sistema com base na carga real.
Limites: O valor máximo configurável manualmente é de 168 horas (7 dias), e o mínimo é de 1 minuto.
Descrição de reexecução
As políticas de reexecução implementam a recuperação automática de falhas para tarefas.
Ao usar a propriedade de reexecução, garanta que as tarefas sejam idempotentes (exceto para tarefas especiais) para evitar problemas de qualidade de dados após a reexecução de uma tarefa em caso de falha. Por exemplo, use a instrução
insert overwriteem vez da instruçãoinsert intodurante o desenvolvimento em ODPS SQL.
-
Propriedade de reexecução: As políticas de reexecução implementam a recuperação automática de falhas para tarefas.
Tipo
Caso de uso
Allow Rerun Regardless of Running Status
Indicado para tarefas idempotentes, que podem ser executadas repetidamente sem afetar os resultados.
Do not re-run after successful operation, and re-run after failure.
Evita a contaminação de dados causada pela reexecução acidental de uma tarefa bem-sucedida.
Disallow Regardless of Running Status
Indicado para tarefas não idempotentes (como certas tarefas de sincronização de dados). Ao selecionar esta opção, o recurso Auto Rerun upon Failure fica indisponível.
-
Reexecução automática em caso de falha: Quando uma tarefa falha, o sistema aciona automaticamente uma reexecução.
Parâmetro
Descrição
Rerun Times
Número de tentativas automáticas após a falha. Valores válidos: 1 a 10.
Rerun Interval
Intervalo entre as tentativas. Valores válidos: 1 a 30 minutos.
NotaFalhas causadas por tempo limite não acionam reexecuções automáticas.
Perguntas frequentes e melhores práticas
-
P: Por que o horário de execução real de uma tarefa difere do horário agendado?
R: O horário agendado é apenas o horário de início esperado de uma tarefa. A execução real também exige que duas condições sejam atendidas: ① Todas as tarefas upstream foram executadas com êxito. ② Há recursos de agendamento disponíveis. Se qualquer uma das condições não for atendida, a tarefa permanecerá em estado de espera.
Além disso, se o horário agendado for definido por volta de
00:00, a instância poderá apresentar um atraso de alguns minutos antes de ser acionada, pois esse período é o pico de agendamento do DataWorks. Isso é normal. Para obter detalhes, consulte a próxima pergunta. -
P: O horário agendado de uma tarefa é 00:00. Por que a instância começa a ser executada com vários minutos de atraso?
R: O período por volta das
00:00diárias representa o pico de agendamento do DataWorks. Um grande número de tarefas é acionado ao mesmo tempo, e normalmente há um atraso de alguns minutos entre o horário agendado e o início real de uma instância. Esse atraso ocorre durante a fase de acionamento da tarefa e é normal. Não é necessário que você envie um ticket.Para reduzir o atraso de acionamento, defina o horário agendado para um horário após
00:00e evite os horários de pico. Se o seu negócio exigir o acionamento às00:00, considere esse atraso ao avaliar a latência do seu pipeline. -
P: Minha tarefa upstream é executada em um agendamento por hora e minha tarefa downstream é executada em um agendamento diário. Elas podem depender uma da outra?
R: O DataWorks oferece suporte a dependências entre tarefas com diferentes ciclos de agendamento. O sistema usa um algoritmo complexo de resolução de dependências para garantir que uma tarefa downstream aguarde corretamente a conclusão de todas as suas instâncias upstream antes de ser executada. Para obter detalhes, consulte Cross-cycle dependency principles.
-
P: Fiz o backfill de dados da última sexta-feira. Por que a variável bizdate não mostra a data da sexta-feira?
R: Isso geralmente acontece porque há confusão entre "data timestamp" (bizdate) e "data de execução". No DataWorks, bizdate = horário agendado − 1 dia. Ao fazer o backfill de uma tarefa cujo horário agendado é no início da manhã de sábado, o bizdate a ser selecionado é a sexta-feira.
-
P: Minha tarefa contém lógica de gravação de dados. Os dados serão duplicados se eu executar a tarefa novamente?
R: É possível. Portanto, garanta a idempotência da tarefa. Para tarefas de gravação de dados, use
INSERT OVERWRITE(sobrescrever) em vez deINSERT INTO(anexar) para garantir resultados consistentes em várias reexecuções.