Todos os produtos
Search
Central de documentação

DataWorks:Orquestração de workflows agendados

Última atualização: Jul 09, 2026

Um workflow agendado automatiza o processamento recorrente de dados ao gerar instâncias de tarefas conforme uma programação predefinida (diária, mensal, entre outras). Cada tarefa executa apenas quando o horário agendado chega e todas as dependências upstream são atendidas, mantendo pipelines de dados complexos estáveis e organizados. Os casos de uso típicos incluem:

  • Automatizar tarefas recorrentes de processamento de dados: Sincronize, limpe ou agregue dados em intervalos diários, horários ou semanais.

  • Construir fluxos complexos de dependência DAG: Integre visualmente vários nós (como MaxCompute SQL, Hologres, EMR e Python), defina dependências upstream e downstream e ative o agendamento automatizado.

  • Gerenciar e agendar centralmente múltiplas subtarefas: Agrupe tarefas logicamente relacionadas em um único workflow para agendá-las, mantê-las e monitorá-las como uma unidade.

Início rápido

Importante

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 Diferenciar o Data Studio novo e o legado.

Esta seção apresenta um workflow agendado pronto para execução. Você construirá um pipeline simples em que um nó virtual (o ponto inicial) aciona um nó MaxCompute SQL (para processamento de dados). Este exemplo demonstra um workflow que 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

  1. No workspace de destino, vincule um mecanismo de computação MaxCompute.

  2. No MaxCompute, crie a seguinte tabela 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

  1. 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 Shortcuts > Data Studio na coluna Actions.

    Se o botão estiver rotulado como Data Development, ele abre o Data Studio legado. Não clique nele.
  2. Clique no ícone image na barra de navegação à esquerda e, à direita de Project Directory, clique em image > Create Workflow para abrir a página Create Workflow.

  3. 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

  1. Na tela do workflow, arraste um Zero-Load Node do painel de componentes à esquerda e nomeie-o como start_node.

    O Zero-Load Node serve apenas para definir o ponto inicial de um processo de negócios e não executa nenhuma operação real.
  2. Arraste um nó MaxCompute SQL e nomeie-o como count_orders.

  3. Clique no círculo na parte inferior de start_node e arraste uma linha até a parte superior de count_orders para criar um pipeline de processamento simples.

Etapa 4: Desenvolver o código do nó

Importante

Recomendamos ativar o Data Agent para obter sugestões inteligentes de preenchimento de código e melhorar a eficiência do desenvolvimento.

  1. Clique duas vezes no nó count_orders para abrir o editor de código do nó.

  2. Escreva o código da lógica de negócios para o 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 data
    Para mais informações sobre o desenvolvimento de nós, consulte Desenvolver um nó MaxCompute SQL .
  3. Clique no botão Save na parte superior do editor de nós para salvar a configuração.

Etapa 5: Configurar agendamento e parâmetros

  1. Retorne ao workflow. No lado direito da tela do workflow, clique na aba Scheduling Settings > Scheduling time:

    1. Defina Scheduling Frequency como Day.

    2. Defina Scheduling time como 00:05 (ou seja, 00:05 todos os dias).

  2. No lado direito do editor do nó count_orders, configure Scheduling Settings > Scheduling Parameters. Adicione um parâmetro com Parameter name definido como bizdate e Parameter Value definido como $[yyyymmdd-1] (isso representa a data atual menos um dia, ou seja, o dia anterior).

Etapa 6: Depurar um único nó e todo o workflow

  1. Depuração do nó count_orders:

    1. Configurar parâmetros de depuração: Clique em Debug Configuration no lado direito da página de edição do nó.

      1. Em Compute Resource, selecione o recurso de computação MaxCompute preparado na Etapa 1.

      2. Em Script Parameters, insira o Value Used in This Run. O valor padrão é o dia anterior à data atual.

    2. Executar a tarefa de depuração: Clique no botão Run na barra de ferramentas. O nó executa com os parâmetros de depuração configurados em Debug Configuration.

    3. Após os resultados da execução atenderem às expectativas, clique em no canto superior direito para sincronizar a configuração de execução com as configurações de agendamento.

  2. Depuração do workflow:

    1. Retorne à tela do workflow e clique no ícone image na barra de ferramentas superior.

    2. Na caixa de diálogo exibida, insira o Value Used in This Run para o workflow (por exemplo, se hoje for 20260120, substitua bizdate por 20260119).

