Configure as propriedades de agendamento — cronograma, dependências e parâmetros — para nós e workflows, permitindo sua execução recorrente.
Pré-requisitos
Crie um nó. Diferentes tarefas de motor utilizam tipos distintos de nós. Desenvolver nós.
A chave Enable Periodic Scheduling está ativada para o workspace. Ative-a na página Scheduling Settings. Configurações do sistema.
Observações
As configurações de agendamento entram em vigor somente após a implantação da tarefa em produção.
O horário de agendamento define o tempo esperado de execução. O horário real depende do status dos nós ancestrais. Diagnosticar execuções de tarefas.
O DataWorks suporta dependências entre diversos tipos de tarefas. Consulte Princípios e exemplos para configuração de agendamento em cenários de dependência complexa antes de configurar dependências complexas.
Uma tarefa agendada gera instâncias agendadas com base em seu tipo e período de agendamento. Por exemplo, uma tarefa horária gera instâncias horárias diariamente para executar a tarefa automaticamente.
Ao utilizar parâmetros de agendamento, o horário agendado e as expressões de parâmetro determinam os valores passados ao código. Fontes e expressões de parâmetros de agendamento.
Um workflow inclui o nó do workflow e seus nós internos, criando dependências complexas. Este tópico aborda apenas a configuração de agendamento para nós individuais. Orquestrar workflows recorrentes.
Acessar a página de configuração de agendamento
Acesse a página Workspaces no console do DataWorks. Na barra de navegação superior, selecione a região desejada. Localize o workspace e escolha na coluna Actions.
-
Navegue até a página de configuração de agendamento.
No Data Studio, abra o editor do nó alvo.
Clique em Schedule Settings no painel de navegação à direita da página do editor de nós.
Configurar propriedades de agendamento do nó
A página de configuração de agendamento inclui as seções Scheduling Parameters, Scheduling Policy, Scheduling Time, Scheduling Dependencies e Node Output Parameters.
(Opcional) Parâmetros de agendamento
Caso tenha definido variáveis no código do nó, atribua valores a elas nesta seção.
Os parâmetros de agendamento são substituídos automaticamente por valores com base na data de negócios e nas expressões de parâmetro, permitindo a substituição dinâmica durante as execuções da tarefa.
Configurar parâmetros de agendamento
Defina parâmetros de agendamento das duas formas seguintes.
|
Método |
Descrição |
Exemplo |
|
Adicionar parâmetro |
Configure múltiplos parâmetros de agendamento por tarefa. Clique em Add Parameter para adicionar mais.
|
|
|
Carregar parâmetros do código |
Este método identifica automaticamente variáveis definidas no código da tarefa e as adiciona como parâmetros de agendamento. Nota
Geralmente, as variáveis são definidas no código no formato Nós PyODPS e Shell definem variáveis de forma diferente de outros nós. Para os formatos de configuração de parâmetros de agendamento de cada tipo de nó, consulte Configurar parâmetros de agendamento para diferentes tipos de nó. |
|
Formatos suportados para parâmetros de agendamento
Verificar configurações de parâmetros de agendamento para tarefas de produção
Para evitar valores inesperados de parâmetros de agendamento durante a execução, verifique a configuração dos parâmetros na página Scheduled Tasks no Operation Center após a implantação. Visualizar tarefas agendadas.
Política de agendamento
A política de agendamento define como as instâncias são geradas, o tipo de agendamento, os recursos de computação e os grupos de recursos para uma tarefa.
|
Parâmetro |
Descrição |
|
Modo de geração de instância |
Após o envio e a implantação de um nó em produção, o sistema gera Scheduled Instances com base no Instance Generation Mode.
|
|
Tipo de agendamento |
|
|
Timeout |
Se uma tarefa exceder o timeout especificado, ela será encerrada automaticamente.
|
|
Propriedades de reexecução |
Configure o comportamento de reexecução do nó. As propriedades de reexecução não podem estar vazias. Os tipos suportados são:
|
|
Reexecução automática em caso de falha |
Quando ativada, se uma tarefa falhar (exceto por encerramento manual), o sistema a reexecuta automaticamente com base na contagem e no intervalo configurados.
Nota
|
|
Recurso de computação |
Configure o recurso de motor para a tarefa. Para criar um recurso, consulte Gerenciar recursos de computação. |
|
Cota de computação |
Configure a cota de computação necessária para a execução da tarefa no MaxCompute ou EMR. A cota fornece recursos de computação (CPU e memória) para jobs de computação. |
|
Grupo de recursos |
Selecione o grupo de recursos de agendamento para a tarefa.
|
|
Máximo de instâncias simultâneas |
Limita o número máximo de instâncias simultâneas da mesma tarefa para controle de concorrência e proteção de recursos. Por padrão, nenhum limite é definido. Após ativar o limite, defina o número de instâncias simultâneas. O valor padrão é
|
|
Dataset |
Clique em
|
Horário de agendamento
O horário de agendamento define o período e o momento para a execução automática de uma tarefa.
Para nós dentro de um workflow, os parâmetros de Scheduling Time são configurados na seção Schedule Settings da página do workflow. Para nós independentes que não fazem parte de um workflow, o Scheduling Time é configurado na seção Schedule Settings de cada nó.
Observações
-
A frequência de agendamento de uma tarefa não está relacionada às suas tarefas upstream
A frequência com que uma tarefa é agendada depende do seu próprio período de agendamento, e não do período de agendamento de suas tarefas upstream.
-
O DataWorks suporta dependências entre tarefas com diferentes períodos de agendamento
No DataWorks, uma tarefa agendada gera instâncias agendadas correspondentes com base em seu tipo e período de agendamento. Por exemplo, uma tarefa horária gera um número específico de instâncias horárias todos os dias. As tarefas executam por meio de suas instâncias. As dependências configuradas para tarefas agendadas são, essencialmente, dependências entre as instâncias geradas por essas tarefas. Quando tarefas upstream e downstream possuem tipos de agendamento diferentes, o número de instâncias geradas e as relações de dependência entre elas também diferem. Para mais informações sobre dependências entre tarefas com diferentes períodos de agendamento, consulte Dependência entre ciclos.
-
Tarefas realizam execução simulada fora de seu horário agendado
No DataWorks, tarefas que não são agendadas diariamente (como tarefas semanais ou mensais) realizam uma execução simulada fora de seu horário agendado, retornando imediatamente um status de sucesso quando o horário agendado é atingido. Se existir uma tarefa diária downstream, a execução simulada aciona a tarefa diária downstream para que execute normalmente. Em outras palavras, a tarefa upstream realiza uma execução simulada, enquanto a tarefa agendada downstream executa normalmente com base em seu próprio horário agendado.
-
Observações sobre o tempo de execução da tarefa
O horário configurado é o tempo esperado de agendamento. A execução real depende da conclusão das tarefas upstream, da disponibilidade de recursos e de outras condições. Condições de execução de tarefas.
Configurar horário de agendamento
|
Parâmetro |
Descrição |
|
Agendamento |
O agendamento define o período em que a tarefa executa automaticamente em produção. Uma tarefa gera instâncias agendadas com base em seu agendamento. Por exemplo, uma tarefa horária gera instâncias horárias diariamente para executar a tarefa automaticamente.
Importante
Para agendamentos semanais, mensais e anuais, instâncias ainda são geradas diariamente fora do horário agendado. Essas instâncias mostram um status de sucesso, mas na verdade realizam uma execução simulada e não executam a tarefa efetivamente. |
|
Data de vigência |
O nó é agendado automaticamente dentro do intervalo de datas de vigência especificado. Tarefas expiradas deixam de ser agendadas. Visualize a contagem de tarefas expiradas na página Visão geral de O&M e cancele a implantação delas conforme necessário. |
|
Expressão Cron |
Esta expressão é gerada automaticamente com base na configuração das propriedades de tempo. Nenhuma configuração manual é necessária. |
Dependências de agendamento
As dependências de agendamento definem as relações upstream-downstream entre nós. Um nó downstream inicia apenas após o sucesso de seus nós upstream. Isso garante que a tarefa downstream leia dados corretos e totalmente produzidos.
Observações
Após configurar as dependências do nó, por padrão, uma das condições de execução para um nó downstream durante a execução agendada é que todos os seus nós upstream tenham sido concluídos com sucesso. Caso contrário, podem ocorrer problemas de qualidade de dados na tarefa atual.
O tempo real de execução depende tanto do horário agendado da própria tarefa quanto do tempo de conclusão de suas tarefas upstream. Se uma tarefa upstream não tiver sido concluída, a tarefa downstream aguardará, mesmo que seu horário agendado já tenha chegado. Diagnosticar execuções de tarefas.
Configurar dependências de agendamento
O objetivo de configurar dependências de tarefas é garantir que as tarefas downstream leiam dados corretos. As dependências são, essencialmente, linhagens de dependência entre tabelas upstream e downstream. Configure as dependências com base na linhagem das tabelas conforme necessário.
As dependências de nós criam uma dependência forte por padrão — a tabela downstream depende da produção de dados da tabela upstream. Determine se existe uma dependência forte de linhagem antes de configurar.
|
Etapa |
Descrição |
|
① |
Para evitar horários de execução inesperados para a tarefa atual, avalie primeiro se existe uma dependência forte entre as tabelas para determinar se as dependências de agendamento precisam ser configuradas com base na linhagem. |
|
② |
Determine se os dados upstream são produzidos por uma tarefa agendada do DataWorks. O DataWorks não consegue monitorar a produção de dados para tabelas não produzidas por suas tarefas agendadas, portanto, algumas tabelas não suportam a configuração de dependência de agendamento. Tabelas que não são produzidas pelo agendamento periódico do DataWorks incluem, mas não se limitam aos seguintes tipos:
|
|
③④ |
Com base na necessidade de depender de dados upstream de ontem ou de hoje, e se tarefas horárias ou por minuto precisam depender da instância horária ou por minuto anterior, escolha entre dependência de mesmo ciclo ou ciclo anterior no upstream.
|
|
⑤⑥⑦ |
Após concluir a configuração de dependência e implantá-la em produção, verifique se as dependências da tarefa atendem às suas expectativas visualizando a página Scheduled Tasks no Operation Center. |
Personalizar dependências de nó
Se não houver uma dependência forte de linhagem entre as tarefas (por exemplo, a tarefa lê apenas os dados da partição mais recente), ou se os dados dependentes não forem produzidos por um nó agendado (por exemplo, dados carregados localmente), personalize as dependências do nó:
-
Depender do nó raiz do workspace
Por exemplo, quando os dados upstream em uma tarefa de sincronização vêm de outros bancos de dados de negócios, ou uma tarefa do tipo SQL processa dados de tabela produzidos por uma tarefa de sincronização em tempo real, monte a dependência diretamente no nó raiz do workspace.
-
Depender de um nó virtual
Utilize nós virtuais para gerenciar processos de negócios complexos. Monte nós relacionados como dependências de um nó virtual para controlar o horário geral de agendamento ou congelar um processo de negócios.
Parâmetros de saída do nó
Defina parâmetros de saída em um nó upstream e referencie-os como parâmetros de entrada em nós downstream para passar valores entre tarefas.
Observações
Os Output Parameters do nó só podem ser usados como parâmetros de entrada para nós downstream (adicione um parâmetro na seção de parâmetros de agendamento do nó downstream e clique em
na coluna Actions para associá-lo a um parâmetro upstream). Alguns nós não conseguem passar diretamente resultados de consulta de upstream para downstream. Se precisar passar os resultados de consulta de um nó upstream para um nó downstream, utilize um nó de atribuição. Para mais informações, consulte Usar nós de atribuição.Os seguintes nós suportam parâmetros de saída: nós
EMR Hive,EMR Spark SQL,ODPS Script,Hologres SQL,AnalyticDB for PostgreSQLeMySQL.
Configurar parâmetros de saída do nó
Os valores dos Node Output Parameters podem ser de dois tipos: Constant e Variable.
Após definir os parâmetros de saída e enviar o nó atual, associe os Associate Upstream Node Output Parameters como parâmetros de entrada ao configurar os parâmetros de agendamento para o nó downstream.

