Depois de instalar a aplicação, uma das primeiras coisas que você precisa saber, é como fazer o agendamento das ETLs que criar. Afinal, de que vale uma ferramenta de automação que não pode ser automatizada, não e mesmo?
O que faremos aqui é basicamente criar uma ETL (main.kjb), colocar um arquivo batch na mesma pasta (main.bat) e depois fazer seu agendamento.
Por que nomear tudo como main? Bom, na verdade pode ser qualquer nome. Apenas estou mantendo uma convenção adotada por linguagens como C e Java. Essa convenção será útil no futuro, quando suas ETLs ficarem mais complexas e forem criados muitos arquivos. Dessa forma, quando abrir uma pasta de processo, você vai saber imediatamente qual é o job que coordena tudo.
1. Crie uma ETL
O propósito aqui é apenas mostrar como realizar o agendamento, portanto este job não executará nenhuma tarefa.
Abra o [tooltip content=”Pentaho Data Integration” gravity=”sw” fade=”0″]PDI[/tooltip], caso não tenha instalado CLIQUE AQUI
No menu superior, vá em: File > New > Job
Vá para a caixa de ferramentas (canto esquerdo), aba Design e começe a digitar “s t a r t” para iniciar a procura. Arraste os steps START e DUMMY para a área de trabalho. Para fazer a ligação (o termo correto é HOP), clique na origem, pressione Shift (mantendo o mouse pressionado) e arraste o cursor até o destino. (Fique tranquilo, ninguém acerta isso de primeira)
Salve o job com o nome main.kjb
Execute o job pela interface gráfica. Basta clicar no botão > logo abaixo da letra “m” de main e depois dar ENTER na próxima janela. Na verdade nada vai acontecer, o propósito é você se familiarizar com a interface gráfica e verificar o log que será apresentado no rodapé.
O formato .kjb não é executável. Ele precisa ser chamado pelo arquivo batch que será criado adiante. Pode fechar a interface gráfica, ela é necessária apenas para criar o job.
2. Crie o arquivo main.bat
Este é o arquivo que junta todas as peças e faz com que a sua ETL seja acionada via linha de comando (por consequência permite que seja agendada)
O nivel de detalhamento do que será logado é configurável e vai desde Error até Rowlevel, que é o mais verboso (recomendo que não o utilize, porque é MUITO detalhado). Geralmente os níveis Minimal ou Basic são suficientes.
Insira o conteúdo abaixo, adequando as linhas destacadas:
@echo off TITLE MeuProcessoAutomatico SET currentdir=%~dp0 SET kitchen=D:\Portables\Pdi53\Kitchen.bat SET logfile="%currentdir%log.txt" echo. >> %logfile% echo. >> %logfile% # level: Error Minimal Basic Detailed Debug Rowlevel "%kitchen%" /file:"%currentdir%main.kjb" /level:Basic >> %logfile%
Salve o arquivo e o execute.
Após alguns segundos, o arquivo log.txt terá sido criado na mesma pasta. Seu conteúdo será semelhante a este, que é parecido com o que você teve ter visto no console da interface gráfica ao executar sua ETL pela primeira vez:
DEBUG: Using JAVA_HOME DEBUG: _PENTAHO_JAVA_HOME=D:\Portables\Java8_64 DEBUG: _PENTAHO_JAVA=D:\Portables\Java8_64\bin\java.exe D:\Portables\Pdi53>"D:\Portables\Java8_64\bin\java.exe" "-Xmx768m" "-XX:MaxPermSize=384m" "-Djava.library.path=libswt\win64" "-DKETTLE_HOME=" "-DKETTLE_REPOSITORY=" "-DKETTLE_USER=" "-DKETTLE_PASSWORD=" "-DKETTLE_PLUGIN_PACKAGES=" "-DKETTLE_LOG_SIZE_LIMIT=" "-DKETTLE_JNDI_ROOT=" -jar launcher\pentaho-application-launcher-5.3.0.0-213.jar -lib ..\libswt\win64 -main org.pentaho.di.kitchen.Kitchen /file:"C:\agendamento\main.kjb" /level:Basic 2017/12/12 18:37:21 - Kitchen - Logging is at level : Basic logging 2017/12/12 18:37:21 - Kitchen - Start of run. 2017/12/12 18:37:23 - main - Start of job execution 2017/12/12 18:37:24 - Kitchen - Finished! 2017/12/12 18:37:24 - Kitchen - Start=2017/12/12 18:37:21.304, Stop=2017/12/12 18:37:24.011 2017/12/12 18:37:24 - Kitchen - Processing ended after 2 seconds.
Enquanto o processo está em execução, tudo que você vê é uma tela preta. O relatório de execução é direcionado apenas para o arquivo log.txt.
Existe uma maneira de fazer com que o log também seja apresentado no console.
Aqui vai a dica: utilize o aplicativo tee para windows. (quem usa Linux, deve conhecer)
Faça o download nesse endereço: http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php
Será necessário baixar também o arquivo com as dlls necessárias: http://gnuwin32.sourceforge.net/downlinks/coreutils-dep-zip.php
Copie tee.exe, libintl3.dll e libiconv2.dll para a mesma pasta da sua ETL.
Edite o arquivo main.bat. Altere sua última linha para:
"%kitchen%" /file:"%currentdir%main.kjb" /level:Basic | tee.exe -a %logfile%
3. Faça o agendamento:
Digite “Taskschd.msc” na linha de comando.
Vá em “Criar Tarefa”
Em Disparadores: configure os horários de execução
Em Ações: insira o caminho completo para o arquivo main.bat
Agora é só programar sua ETL para fazer algo útil como atualizar um banco de dados, gerar planilhas, consolidar informações, enviar alarmes, etc. Falaremos mais sobre isso nas próximas postagens.
Comentários