Etapa 7: Implantar em produção

  1. Retorne ao workflow e clique no botão image na barra de ferramentas superior.

  2. No painel de implantação, o sistema realiza verificações de dependência 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.

  3. 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. Este workflow executa automaticamente todos os dias nas primeiras horas da manhã.

Design e configuração principais

A orquestração de workflows utiliza uma tela visual de DAG para organizar estruturas de tarefas com nós de controle (como nós de junção e ramificação) e nós de interação (como gatilhos HTTP), transmitir contexto por meio de parâmetros de agendamento e definir a ordem de execução e condições de acionamento através de 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 usa orquestração visual para decompor lógicas complexas em sub-nós funcionais e construir pipelines de processamento padronizados. Este modelo baseado em grafo acíclico direcionado (DAG) permite um fluxo automatizado orientado por estado: após o sucesso de um nó upstream, ele aciona imediatamente as tarefas downstream, garantindo um processamento ponta a ponta linear, estável e ordenado. Nesta etapa, a orquestração do processo é a forma mais simples — um DAG estático, linear e não reversível.

Orquestração complexa: Controle de fluxo

Nota

Os nós de ramificação/junção e for-each/do-while estão disponíveis apenas no DataWorks Standard Edition e versões posteriores.

Os nós de controle de fluxo permitem que o desenvolvimento de dados evolua da integração de tarefas para a orquestração de negócios. Eles superam a limitação dos DAGs tradicionais, que expressam apenas dependências lineares únicas, adicionando capacidades avançadas de expressão lógica através de um conjunto de nós de controle precisos.

Nome do nó

Descrição do nó

Nó virtual

Um nó virtual não realiza computações reais. Ele gerencia centralmente múltiplas subtarefas e serve como o nó inicial de um workflow. Por exemplo, em um workflow de análise de pedidos de produtos, um nó virtual chamado workshop pode servir como ponto de partida para conectar duas tarefas de sincronização em lote, tornando o caminho do fluxo de dados mais claro.

Nota

Para o desenvolvimento de nós independentes, use o nó raiz do workspace como o nó de dependência inicial.

Nó de ramificação

Direciona para diferentes lógicas de ramificação com base nos resultados upstream. Por exemplo, verifique o total diário de pedidos. Se o total for 0, acione um nó de alerta e interrompa as computações subsequentes. Se o total for maior que 0, continue executando o nó de geração de relatórios.

Nó de junção

Mescla os resultados de execução de múltiplas ramificações para resolver problemas de montagem de dependências 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, independentemente da ramificação seguida, o arquivamento final do relatório seja acionado, desde que a lógica esteja completa.

Nó For-each

Itera sobre o conjunto de resultados passado por um nó de atribuição e executa operações downstream em 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 por vez.

Nó Do-while

Fornece controle de loop que continua até que uma condição seja atendida antes de prosseguir para a próxima etapa. Por exemplo, chame uma API externa a cada 10 minutos 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 começa.

Para mais informações, consulte Nós comuns no Data Studio .
image

Orquestração complexa: Consciência de estado e integração externa

Nota

Os nós de verificação estão disponíveis apenas no DataWorks Professional Edition e versões posteriores. Outros nós estão disponíveis apenas no DataWorks Enterprise Edition.

Esses nós lidam com consciência de estado e avaliação de condições. Eles determinam se os recursos físicos ou tarefas anteriores exigidos pelo workflow estão prontos e integram-se a sistemas de terceiros para fazer a ponte entre plataformas de dados e sistemas de negócios.

Nome do nó

Descrição do nó

Gatilho HTTP

Recebe solicitações HTTP de sistemas externos para acionar tarefas do DataWorks. Por exemplo, após um sistema de negócios upstream concluir seu fechamento diário, ele chama uma API HTTP para acionar o pipeline de processamento de dados T+1 do DataWorks.

Nó de verificação

Monitora se recursos externos (como arquivos OSS ou partições MaxCompute) estão prontos e aciona tarefas downstream após eles ficarem disponíveis. Por exemplo, um nó de verificação aguarda o upload do arquivo de log do dia para o OSS. Após a detecção do arquivo, a tarefa de análise de logs inicia.

Nó de verificação de dependência

Utiliza polling ativo, combinações lógicas e verificações de prontidão de dependências entre ciclos/workspaces para acionar tarefas downstream após todas as condições serem atendidas, permitindo controle preciso sobre condições complexas de acionamento de agendamento. 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 Nós comuns no Data Studio .
image

