Os agendadores de tarefas são programas de computador que controlam as execuções de outros programas nos bastidores ou como parte de processos em lote. Essa automação de carga de trabalho é normalmente coordenada para que o processamento tradicional de dados em segundo plano possa ser integrado a atividades de negócios em tempo real sem esgotar recursos ou interferir em outros aplicativos. O agendador de tarefas automatiza interfaces em fluxos de trabalho, envia e monitora execuções e enfileira a ordem de execução de tarefas não relacionadas para que as operações sejam tratadas na ordem correta e sujeitas a condições específicas.
Uma ferramenta popular para automação de processos de banco de dados é o agendador de tarefas integrado da Oracle. Ele pode ser usado não apenas para automatizar procedimentos SQL e operações de utilitários, mas também para processos de terceiros que afetam a eficiência do Oracle. Os DBAs Oracle usam rotineiramente IRI FACT, IRI CoSort e SQL*Loader para remover a sobrecarga de transformações da camada de banco de dados e melhorar o fluxo de trabalho em ETL de alto volume e operações de reorganização offline. Essas ferramentas agora podem ser combinadas e agendadas com o Job Scheduler da Oracle no IRI Workbench, um ambiente GUI construído no Eclipse™.
Seja na linha de comando, um front-end Oracle ou IRIs no Eclipse™, os DBAs Oracle agora podem agendar etapas de ETL interdependentes ou configurar operações de descarregamento/classificação/recarregamento (reorganização) usando o software IRI. Com o Oracle Job Scheduler, DBMS_SCHEDULER, DBAs e arquitetos de data warehouse podem especificar quando iniciar extrações FACT, ordenações/transformações/relatórios CoSort e/ou carregamentos em massa e especificar dependências entre esses processos.
O Oracle Job Scheduler ajuda o usuário a gerenciar e planejar diferentes tarefas para que a intervenção manual não seja necessária. Para usar o agendador de tarefas, são necessários três pequenos scripts:
• Procedimento para montar o processo ETL
• Função para capturar qualquer mensagem do programa Java
• Programa Java para lidar com as chamadas de linha de comando para as etapas de ETL:FACT (E), CoSort SortCL (T), e Oracle SQL*Loader (L)
Uma vez que os scripts estejam prontos, o usuário pode então criar um procedimento para automatizar o trabalho desejado. O usuário pode especificar a data e hora em que o procedimento começará. O usuário também pode especificar com que frequência deseja que o trabalho seja executado (semanal, diário, de hora em hora ou em um horário e data específicos até a cada 30 segundos).
O agendador gerenciará as etapas para que sejam executadas na ordem correta. Também é possível definir verificações personalizadas para garantir que a próxima etapa não comece a menos que a anterior tenha sido bem-sucedida ou atenda a determinados critérios.
No exemplo, abaixo o usuário selecionou o procedimento “runFlow” para iniciar as etapas definidas todas as terças-feiras às 8h00 e todas as sextas-feiras às 15h00.
DECLARE
JobNo user_jobs.job%TYPE;
v_date1 date :=to_date('20130312 080000′,'yyyymmdd hh24miss');
v_date2 date :=to_date('20130315 150000 ′,'yyyymmdd hh24miss');
BEGIN
dbms_job.submit( JobNo, –Job ID
'begin runFlow; end;', — Procedimento a ser executado
v_date1, — start executando em
'SYSDATE + 7' — intervalo de jobs
);
COMMIT;
dbms_job.submit( JobNo, –Job ID
'begin runFlow; end; ', — Procedimento para executar
v_date2, — iniciar a execução em
'SYSDATE + 7' — intervalo de jobs
);
COMMIT;
END;
Há benefícios significativos em automatizar os processos ETL dessa maneira, principalmente para DBAs Oracle já familiarizados com DBMS_SCHEDULER. O método pode economizar a despesa de pacotes caros de ETL ou agendamento de tarefas, minimizar as chances de erro humano e evitar a necessidade de intervenção manual. Também é possível usar a integração para automatizar a reorganização offline e as etapas relacionadas ao ELT.
Se você tiver alguma dúvida sobre a implementação das etapas de trabalho IRI no Oracle Job Scheduler, ou quiser o exemplo do white paper, entre em contato conosco.