Configurando subroutines de tarefas antes-de-tarefa e após-job em DataStage
Use as sub-rotinas before-job e after-job para executar sub-rotinas integradas. Esse recurso está disponível para o motor remoto DataStage Anywhere ou Cloud Pak for Data. O recurso antes/depois do trabalho está disponível na nuvem somente quando se usa um mecanismo remoto DataStage Anywhere.
Antes-job e after-job subroutines incluem executar um script antes que a tarefa seja executada ou gerando um relatório após a conclusão do trabalho com sucesso. Um código de retorno de 0 da sub-rotina indica sucesso. Qualquer outro código indica falha e causa um erro irrecuperável quando a tarefa é executada.
Para configurar um subroutine antes de job ou after-job, complete as etapas a seguir.
- Abra um fluxo DataStage® , em seguida, clique no ícone Configurações
. - Na página Configurações , clique em Before / after-job subroutines.
- Especificar um subroutinho de trabalho antes, um subroutine de pós-emprego ou ambos. Em seguida, clique em Salvar.
Usando o código Python customizado em sub-rotinas
É possível instalar pacotes Python para executar scripts em sub-rotinas de tarefas anteriores e posteriores.
- Abra um fluxo do DataStage , navegue até Configurações
e clique em sub-rotinas de Antes / Depois da tarefa - Em sub-rotina integrada para executar, escolha Executar comando shell..
- Na caixa de texto Comando ( Shell ), insira um comando para criar um diretório para seus módulos em /px-storage e um comando para instalar os módulos desejados. Este comando de exemplo instala módulos no diretório pip_modules..
mkdir -p /px-storage/pip_modules && pip3 install <modulename1> <modulename2> --target /px-storage/pip_modules –user - Salve e execute o fluxo..
- Para permitir que os usuários não raiz executem seu script, anexe o caminho de arquivo do diretório do módulo na parte superior do script Python Seguindo o exemplo anterior:
import sys sys.path.append("/px-storage/pip_modules") - Substitua o comando na caixa de texto “ Shell ” (Executar este comando) por um comando para chamar o script “ Python ” com seu caminho de arquivo. Este exemplo chama o script
test_data.pyde /ds-storage/ing_py_env.python3 /ds-storage/ing_py_env/test_data.py - Salve e execute o fluxo..
Uso do cpdctl em rotinas antes e depois do trabalho
Você pode usar a linha de comando (cpdctl) antes e depois das rotinas de trabalho.
Você pode encontrar o binário cpdctl no diretório /px-storage/tools/cpdctl. Se você quiser atualizar o cpdctl para a versão mais recente, poderá fazer o download da versão específica nesta página: https://github.com/IBM/cpdctl/releases. Use o seguinte comando para copiar a versão do cpdctl:
oc cp cpdctl ds-px-default-ibm-datastage-px-runtime-7d77747cfc-sjngt:/px-storage/tools/cpdctl/cpdctl
Para executar os comandos cpdctl, execute as etapas a seguir.
- Abra um fluxo DataStage, vá para Configurações
e clique em Subrotinas antes/depois do trabalho. - Em sub-rotina integrada para executar, escolha Executar comando shell..
- Na caixa de texto comando Shell, digite o comando cpdctl que deseja executar, por exemplo
cpdctl project list - Se quiser executar o fluxo a partir da tela, você pode criar um parâmetro local na tela do trabalho.
- Na tela, clique em Adicionar parâmetros e, em seguida, Criar parâmetro.
- No campo Name, especifique o nome do parâmetro como $ENABLE_CPDCTL.
- Escolha o tipo String e digite um valor 1 no campo Default value.
- Se você quiser usar a linha de comando cpdctl para executar seu trabalho, use o seguinte comando para configurar o trabalho com a variável ENABLE_CPDCTL.
cpdctl dsjob run --project-name --job --env ENABLE_CPDCTL=1 - Salve e execute o trabalho com a opção de ambiente especificada ENABLE_CPDCTL=1.