Encapsular sub-workflows para reutilização de lógica

É possível encapsular um pipeline de subtarefas comum e estável em um módulo reutilizável (sub-workflow) através de um nó SUB_PROCESS, que pode então ser referenciado por outros workflows. Por exemplo, linhas de negócios de e-commerce, publicidade e IoT podem compartilhar um pipeline padronizado para limpeza de dados, estatísticas resumidas e verificações de Qualidade de Dados.

Procedimento:

  1. No workflow child_workflow que você planeja referenciar, defina a propriedade General do workflow como Can be cited. Isso converte o workflow em um sub-workflow.

  2. No workflow principal, arraste um nó SUB_PROCESS e defina o workflow referenciado como child_workflow.

Os 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 definido diretamente como dependência por nenhuma tarefa externa.

  • Acionamento passivo: Após a implantação, o workflow não gera automaticamente instâncias agendadas. Ele executa apenas quando chamado por um nó SUB_PROCESS em outro workflow.

    Para mais informações, consulte Criar um sub-workflow .
image

Divisão de workflows e recomendações de design modular

Para manter a manutenibilidade e o desempenho do workflow, divida workflows grandes com mais de 100 nós:

  • Dividir por domínio de negócios: Separe os pipelines de processamento de diferentes tópicos de negócios (como transações, usuários e produtos) em workflows distintos.

  • Usar 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 ordenado de produção de dados através da lógica dupla de cumprimento do horário agendado e acionamento por sucesso upstream. Ao orquestrar nós dentro de um workflow, as dependências de agendamento são estabelecidas automaticamente. Além das dependências intra-workflow, é possível configurar dependências mais complexas através das configurações de dependência de agendamento.

Para mais informações, consulte Configurar dependências de agendamento .

Dependência no nível do workflow

Utilize dependências no nível do workflow quando todo o workflow precisar aguardar a conclusão de outras tarefas (outro workflow ou um nó independente) antes de iniciar. Isso é adequado para tratar um workflow como um módulo de negócios independente. Por exemplo, um workflow de vendas aguarda a saída de um workflow de dados base antes de começar.

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 que não está no workflow atual. Isso permite uma orquestração entre workflows mais granular. Por exemplo, um nó de resumo em um workflow de relatórios precisa aguardar a saída de um nó específico em um sistema financeiro externo. Recomendamos configurar um nó de verificação de dependência upstream para garantir que a tarefa dependente seja concluída no prazo.

Dependência entre ciclos

A autodependência de tarefa significa que a instância do ciclo atual de uma tarefa depende de instâncias de ciclos diferentes, suportando autodependência do mesmo nó ou dependência entre nós. Por exemplo, tarefas que usam INSERT OVERWRITE para sobrescrever partições em uma tabela ou cenários que envolvem 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 antes de executar.

Dependência entre workspaces

Quando for necessário depender de tarefas em outro workspace do DataWorks, identifique exclusivamente um nó usando o nome do workspace e o Output Name, Name ou ID do nó. Isso é adequado para colaboração de dados entre departamentos e projetos. Por exemplo, uma tarefa em um workspace de marketing precisa referenciar dados chave de um workspace contábil.

image

Design e fluxo de parâmetros

Nota

Os parâmetros de workspace estão disponíveis apenas no DataWorks Professional Edition e versões posteriores.

O DataWorks Data Studio suporta quatro níveis de mecanismos de passagem de parâmetros e permite transferência dinâmica flexível de dados entre nós através de parâmetros de contexto de nó. Listados do menor para o maior escopo:

Parâmetros de nó

Quando o mesmo código SQL precisa processar dados de partições diferentes todos os dias, use parâmetros de nó para definir datas dinamicamente no código. Constantes, variáveis integradas e expressões de tempo personalizadas são suportadas.

Para mais informações, consulte Configurar parâmetros de agendamento.

Parâmetros de contexto

Transmita valores dinamicamente para nós downstream através de parâmetros de saída upstream. Constantes, variáveis e resultados de execução upstream são suportados.

Para mais informações, consulte Configurar parâmetros de contexto.

Parâmetros de workflow

Um workflow com dezenas de nós que precisam compartilhar certos identificadores de negócios beneficia-se de parâmetros de workflow, que entram em vigor em todos os nós do workflow e eliminam a necessidade de modificar parâmetros de nó individualmente.

Para mais informações, consulte Parâmetros de workflow.
Nota

