Workflows agendados automatizam o processamento recorrente de dados ao gerar instâncias de tarefas com base em uma programação predefinida (diária, mensal, entre outras). Cada tarefa é executada somente quando o horário agendado chega e todas as dependências upstream são atendidas, mantendo pipelines de dados complexos estáveis e organizados. Casos de uso típicos incluem:
Automatizar o processamento recorrente de dados: sincronize, limpe ou agregue dados em intervalos diários, horários ou semanais.
Construir fluxos de dependência DAG complexos: integre visualmente nós como MaxCompute SQL, Hologres, EMR e Python, defina dependências upstream e downstream e ative o agendamento automatizado.
Gerenciar e agendar múltiplas subtarefas de forma centralizada: agrupe tarefas logicamente relacionadas em um único workflow para agendar, manter e monitorar todas como uma unidade.
Início rápido
Este recurso está disponível na nova versão do DataWorks Data Studio. Para saber como distinguir entre a versão nova e a antiga, consulte Distinguish between the new and legacy Data Studio.
Esta seção apresenta um workflow agendado pronto para execução. Você construirá um pipeline simples em que um nó virtual (o ponto de partida) aciona um nó MaxCompute SQL (para processamento de dados). O workflow calcula automaticamente o número total de pedidos do dia anterior e grava os resultados em uma tabela todas as manhãs.
Etapa 1: Preparar o mecanismo de computação e os dados
No workspace de destino, bind a MaxCompute compute engine.
-
No MaxCompute, crie a tabela a seguir para armazenar os resultados.
-- Create a simple result table CREATE TABLE IF NOT EXISTS dw_order_count_test ( order_date STRING, total_count BIGINT ) PARTITIONED BY (ds STRING); -- Partitioned by ds to store daily aggregation results
Etapa 2: Criar um workflow agendado
-
Acesse a página Workspaces no console do DataWorks. Na barra de navegação superior, selecione a região desejada. Localize o workspace desejado e escolha na coluna Actions.
Se o botão estiver identificado como Data Development, ele abre o Data Studio legado. Não clique nele.
Clique no ícone
na barra de navegação à esquerda e, à direita de Project Directory, clique em para abrir a página Create Workflow.Na caixa de diálogo Create Workflow, defina Scheduling Type como Periodic Scheduling, insira as informações necessárias (por exemplo, defina Name como
minimal_daily_demo) e conclua a criação.
Etapa 3: Orquestrar o workflow — arrastar nós e conectar dependências
-
No canvas do workflow, arraste um nó Zero-Load Node a partir do painel de componentes à esquerda e nomeie-o como
start_node.Zero-Load Node serve apenas para definir o ponto de partida de um processo de negócio e não é executado de fato.
Arraste um nó MaxCompute SQL e nomeie-o como
count_orders.Clique no círculo na parte inferior de
start_nodee arraste uma linha até a parte superior decount_orderspara construir um pipeline de processamento simples.
Etapa 4: Desenvolver o código do nó
Recomendamos ativar Data Agent para obter sugestões inteligentes de autocompletar código e aumentar a eficiência do desenvolvimento.
Dê um duplo clique no nó
count_orderspara abrir o editor de código do nó.-
Escreva o código de lógica de negócio do nó (dados estatísticos simulados são usados aqui).
-- bizdate is a defined scheduling variable whose meaning needs to be specified in the scheduling configuration INSERT OVERWRITE TABLE dw_order_count_test PARTITION (ds='${bizdate}') SELECT '${bizdate}' as order_date, COUNT(*) as total_count FROM (SELECT 1 as id UNION ALL SELECT 2 as id) t; -- Simulated dataPara mais informações sobre o desenvolvimento de nós, consulte Develop a MaxCompute SQL node .
Clique no botão Save na parte superior do editor de nó para salvar a configuração.
Etapa 5: Configurar agendamento e parâmetros
-
Volte ao workflow. No lado direito do canvas do workflow, clique em Scheduling Settings > aba Scheduling time:
Defina Scheduling Frequency como Day.
Defina Scheduling time como
00:05(ou seja, 00:05 todos os dias).
No lado direito do editor do nó
count_orders, configure . Adicione um parâmetro com Parameter name definido comobizdatee Parameter Value definido como$[yyyymmdd-1](isso representa a data atual menos um dia, ou seja, o dia anterior).
Etapa 6: Depurar um nó individual e o workflow completo
-
Depuração do nó
count_orders:-
Configurar parâmetros de depuração: clique em Debug Configuration no lado direito da página de edição do nó.
Em Compute Resource, selecione o recurso de computação MaxCompute preparado na Etapa 1.
Em Script Parameters, insira o Value Used in This Run. O valor padrão é o dia anterior à data atual.
Executar a tarefa de depuração: clique no botão Run na barra de ferramentas. O nó é executado com os parâmetros de depuração configurados em Debug Configuration.
Após os resultados atenderem às expectativas, clique em Sync to Scheduling no canto superior direito para sincronizar a configuração de execução com as configurações de agendamento.
-
-
Depuração do workflow:
Volte ao canvas do workflow e clique no ícone
na barra de ferramentas superior.Na caixa de diálogo exibida, insira o Value Used in This Run para o workflow (por exemplo, se hoje é 20260120,
bizdatedeve ser substituído por20260119).
Etapa 7: Implantar em produção
Volte ao workflow e clique no botão
na barra de ferramentas superior.No painel de implantação, o sistema realiza verificações de dependências e configuração. Após confirmar que tudo está correto, clique em Start Release Production e defina o método de implantação como Full Publishing.
Após uma implantação bem-sucedida, acesse o Operation and Maintenance Center para verificar se o workflow aparece na lista de tarefas agendadas.
Você concluiu o desenvolvimento de um workflow agendado simples. Esse workflow é executado automaticamente todos os dias no início da madrugada.
Design e configuração centrais
A orquestração de workflows utiliza um canvas visual de DAG para organizar tarefas com nós de controle (como nós de junção e ramificação) e nós de interação (como HTTP triggers). O contexto é transmitido por meio de parâmetros de agendamento, e a ordem de execução e as condições de disparo são definidas por dependências de agendamento.
Orquestração de nós/workflows
Orquestração de processos simples
O desenvolvimento de dados geralmente envolve pipelines complexos, desde a integração de múltiplas fontes até a modelagem em camadas (como a construção das camadas ODS e DWD). O DataWorks utiliza orquestração visual para decompor lógicas complexas em subnós funcionais e construir pipelines de processamento padronizados. Esse modelo baseado em grafo acíclico direcionado (DAG) viabiliza um fluxo automatizado orientado por estado: quando um nó upstream é concluído com sucesso, ele dispara imediatamente as tarefas downstream, garantindo um processamento ponta a ponta linear, estável e ordenado. Nesta etapa, a orquestração assume sua forma mais simples — um DAG estático, linear e irreversível.
Orquestração complexa: controle de fluxo
Os nós de ramificação/junção e os nós for-each/do-while estão disponíveis apenas no DataWorks Standard Edition e versões posteriores.
Os nós de controle de fluxo elevam o desenvolvimento de dados de uma simples integração de tarefas para uma verdadeira orquestração de negócios. Eles vão além do modelo de dependência linear única dos DAGs tradicionais, adicionando lógica avançada por meio de um conjunto preciso de nós de controle.
Nome do nó | Descrição do nó |
Virtual node | Um nó virtual não executa computações reais. Ele gerencia centralmente múltiplas subtarefas e funciona como o nó inicial de um workflow. Por exemplo, em um workflow de análise de pedidos de produtos, um nó virtual chamado Nota No desenvolvimento de nós standalone, utilize o nó raiz do workspace como nó de dependência inicial. |
Branch node | Direciona para lógicas downstream diferentes com base nos resultados upstream. Por exemplo, se o total diário de pedidos for 0, um nó de alerta é acionado e as computações subsequentes são interrompidas; se o total for maior que 0, o fluxo segue para o nó de geração de relatórios. |
Join node | Mescla os resultados de execução de múltiplas ramificações para resolver problemas de dependência downstream. Por exemplo, uma tarefa de liquidação financeira depende de duas ramificações: "liquidação normal" e "lógica de ajuste". O nó de junção garante que o arquivamento do relatório final seja disparado assim que qualquer uma das ramificações for concluída com sucesso. |
For-each node | Itera sobre o conjunto de resultados de um nó de atribuição e executa operações downstream para cada elemento. Por exemplo, para 31 nomes de províncias obtidos por um nó de atribuição, o nó for-each executa uma tarefa de limpeza de dados 31 vezes, processando a partição de dados de uma província a cada iteração. |
Do-while node | Repete a execução até que uma condição seja atendida. Por exemplo, a cada 10 minutos uma API externa é chamada para consultar o status de sincronização de dados. Se o valor retornado for "Processing", o loop continua. Se o valor retornado for "Completed", o loop é encerrado e o processamento subsequente é iniciado. |
Para mais informações, consulte Common nodes in Data Studio .
Orquestração complexa: percepção de estado e integração externa
Os nós de verificação estão disponíveis apenas no DataWorks Professional Edition e versões posteriores. Os demais nós estão disponíveis apenas no DataWorks Enterprise Edition.
Esses nós avaliam se os recursos físicos necessários ou as tarefas anteriores estão prontos e integram-se a sistemas de terceiros para conectar plataformas de dados a sistemas de negócios.
|
Nome do nó |
Descrição do nó |
|
HTTP trigger |
Recebe requisições HTTP de sistemas externos para disparar tarefas do DataWorks. Por exemplo, após o sistema de negócios upstream concluir o fechamento diário, ele chama uma API HTTP para iniciar o pipeline de processamento de dados T+1 do DataWorks. |
|
Check node |
Monitora se recursos externos (como arquivos no OSS ou partições do MaxCompute) estão prontos e dispara as tarefas downstream assim que ficam disponíveis. Por exemplo, um nó de verificação aguarda o arquivo de log do dia aparecer no OSS e então inicia a tarefa de parsing de logs. |
|
Dependency check node |
Utiliza polling ativo, combinações lógicas e verificações de prontidão de dependências entre ciclos ou entre workspaces para disparar tarefas downstream após todas as condições serem atendidas. Por exemplo, um nó agendado diariamente aguarda a conclusão de todas as 24 tarefas horárias do dia anterior. |
Para mais informações, consulte Common nodes in Data Studio .
Encapsular sub-workflows para reutilização de lógica
Você pode encapsular um pipeline de subtarefas estável e reutilizável em um sub-workflow por meio de um nó SUB_PROCESS, permitindo que outros workflows o referenciem. Por exemplo, linhas de negócio de e-commerce, publicidade e IoT podem compartilhar um pipeline padronizado de limpeza de dados, estatísticas resumidas e verificações de Data Quality.
Procedimento:
No workflow
child_workflowque você pretende referenciar, defina a propriedade General do workflow como Can be cited. Isso converte o workflow em um sub-workflow.No workflow principal, arraste um nó SUB_PROCESS e defina o workflow referenciado como
child_workflow.
Sub-workflows possuem as seguintes restrições:
Internalidade: O workflow e todos os seus nós internos não podem ter dependências de tarefas externas.
Isolamento: O workflow não pode ser configurado diretamente como dependência por nenhuma tarefa externa.
-
Disparo passivo: Após a implantação, o workflow não gera automaticamente instâncias agendadas. Ele é executado apenas quando chamado por um nó
SUB_PROCESSem outro workflow.Para mais informações, consulte Create a sub-workflow .
Divisão de workflows e recomendações de design modular
Para manter a manutenibilidade e o desempenho dos workflows, divida workflows grandes com mais de 100 nós:
Divisão por domínio de negócio: Separe os pipelines de processamento de diferentes temas de negócio (como transações, usuários e produtos) em workflows distintos.
Uso de SUB_PROCESS para encapsular lógica comum: Encapsule etapas de processamento comuns e reutilizáveis (como limpeza e formatação de dados) como workflows referenciáveis.
Configurações de dependência de agendamento
As dependências de agendamento conectam tarefas isoladas em um pipeline de produção de dados ordenado por meio de duas condições: cumprimento do horário agendado e sucesso do upstream. Ao orquestrar nós dentro de um workflow, as dependências de agendamento são estabelecidas automaticamente. Também é possível configurar dependências mais complexas por meio das configurações de dependência de agendamento.
Para mais informações, consulte Configure scheduling dependencies .
Dependência no nível do workflowUtilize dependências no nível do workflow quando todo o workflow precisar aguardar a conclusão de outras tarefas (outro workflow ou um nó standalone) antes de iniciar. Esse modelo é adequado para cenários em que o workflow atua como um módulo de negócio independente. Por exemplo, um workflow de vendas aguarda a saída de um workflow de dados base antes de iniciar. | Dependência no nível do nóUse dependências no nível do nó quando um nó específico em um workflow precisar aguardar a conclusão de uma tarefa externa fora do workflow atual. Isso permite uma orquestração cross-workflow granular. Por exemplo, um nó de consolidação em um workflow de relatórios aguarda a saída de um nó específico em um sistema financeiro externo. Recomenda-se configurar um nó de verificação de dependência upstream para garantir que a tarefa dependente seja concluída no prazo. |
Dependência entre ciclosA dependência entre ciclos significa que a instância do ciclo atual de uma tarefa depende de instâncias de um ciclo diferente, com suporte a autodependência do mesmo nó ou dependência entre nós distintos. Por exemplo, tarefas que utilizam INSERT OVERWRITE para sobrescrever partições em uma tabela, ou cenários envolvendo cálculos cumulativos. Após ativar a autodependência, a instância do dia atual deve aguardar o sucesso da instância do dia anterior para poder ser executada. | Dependência entre workspacesPara depender de tarefas em outro workspace do DataWorks, identifique um nó de forma única utilizando o nome do workspace e o Output Name, Name ou ID do nó. Esse modelo é indicado para colaboração de dados entre departamentos e projetos. Por exemplo, uma tarefa em um workspace de marketing referencia dados-chave de um workspace de contabilidade. |
Design e fluxo de parâmetros
Parâmetros de workspace estão disponíveis apenas no DataWorks Professional Edition e versões posteriores.
Parâmetros de workflow, variáveis de workflow e parâmetros no nível do workspace são suportados apenas ao utilizar um grupo de recursos serverless.
O DataWorks Data Studio oferece suporte a quatro níveis de passagem de parâmetros e permite a transferência dinâmica de dados entre nós por meio de parâmetros de contexto. Listados do menor para o maior escopo:
Parâmetros de nóQuando o mesmo código SQL precisa processar dados de partições diferentes a cada dia, utilize parâmetros de nó para definir datas dinamicamente. Constantes, variáveis integradas e expressões de tempo personalizadas são suportadas. Para mais informações, consulte Configure scheduling parameters. | Parâmetros de contextoTransmita valores dinamicamente para nós downstream por meio de parâmetros de saída upstream. Constantes, variáveis e resultados de execução upstream são suportados. Para mais informações, consulte Configure context parameters. |
Parâmetros de workflowQuando dezenas de nós em um workflow precisam compartilhar determinados identificadores de negócio, os parâmetros de workflow se aplicam a todos os nós do workflow, eliminando a necessidade de modificar parâmetros nó a nó. Para mais informações, consulte Workflow parameters. Nota Sub-workflows dentro de um workflow podem referenciar diretamente os parâmetros do workflow. | Parâmetros de workspaceQuando o código é executado em ambientes diferentes, os nomes de bancos de dados e os caminhos de recursos normalmente diferem. Parâmetros no nível do workspace distinguem entre ambientes e se aplicam a todos os nós do workspace. Por exemplo, defina um parâmetro de workspace Para mais informações, consulte Configure workspace parameters. |
Configurações de agendamento
A diferença fundamental entre workflows agendados e os antigos processos de negócio é que um workflow define o agendamento como um todo, enquanto um processo de negócio é apenas um agrupamento físico e não permite configurar um agendamento de forma unificada.
Os agendamentos são definidos no nível do workflow. Os nós internos podem apenas definir um tempo de atraso de execução, calculado adicionando o atraso ao horário agendado do workflow.
|
Dimensão |
Configuração no nível do workflow |
Comportamento no nível do nó interno |
|
Atributo de tempo |
Tempo absoluto (por exemplo, 02:00) |
Tempo relativo (atraso com base no horário de agendamento do workflow) |
|
Atributo de ciclo |
Define ciclos diários/horários/por minuto/semanais/mensais/anuais |
Herda o ciclo do workflow e não pode ser modificado |
|
Lógica de disparo |
Chegada do horário físico + sucesso do upstream |
Horário físico + tempo de atraso + sucesso do upstream |
Depuração e execução
Após concluir o desenvolvimento de nós e workflows, depure nós individuais e execute o workflow completo para verificar a correção antes da implantação.
Depuração de nó individual
A depuração de nó individual verifica a lógica do código dentro de um único nó — por exemplo, validar uma instrução SQL, um script Python ou uma tarefa de sincronização do Data Integration. Esse modo executa apenas o nó atual, sem acionar dependências upstream ou downstream.
-
No painel Debug Configuration à direita do nó, configure os seguintes parâmetros:
Nome do parâmetro
Descrição
Compute resource
Selecione o recurso de computação associado. Se nenhum recurso de computação estiver disponível, selecione Create Compute Resource na lista suspensa.
ImportanteCertifique-se de que o recurso de computação e o grupo de recursos estejam conectados. Para mais informações, consulte Network connectivity.
Resource group
Selecione um grupo de recursos que tenha passado no teste de conectividade durante a associação do recurso de computação. Alguns nós permitem configurar dependency packages no grupo de recursos para estender o ambiente de execução.
(Opcional) Dataset
Alguns nós (como Shell e Python) suportam mounting datasets para acessar dados não estruturados armazenados no OSS ou NAS.
(Opcional) Script parameters
Ao configurar o conteúdo do nó e definir variáveis no formato
${parameter_name}, é necessário configurar Parameter name e Parameter Value em Script Parameters. Durante a execução, as variáveis são substituídas dinamicamente pelos valores reais. Para mais informações, consulte Configure scheduling parameters.(Opcional) Associated role
Alguns nós (como Shell e Python) suportam configuring associated roles para acessar recursos de outros serviços da Alibaba Cloud.
Na barra de ferramentas acima do nó, clique em Save e, em seguida, execute a tarefa do nó clicando em Run.
Visualize o log de execução e os resultados na parte inferior do nó.
Depuração de workflow
A depuração de workflow verifica se as dependências de dados, a passagem de parâmetros e a ordem de execução entre os diversos nós do pipeline estão corretas. Após a depuração de nós individuais, você pode depurar parte do pipeline ou o workflow completo.
Na página do canvas DAG do workflow, clique em Run na barra de ferramentas superior. Também é possível selecionar um nó, clicar com o botão direito e escolha Run to this node ou Run from this node para realizar uma verificação parcial.
Na caixa de diálogo exibida, atribua valores temporários para todas as variáveis dos nós no workflow (como
${bizdate}) para esta execução de depuração.O sistema executa os nós rigorosamente de cima para baixo, conforme as relações de dependência definidas no DAG. Acompanhe o status dos nós em tempo real no canvas e clique em qualquer nó para visualizar o log de execução.
-
Clique em Return no lado esquerdo do canvas para retornar ao estado de desenvolvimento do workflow.
O histórico de execuções no lado direito exibe todos os registros de depuração do workflow.
Todos os nós comuns que envolvem controle de fluxo (do-while, branch e join) devem estar dentro de um workflow e funcionar em conjunto com nós upstream e downstream para que a depuração e a execução sejam efetivas.
Gerenciamento e operações
Gerenciar nós do workflow
O DataWorks permite importar nós standalone existentes para um workflow, remover nós de um workflow ou mover nós entre workflows, promovendo reutilização eficiente e gerenciamento modular.
Importar nós existentes para um workflow
Adicione nós standalone existentes — que não pertencem a nenhum workflow — ao canvas do workflow atual por meio de Import Node para reutilização.
Dê um duplo clique no workflow desejado para abrir a página de edição do canvas.
No painel de componentes à esquerda, alterne para a aba Import Node.
O painel lista todos os nós standalone disponíveis para adição. Filtre e pesquise por Node Type, Path ou Node Name para localizar rapidamente o nó desejado.
Após encontrar o nó, arraste-o para o canvas para concluir a importação.
Remover nós de um workflow
Você pode remover um nó de um workflow para transformá-lo em um nó standalone ou movê-lo diretamente para outro workflow.
-
Remover do workflow como nó standalone
Utilize este recurso quando precisar desacoplar um nó de um workflow para que ele deixe de fazer parte desse workflow.
Na árvore de diretórios do projeto ou no canvas do workflow, clique com o botão direito no nó desejado.
No menu de contexto, selecione Remove from workflow.
Na caixa de diálogo de confirmação, selecione o caminho de destino onde o nó será armazenado após a remoção e confirme.
-
Mover para outro workflow
Utilize este recurso quando for necessário reestruturar um processo de negócios e migrar um nó do workflow atual para outro.
Na árvore de diretórios do projeto ou no canvas do workflow, clique com o botão direito no nó desejado.
No menu de contexto, selecione Move to another workflow.
-
Na lista exibida, selecione o workflow de destino e confirme.
Também é possível selecionar e arrastar um nó diretamente para o workflow de destino para movê-lo.
Antes de realizar esta operação, avalie cuidadosamente o impacto potencial nos processos de negócios existentes e reconfigure as dependências no novo local sem demora.
Ao remover ou mover um nó de um workflow, as dependências upstream e downstream configuradas para esse nó dentro do workflow original são quebradas.
Os parâmetros de workflow configurados no nó também deixam de funcionar.
Clonar um workflow
A clonagem copia um workflow existente — incluindo todos os seus nós internos, código e dependências — para gerar um workflow independente. Para clonar, acesse Project Directory, clique com o botão direito no workflow desejado e selecione Cloning.
A clonagem copia praticamente todas as configurações, o que pode introduzir riscos. Antes de implantar o workflow clonado, verifique os itens a seguir (checagem de "isolamento de ambiente"):
Tabelas de saída e data sources de destino: O código do workflow clonado grava nas mesmas tabelas de destino do workflow original. Modifique os nomes das tabelas de destino no código (por exemplo, altere
ods_user_tableparadev_ods_user_table) ou ajuste a configuração de saída do nó para evitar que múltiplas tarefas operem na mesma tabela, o que causaria conflitos de dados.Dependências upstream: Verifique a configuração de dependências upstream do workflow. O workflow clonado ainda depende das tarefas upstream originais por padrão. Confirme se isso atende às suas expectativas; caso contrário, pode haver confusão no pipeline de dados ou execuções secas de tarefas.
Configuração de parâmetros: Verifique os parâmetros personalizados do workflow e de seus nós internos, especialmente parâmetros relacionados a partições de data (como
${bizdate}), caminhos de entrada/saída e outros parâmetros. Certifique-se de que estejam corretos no novo ambiente.
Além de clonar workflows, também é possível clonar nós dentro de um workflow, porém a cópia de nós entre workflows diferentes não é suportada.
Gerenciamento de versões
Quando um nó interno é implantado individualmente, uma nova versão também é gerada para o workflow.
O gerenciamento de versões registra automaticamente cada alteração no workflow, permite visualizar e comparar versões históricas e possibilita o rollback para qualquer estado anterior quando necessário.
No lado direito do canvas do workflow, o painel Version exibe dois tipos de registros:
Registro de desenvolvimento: Gerado toda vez que você clica em Save no canvas. Esse snapshot evita a perda acidental de código durante o desenvolvimento e não afeta tarefas em execução na produção.
Registro de implantação: Gerado após o workflow ser implantado no ambiente de produção. Esta é a versão executada pelo agendador de produção. Quando tarefas de produção apresentarem problemas, concentre-se nos registros de implantação para o rollback.
Casos de uso típicos
Rollback rápido em caso de falha: Quando uma tarefa de produção falha devido a alterações no código, use Restore para reverter o workflow à última versão de implantação estável com um clique, minimizando o tempo de inatividade.
Auditoria e rastreamento de alterações: Para investigar quando uma lógica foi alterada e por quem, utilize a lista de versões e os recursos de Diff para rastrear cada mudança no código.
Recuperação de código: Se você excluir acidentalmente uma lógica de código sem salvar, restaure a partir do registro de desenvolvimento mais recente.
Considerações importantes
A restauração sobrescreve a área de desenvolvimento atual: A opção Restore utiliza a versão histórica selecionada para sobrescrever todo o código e todas as configurações no canvas atual. Antes de restaurar, faça backup de quaisquer alterações não confirmadas copiando-as para um editor de texto local.
É necessário reimplantar após a restauração: A opção Restore apenas restaura o código para o estado de desenvolvimento. Você deve implantá-lo manualmente para que o rollback entre em vigor na produção.
Implantação e operações
Implantação de nó/workflow: Após concluir o desenvolvimento do workflow, implante os nós/workflows no ambiente de produção. Nesse momento, os nós do ambiente de desenvolvimento geram tarefas agendadas correspondentes no ambiente de produção. Para mais informações, consulte Deploy nodes and workflows.
Operações de nó/workflow: Os workflows no ambiente de produção são agendados periodicamente com base nas configurações de agendamento. Acesse Operation and Maintenance Center para visualizar o status de agendamento dos workflows e realizar as operações relacionadas. Para mais informações, consulte Scheduled tasks e Scheduled instances.
Mecanismo de execução de tarefas
Em cenários de agendamento, o sucesso geral de um workflow depende do status de execução de suas tarefas internas.
O sucesso geral de um workflow é determinado pelo status final de seus nós internos:
Falha: Se qualquer nó crítico falhar, a instância inteira do workflow normalmente é marcada como falha.
Congelar/Pausar: Se um nó do workflow for congelado ou pausado manualmente e esse nó for upstream de nós subsequentes, o pipeline é interrompido e o workflow inteiro também é marcado como falha.
Nó join: Se o workflow utiliza um nó join, mesmo que um nó em uma branch upstream falhe, o workflow inteiro pode retornar "sucesso" desde que a lógica própria do nó join determine sucesso. Portanto, projete cuidadosamente as verificações upstream dos nós join para evitar que tarefas prossigam com erros não detectados.
Cenários especiais:
Ao congelar uma instância de backfill de dados de uma tarefa de workflow, a instância do workflow é definida com o status sucesso.
Em cenários de backfill de dados, se o sistema determinar que uma tarefa não pode ser executada, o workflow é definido com o status falha.
Existe uma latência entre a atualização do status da instância e a ocorrência real do evento de falha.
Cotas e limites
Limite de nós: Um único workflow suporta até 400 nós internos. Para garantir o desempenho de carregamento do canvas e a manutenibilidade, mantenha a quantidade de nós abaixo de 100. Em cenários maiores, utilize divisão modular.
-
Limites de sub-workflow:
Um workflow com a opção de referenciação ativada não pode ter seus nós dependendo de tarefas externas, nem pode ser diretamente dependência de tarefas externas. Caso contrário, ocorre um erro durante o deploy.
Após o deploy desse workflow no ambiente de produção, instâncias agendadas não são geradas automaticamente por padrão. O workflow é executado como subtarefa somente quando referenciado por um nó SUB_PROCESS em outro workflow.
Máximo de instâncias paralelas: Workflows agendados não suportam a definição do número máximo de instâncias paralelas no nível do workflow. Essa configuração só pode ser feita para tarefas internas do workflow. Para limitar a execução concorrente, configure Max Parallel Instances na política de agendamento dos nós individuais. Para mais informações, consulte Configure scheduling policies.
Tipos de nó não suportados: EMR Spark Streaming, Flink SQL Streaming, Flink JAR Streaming e Flink Python Streaming não são suportados em workflows. Esses tipos só podem ser desenvolvidos e executados como nós independentes.
Perguntas frequentes
-
P: Qual é a diferença entre um workflow e um business process?
R: O workflow é uma entidade de agendamento unificada, enquanto o business process é simplesmente um agrupamento baseado em pastas.
-
P: Por que a depuração funciona, mas o agendamento periódico falha?
R: A causa mais comum é inconsistência de ambiente. Verifique os seguintes pontos:
Diferenças no grupo de recursos: Durante a depuração, é possível que você tenha utilizado um grupo de recursos pessoal ou de depuração, enquanto o agendamento de produção utiliza um grupo de recursos de produção. Verifique se o grupo de recursos de produção é válido, possui capacidade suficiente e tem as permissões corretas.
Diferenças de permissão: A conta de execução do ambiente de produção pode não ter permissões de acesso a determinadas tabelas, funções ou recursos.
Diferenças de dependência: As dependências no ambiente de produção estão inconsistentes com as do ambiente de desenvolvimento, ou a saída das dependências upstream não existe no ambiente de produção.
-
P: Por que uma instância permanece pendente ou não é executada?
R: Uma instância só é executada quando todas as condições são atendidas: horário agendado, recursos de agendamento disponíveis e conclusão das dependências upstream.
Dependências upstream não concluídas: No Operation Center, visualize a visão de dependências da instância para verificar qual tarefa upstream ainda não foi concluída com sucesso.
Espera por recursos: A fila do grupo de recursos de computação está cheia e a tarefa aguarda na fila por recursos disponíveis.
Workflow/nó congelado: Verifique se o workflow ou seus nós upstream foram congelados ou pausados manualmente.
Instância não gerada: Confirme se o horário atual já atingiu o horário agendado do workflow. Se a tarefa acabou de ser implantada, é necessário aguardar até o próximo ciclo de agendamento para que as instâncias sejam geradas. Para mais informações, consulte Scheduling time and instance generation.
-
P: Por que o workflow inteiro aparece como falho quando alguns nós foram concluídos com sucesso?
R: Isso é determinado pelas regras de avaliação de status do workflow:
Falha no caminho crítico: Se qualquer nó com dependências downstream incompletas falhar, o workflow inteiro é marcado como falho, mesmo que outras ramificações paralelas tenham sido concluídas com sucesso.
Nó congelado: Um nó interno congelado faz com que o workflow inteiro falhe.