Skip to content

Agendar um Dataflow ​

Tipo
Como fazer
Para
Engenharia de dados
Na tela
HorusETL › Agendamentos

Um agendamento roda um ou mais Dataflows, em ordem, quando um gatilho dispara: um horário, um intervalo ou uma mudança de dados na origem. Cada Dataflow do agendamento tem o seu contexto, que decide a janela daquela execução.

Antes de começar ​

  • O Dataflow precisa estar publicado numa Mesa de Dados. Só Dataflows publicados aparecem na lista do agendamento; ver Publicar e clonar um Dataflow.
  • Os Dataflows de um agendamento precisam estar no mesmo Agente ETL, o escolhido no topo da tela.

Passos ​

  1. Abra Agendamentos e clique em Criar novo Agendamento.
  2. Em Nome do Agendamento:, escreva um nome que diga o que roda e quando, por exemplo Vendas a cada hora.
  3. No card Dataflows a serem executados, clique em Dataflow, escolha o Dataflow e o contexto. Repita para cada Dataflow, na ordem em que devem rodar.
  4. No card Gatilhos de Execução, clique em Gatilho e escolha o tipo. Um agendamento pode ter vários gatilhos.
  5. Deixe Agendamento Ativo marcado. Para receber aviso, marque Enviar e-mail em caso de falha e preencha E-mails: (separe os emails por virgula).
  6. Salve.

O contexto de cada Dataflow ​

Contexto na telaAparece paraO que roda
Totaltodo Dataflowa origem inteira, trocando toda a parte do Dataflow na tabela
Temporal (Passado), com N diasDataflow de Extração Janelade hoje menos N dias até hoje
Temporal (Futuro), com N diasDataflow de Extração Janelade hoje até hoje mais N dias
IncrementalDataflow de Extração Incrementalo que mudou desde o ponto de corte
Sincronizar exclusõesDataflow Incremental com a consulta de chaves configuradasó a varredura de exclusões; ver Sincronizar exclusões

O que cada contexto apaga no destino depende da Gravação do Dataflow; ver Tipos de carga. Um mês ou um ano fechado se pede na execução manual ou pelo Lumo CLI.

Os gatilhos ​

GatilhoConfiguração
HorasA cada 1 a 24 horas, com Janela de Horário entre um início e um fim
MinutosA cada 1 a 180 minutos, com janela de horário; só aparece se o Tenant permite agendamento por minuto
DiáriaRodar às um horário
SemanalToda um dia da semana, num horário
MensalTodo dia 1 a 31, num horário
Mudança de dados (CDC)uma consulta leve na origem, repetida a cada poucos segundos; ver Disparar por mudança de dados

A granularidade por minuto é configurada pelo administrador do Tenant, no HEC.

Fuso horário ​

A Janela de Horário entre, dos gatilhos Horas e Minutos, vale no relógio da máquina onde o Agente ETL roda. Com o Agente em UTC, que é o padrão de um container Docker, uma janela de 06:00 a 20:00 roda das 03:00 às 16:30 de Brasília. Para a janela valer no seu horário, deixe a máquina ou o container no seu fuso; no Docker, isso é a linha TZ do docker-compose.yml. Um Agente que atende vários Tenants usa o mesmo fuso para todos.

O horário de Rodar às, dos gatilhos Diária, Semanal e Mensal, não depende da máquina do Agente: ele vale no fuso do navegador de quem salvou o agendamento.

Ordem e falha ​

Os Dataflows rodam um depois do outro, na ordem do card. Ponha primeiro o que alimenta os outros: Bronze, depois Prata, depois Ouro. Uma falha não interrompe o agendamento: os Dataflows seguintes rodam mesmo assim. Um Prata que depende de um Bronze que falhou roda sobre o que estiver no Bronze naquele momento. O log do agendamento mostra o status Erro Parcial ou Erro, com quantos Dataflows deram certo e quantos falharam.

Cada Dataflow tem um teto de 24 horas de execução; passou disso, o Agente encerra o processo e registra a falha.

Opções do agendamento ​

Executar em paralelo, sem esperar a fila. Os agendamentos de um Tenant rodam um de cada vez. Marque esta opção num agendamento leve para que ele rode numa pista à parte, sem esperar os pesados. A pista tem limite próprio, em Execuções paralelas fora da fila: na tela do Agente. Um mesmo Dataflow nunca roda duas vezes ao mesmo tempo.

Atraso máximo permitido (minutos): quanto o agendamento pode atrasar antes de aparecer como Atrasado em Eventos.

Enviar e-mail em caso de sucesso: manda e-mail a cada execução bem-sucedida.

Executar um Dataflow agora ​

  1. Em Data Flows, abra a Mesa onde o Dataflow está publicado.
  2. Na linha do Dataflow, clique em Forçar execução.
  3. Num Dataflow Total, confirme "Deseja realmente executar este Dataflow?". Nos outros, a janela Forçar Execução em «nome» pede o Modo de carga:.
  4. Para um Dataflow de Janela, escolha em Modo do período: entre Dias Passados, Dias Futuros, Mês e Ano ou Ano, e preencha o período.
  5. Clique em Forçar Carga. A tela confirma "Ordem enviada para execução!".

Para rodar o agendamento inteiro fora do horário, use Forçar execução na linha dele, em Agendamentos, e confirme "Deseja realmente forçar a execução deste agendamento?".

A execução manual de um Dataflow não espera a fila. Ela é o caminho para a primeira carga de um Dataflow de Janela (Modo de carga Total) e para recarregar um mês que chegou errado.

Se der errado ​

"O Agente ETL precisa estar online para executar uma carga!" O Agente está offline. Ver Problemas.

O Dataflow não aparece na lista do agendamento. Ele não está publicado, ou está em outro Agente ETL.

O agendamento atrasa cada vez mais. Os agendamentos do Tenant não cabem no intervalo; ver Dimensionar o Agente ETL.

Relacionado ​

Pelo Lumo CLI

Este recurso também pode ser criado e versionado em YAML. Veja a referência de schedule.