Sub-workflows dentro de um workflow podem referenciar diretamente os parâmetros do workflow.

Parâmetros de workspace

Quando o código executa em ambientes diferentes, os nomes de bancos de dados e caminhos de recursos geralmente diferem. Parâmetros no nível do workspace permitem distinguir entre ambientes e aplicam-se a todos os nós no workspace. Por exemplo, defina um parâmetro de workspace db_name com valor db_dev no ambiente de desenvolvimento e db_prod no ambiente de produção.

Para mais informações, consulte Configurar parâmetros de workspace.

image

Configurações de agendamento

Importante

A principal diferença entre workflows agendados e processos de negócios legados é que um workflow define o agendamento como um todo, enquanto um processo de negócios é apenas um agrupamento físico e não suporta a definição de agendamento global.

Os agendamentos são definidos no nível do workflow. Os nós internos só podem definir um tempo de execução atrasado, calculado adicionando o atraso ao horário agendado definido pelo 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 baseado no horário de agendamento do workflow)

Atributo de ciclo

Define ciclos diários/horários/minutos/semanais/mensais/anuais

Herda o ciclo do workflow e não pode ser modificado

Lógica de acionamento

Chegada do tempo físico + sucesso upstream

Tempo físico + tempo de atraso + sucesso upstream

Depuração e execução

Após concluir o desenvolvimento de nós e workflows, depure nós individuais e execute todo o workflow para verificar a correção.

Depuração de nó único

A depuração de nó único verifica a lógica de código dentro de um nó, como validar rapidamente uma instrução SQL, um script Python ou uma tarefa de sincronização do Data Integration. Este modo executa apenas o nó atual sem acionar dependências upstream ou downstream.

  1. No painel Debug Configuration no lado direito do nó, configure os seguintes parâmetros:

    Nome do parâmetro

    Descrição

    Recurso de computação

    Selecione o recurso de computação associado. Se nenhum recurso de computação estiver disponível, selecione Create Compute Resource na lista suspensa.

    Importante

    Certifique-se de que o recurso de computação e o grupo de recursos estejam conectados. Para mais informações, consulte Conectividade de rede.

    Grupo de recursos

    Selecione um grupo de recursos que tenha passado no teste de conectividade quando o recurso de computação foi associado. Alguns nós suportam configurar pacotes de dependência no grupo de recursos para estender o ambiente de execução.

    (Opcional) Dataset

    Alguns nós (como Shell e Python) suportam montagem de datasets para acessar dados não estruturados armazenados no OSS ou NAS.

    (Opcional) Parâmetros de script

    Ao configurar o conteúdo do nó e definir variáveis usando o formato ${parameter_name}, configure 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 Configurar parâmetros de agendamento.

    (Opcional) Função associada

    Alguns nós (como Shell e Python) suportam configurar funções associadas para acessar recursos de outros serviços da Alibaba Cloud.

  2. Na barra de ferramentas acima do nó, clique em Save e depois em Run para executar a tarefa do nó.

  3. 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 em múltiplos nós de todo o pipeline estão corretas. Após a depuração de nó único, depure um pipeline parcial ou todo o workflow.

  1. Na página da tela DAG do workflow, clique no botão Run na barra de ferramentas superior. Também é possível selecionar um nó, clicar com o botão direito e escolher Run to this node ou Run from this node para realizar uma verificação parcial.

  2. Na caixa de diálogo exibida, atribua valores temporários para todas as variáveis de nó no workflow (como ${bizdate}) para esta execução de depuração.

  3. O sistema executa estritamente os nós de cima para baixo, seguindo as relações de dependência definidas no DAG. Monitore o status dos nós em tempo real na tela e clique em qualquer nó para visualizar o log de execução.

  4. Clique no botão Return no lado esquerdo da tela para retornar ao estado de desenvolvimento do workflow.

    O histórico de execução no lado direito exibe todos os registros de execução de depuração do workflow.
Importante

Todos os nós comuns que envolvem controle de fluxo (do-while, ramificação e junção) devem ser colocados dentro de um workflow e funcionar em conjunto com nós upstream e downstream para serem efetivamente depurados e executados.

Gerenciamento e operações

Gerenciar nós de workflow

O DataWorks permite importar nós independentes existentes para um workflow, remover nós de um workflow ou mover nós entre workflows, tornando a reutilização de nós e o gerenciamento modular mais eficientes.

Importar nós existentes para um workflow