Nome do parâmetro: O nome do parâmetro de saída definido.
-
Valor do parâmetro: O valor do parâmetro de saída. Os tipos de valor incluem constante e variável:
Uma constante é uma string fixa.
Uma variável pode ser uma variável global suportada pelo sistema, um parâmetro de agendamento integrado ou um parâmetro personalizado.
Configurar a função associada para um nó
O recurso de função associada permite especificar uma função RAM para um nó de tarefa. Durante a execução, a tarefa obtém dinamicamente credenciais STS temporárias para a função, permitindo que seu código acesse outros recursos de nuvem sem pares de AccessKey permanentes.
Restrição de grupo de recursos: Apenas nós executados em grupos de recursos serverless são suportados.
Restrição de tipo de nó: Apenas nós Python, Shell, Notebook, PyODPS 2 e PyODPS 3 são suportados.
Etapa 1: Configurar a função associada para um nó do DataWorks
No lado direito da página do editor de nós, localize e clique em Run Configuration.
No painel de configuração de agendamento, alterne para a aba Associated Role.
-
Na lista suspensa RAM Role, selecione a função RAM preparada.
ImportanteSe a lista suspensa estiver vazia ou se você não conseguir encontrar a função desejada, consulte Configurar uma função RAM para concluir a configuração da função RAM.
Após concluir a configuração, envie o nó. Esta configuração entra em vigor apenas para execuções de depuração.
Etapa 2: Obter e usar credenciais temporárias no código
Após configurar a função associada, o DataWorks injeta as credenciais temporárias obtidas no ambiente de execução quando a tarefa roda. Obtenha-as em seu código das duas maneiras seguintes.
Método 1: Ler variáveis de ambiente (recomendado para Shell e Python)
O sistema define automaticamente as três variáveis de ambiente a seguir, que podem ser lidas diretamente no código.
LINKED_ROLE_ACCESS_KEY_ID: O AccessKey ID temporário.LINKED_ROLE_ACCESS_KEY_SECRET: O AccessKey secret temporário.LINKED_ROLE_SECURITY_TOKEN: O token de segurança temporário.
Exemplo de código (Python):
Este exemplo requer uma imagem Python personalizada com oss2 instalado. Usar imagens personalizadas.
import os
import oss2
# 1. Get temporary credentials from environment variables
access_key_id = os.environ.get('LINKED_ROLE_ACCESS_KEY_ID')
access_key_secret = os.environ.get('LINKED_ROLE_ACCESS_KEY_SECRET')
security_token = os.environ.get('LINKED_ROLE_SECURITY_TOKEN')
# Check whether the credentials are obtained
if not all([access_key_id, access_key_secret, security_token]):
raise Exception("Failed to get linked role credentials from environment variables.")
# 2. Use temporary credentials to initialize the OSS client
# Assume that you have granted the role access to 'your-bucket-name'
auth = oss2.StsAuth(access_key_id, access_key_secret, security_token)
bucket = oss2.Bucket(auth, 'http://oss-<regionID>-internal.aliyuncs.com', 'your-bucket-name')
# 3. Use the client to access OSS resources
try:
# List objects in the bucket
for obj in oss2.ObjectIterator(bucket):
print('object name: ' + obj.key)
print("Successfully accessed OSS with linked role.")
except oss2.exceptions.OssError as e:
print(f"Error accessing OSS: {e}")
Exemplo de código (Shell):
#!/bin/bash access_key_id=${LINKED_ROLE_ACCESS_KEY_ID} access_key_secret=${LINKED_ROLE_ACCESS_KEY_SECRET} security_token=${LINKED_ROLE_SECURITY_TOKEN} # Access OSS. Replace regionID, bucket_name, and file_name with actual values. echo "ID:"$access_key_id echo "token:"$security_token ls -al /home/admin/usertools/tools/ # This example uses ossutil to download a file from a specified OSS path to the local file test_dw.py, and then prints the file content. /home/admin/usertools/tools/ossutil64 cp --access-key-id $access_key_id --access-key-secret $access_key_secret --sts-token $security_token --endpoint http://oss-<regionID>-internal.aliyuncs.com oss://<bucket_name>/<file_name> test_dw.py echo "** Retrieved successfully **, printing result" cat test_dw.py
Método 2: Usar o Credentials Client (recomendado para Python)
Exemplo de código (Python):
Este exemplo requer uma imagem Python personalizada com oss2 e alibabacloud_credentials instalados. Usar imagens personalizadas.
from alibabacloud_credentials.client import Client as CredentialClient
import oss2
# 1. Use the SDK to automatically obtain credentials
# It automatically looks for LINKED_ROLE_* credential information in environment variables
cred_client = CredentialClient()
credential = cred_client.get_credential()
access_key_id = credential.get_access_key_id()
access_key_secret = credential.get_access_key_secret()
security_token = credential.get_security_token()
if not all([access_key_id, access_key_secret, security_token]):
raise Exception("Failed to get linked role credentials via SDK.")
# 2. Use the credentials to initialize the OSS client
auth = oss2.StsAuth(access_key_id, access_key_secret, security_token)
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'your-bucket-name')
# 3. Access OSS
print("Listing objects in bucket...")
for obj in oss2.ObjectIterator(bucket):
print(' - ' + obj.key)
print("Successfully accessed OSS with linked role via SDK.")
Etapa 3: Executar e verificar
Shell, Python: Durante a execução, a tarefa usa a função RAM especificada para acessar outros serviços da Alibaba Cloud.
PyODPS: Ao acessar outros serviços da Alibaba Cloud (como OSS), a tarefa usa a função RAM configurada. No entanto, ao acessar dados do MaxCompute, a tarefa ainda utiliza a identidade de acesso configurada para o recurso de computação (no nível do projeto).
Configurar propriedades de agendamento
Após depurar o nó, sincronize a Associated Role de Run Configuration para em Schedule Settings. Após a implantação, a tarefa executará com a identidade da função especificada.
Se você configurou uma imagem personalizada em Run Configuration , também deve sincronizar as configurações para a configuração de agendamento.
Visualizar a função de execução no Operation Center
Após a conclusão da execução da tarefa, visualize os detalhes da instância da tarefa no Operation Center para confirmar se a função especificada foi utilizada com sucesso.
Acesse .
Localize a instância do nó executada e clique nela para abrir a página de detalhes.
-
Na seção Properties dos detalhes da instância, verifique o campo Execution Identity. Este campo exibe o ARN da função associada realmente usada para a execução.
Um ARN é um identificador único de recurso. ARN .
Referências
Referência de parâmetros de agendamento: Fontes e expressões de parâmetros de agendamento.
-
Referências de política de agendamento:
Referência de horário de agendamento: Referência de horário de agendamento.
-
Referências de dependências de agendamento:
Referência de parâmetros de saída do nó: Parâmetros de saída do nó.
Outras referências: Outras referências de agendamento.


para adicionar um