Adicione nós independentes existentes que não pertencem a nenhum workflow à tela do workflow atual através de Import Node para reutilização rápida.

  1. Clique duas vezes no workflow de destino para abrir a página de edição da tela.

  2. No painel de componentes à esquerda, alterne para a aba .

  3. O painel lista todos os nós independentes que podem ser adicionados. Filtre e pesquise por Node Type, Path ou Node Name para localizar rapidamente o nó de destino.

  4. Após encontrar o nó, arraste-o para a tela para concluir a importação.

Remover nós de um workflow

Remova um nó de um workflow para torná-lo um nó independente ou mova-o diretamente para outro workflow.

  • Remover de um workflow como nó independente

    Utilize este recurso quando for necessário desacoplar um nó de um workflow para que ele não faça mais parte dele.

    1. Na árvore de diretórios do projeto ou na tela do workflow, clique com o botão direito no nó de destino.

    2. No menu de contexto, selecione .

    3. 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

    Use este recurso quando for necessário reestruturar um processo de negócios e migrar um nó do workflow atual para outro workflow.

    1. Na árvore de diretórios do projeto ou na tela do workflow, clique com o botão direito no nó de destino.

    2. No menu de contexto, selecione .

    3. 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.
Importante

Antes de realizar esta operação, avalie cuidadosamente o impacto potencial nos processos de negócios existentes e reconfigure prontamente as dependências no novo local.

  • 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 ser eficazes.

Clonar um workflow

Clonar um workflow copia um workflow existente — incluindo todos os seus nós internos, código e dependências — para gerar um workflow independente. Para acessar este recurso, acesse Project Directory, clique com o botão direito no workflow de destino e selecione Cloning.

A clonagem copia quase todas as configurações, o que pode introduzir riscos. Antes de enviar e implantar o workflow clonado, verifique o seguinte (verificação de "isolamento de ambiente"):

  1. Tabelas de saída e fontes de dados de destino: O código do workflow clonado grava nas mesmas tabelas de destino que o workflow original. Modifique os nomes das tabelas de destino no código (por exemplo, altere ods_user_table para dev_ods_user_table) ou modifique a configuração de saída do nó para evitar que múltiplas tarefas operem na mesma tabela, o que causaria conflitos de dados.

  2. Dependências upstream: Verifique a configuração de dependência 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 causar confusão no pipeline de dados ou execução simulada de tarefas.

  3. 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, mas a cópia de nós entre workflows não é suportada.

Gerenciamento de versões

Importante

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, suporta visualização e comparação de versões históricas e permite reversão rápida para qualquer estado histórico quando necessário.

No lado direito da tela do workflow, o painel Version mostra dois tipos de registros:

  • Registro de desenvolvimento: Gerado cada vez que você clica em Save na tela. É um snapshot tirado durante o desenvolvimento para evitar perda acidental de código. Não afeta tarefas em execução em produção.

  • Registro de implantação: Gerado após um workflow ser implantado no ambiente de produção. Esta é a versão que o sistema de agendamento de produção executa. Quando tarefas de produção encontrarem problemas, foque nos registros de implantação para reversão.

Casos de uso típicos

  • Reversão rápida em caso de falha: Quando uma tarefa de produção falha devido a alterações de código, use Restore para reverter o workflow para a ú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 determinada lógica foi alterada e por quem, use os recursos de lista de versões e Diff para rastrear cada alteração de código.

  • Recuperação de código: Quando você exclui acidentalmente alguma lógica de código sem salvar, restaure-a a partir do registro de desenvolvimento mais recente.

Considerações importantes

  • A restauração sobrescreve a área de desenvolvimento atual: Restore usa a versão histórica selecionada para sobrescrever todo o código e configurações na tela atual. Antes de restaurar, faça backup de quaisquer alterações não confirmadas copiando-as para um editor de texto local.

  • Nova implantação é necessária após a restauração: Restore apenas restaura o código para o estado de desenvolvimento. Implante-o manualmente para que a reversão tenha efeito em produção.

Implantação e operações

  • Implantação de nós/workflows: Após concluir o desenvolvimento do workflow, implante os nós/workflows no ambiente de produção. Neste ponto, os nós no ambiente de desenvolvimento geram tarefas agendadas correspondentes no ambiente de produção. Para mais informações, consulte Implantar nós e workflows.

  • Operações de nós/workflows: Workflows no ambiente de produção são agendados periodicamente com base nas configurações de agendamento. Acesse o Operation and Maintenance Center para visualizar o status de agendamento de workflows agendados e realizar operações relacionadas. Para mais informações, consulte Tarefas agendadas e Instâncias agendadas.

Mecanismo de execução de tarefas

Em cenários de agendamento, o status geral de sucesso 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, seguindo estas regras:

  • Falha: Se qualquer nó crítico falhar, toda a instância do workflow é tipicamente marcada como falha.

  • Congelamento/Pausa: Se um nó dentro do workflow for manualmente congelado ou pausado, e esse nó for upstream para nós subsequentes, o pipeline é interrompido e todo o workflow também é marcado como falha.

  • Nó de junção: Se o workflow usar um nó de junção, mesmo que um nó em uma ramificação upstream falhe, todo o workflow pode retornar "sucesso" desde que a própria lógica do nó de junção determine sucesso. Portanto, projete cuidadosamente as verificações upstream para nós de junção para evitar que tarefas sejam executadas com erros não detectados.

Cenários especiais:

  • Quando você congela uma instância de backfill de dados de uma tarefa de workflow, a instância do workflow é definida com status de sucesso.

  • Em cenários de backfill de dados, se o sistema determinar que uma tarefa não pode ser executada, o workflow é definido com status de falha.

Importante

Existe uma latência entre a atualização do status da instância e a ocorrência real do evento de falha.

image

Cotas e limites

  • Limite de contagem de nós: Um único workflow suporta no máximo 400 nós internos. No entanto, para garantir o desempenho de carregamento da tela e a manutenibilidade, recomendamos manter a contagem de nós abaixo de 100. Para cenários mais complexos, recomendamos a divisão modular.

  • Limites de sub-workflow:

    • Um workflow com a opção referenciável ativada não pode ter seus nós dependentes de tarefas externas, nem pode ser diretamente dependido por tarefas externas. Caso contrário, ocorre um erro durante a implantação.

    • Após tal workflow ser implantado no ambiente de produção, instâncias agendadas não são geradas automaticamente por padrão. O workflow executa como uma subtarefa apenas 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. Defina o número máximo de instâncias paralelas apenas para tarefas internas dentro do workflow. Para limitar a execução concorrente de tarefas, configure Max Parallel Instances na política de agendamento de nós individuais dentro do workflow. Para mais informações, consulte Configurar políticas de agendamento.

  • Tipos de nós não suportados: EMR Spark Streaming, Flink SQL Streaming, Flink JAR Streaming e Flink Python Streaming não são suportados em workflows. Eles só podem ser desenvolvidos e executados como nós independentes.

FAQ

  • P: Qual é a diferença entre um workflow e um processo de negócios?

    R: Um workflow é uma entidade unificada, enquanto um processo de negócios é simplesmente uma classificação baseada em pastas.

  • P: Por que a depuração tem sucesso, mas o agendamento periódico falha?

    R: A causa mais comum é inconsistência de ambiente. Foque no seguinte:

    • Diferenças de grupo de recursos: Durante a depuração, pode ter sido usado um grupo de recursos pessoal ou de depuração, enquanto o agendamento de produção usa um grupo de recursos de produção. Verifique se o grupo de recursos de produção é válido, tem capacidade suficiente e possui 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 certas tabelas, funções ou recursos.

    • Diferenças de dependência: As dependências no ambiente de produção sã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 está sempre pendente/não executando?

    R: Uma instância só pode executar quando todas as condições forem atendidas, incluindo o horário agendado, recursos de agendamento e nós de dependência upstream.

    • Dependências upstream não concluídas: No Operation Center, visualize a visualização de dependências da instância para verificar qual tarefa upstream ainda não teve sucesso.

    • Aguardando recursos: A fila do grupo de recursos de computação está cheia e a tarefa está aguardando recursos.

    • Workflow/nó congelado: Verifique se o workflow ou seus nós upstream foram manualmente congelados ou pausados.

    • Instância não gerada: Verifique se a hora atual atingiu o horário agendado do workflow. Se a tarefa acabou de ser implantada, aguarde até o próximo ciclo de agendamento para que as instâncias sejam geradas. Para mais informações, consulte Horário de agendamento e geração de instâncias.

  • P: Por que todo o workflow aparece como falha quando alguns nós tiveram 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, todo o workflow é marcado como falha, mesmo que outras ramificações paralelas tenham tido sucesso.

    • Nó congelado: Um nó interno congelado causa a falha de todo o workflow.