Impostazione delle subroutine pre-lavoro e post-lavoro in DataStage

Le sottoroutine before-job e after-job vengono utilizzate per eseguire le sottoroutine integrate. Questa funzione è disponibile per il motore remoto DataStage Anywhere o Cloud Pak for Data. La funzione prima/dopo il lavoro è disponibile nel Cloud solo quando si utilizza un motore remoto DataStage Anywhere.

Le subroutine pre-lavoro e post-lavoro includono l'esecuzione di uno script prima dell'esecuzione del lavoro o la generazione di un report dopo il completamento corretto del lavoro. Un codice di ritorno di 0 dalla sottoroutine indica che l'operazione è stata eseguita correttamente. Qualsiasi altro codice indica un errore e causa un errore non recuperabile quando il lavoro viene eseguito.

Per impostare una subroutine prima o dopo il lavoro, completare i seguenti passaggi.
  1. Apri un DataStage® flusso, quindi fai clic sull'icona Icona Impostazioni Impostazioni.
  2. Nella pagina Impostazioni, fare clic su Subroutine prima/dopo il lavoro.
  3. Specificare una subroutine prima dell'esecuzione, una subroutine dopo l'esecuzione o entrambe. Quindi, clicca su Salva.

Utilizzo del codice personalizzato Python nelle subroutine

È possibile installare pacchetti Python per eseguire script nelle subroutine before-job e after-job.
  1. Apri un DataStage flusso, vai su Impostazioni Icona Impostazionie fai clic su Subroutine prima/dopo il lavoro.
  2. In Subroutine incorporata da eseguire, selezionare Esegui comando shell.
  3. Nella casella di testo Comando Shell, inserisci un comando per creare una directory per i tuoi moduli sotto /px-storage e un comando per installare i moduli desiderati. Questo comando di esempio installa i moduli nella directory pip_modules.
    mkdir -p /px-storage/pip_modules && pip3 install <modulename1> <modulename2> --target /px-storage/pip_modules –user
  4. Salva ed esegui il flusso.
  5. Per consentire agli utenti non root di eseguire lo script, aggiungere il percorso del file della directory del modulo all'inizio dello script Python. Seguendo l'esempio precedente:
    import sys
    sys.path.append("/px-storage/pip_modules")
  6. Sostituisci il comando nella casella di testo Comando Shell con un comando che richiama lo script Python con il relativo percorso file. Questo esempio richiama lo script test_data.py da /ds-storage/ing_py_env.
    python3 /ds-storage/ing_py_env/test_data.py
  7. Salva ed esegui il flusso.

Utilizzo di cpdctl nelle routine prima e dopo il lavoro

È possibile utilizzare la riga di comando (cpdctl) prima e dopo le routine di lavoro.

È possibile trovare il binario cpdctl nella /px-storage/tools/cpdctl directory. Se desideri aggiornare cpdctl all'ultima versione, puoi scaricare la versione specifica da questa pagina: https://github.com/IBM/cpdctl/releases. Utilizzare il seguente comando per copiare la versione di cpdctl:
 oc cp cpdctl ds-px-default-ibm-datastage-px-runtime-7d77747cfc-sjngt:/px-storage/tools/cpdctl/cpdctl

Per eseguire i comandi cpdctl, completare i seguenti passaggi.

  1. Apri un DataStage flusso, vai su Impostazioni Icona Impostazionie clicca su Subroutine prima/dopo il lavoro.
  2. In Subroutine incorporata da eseguire, selezionare Esegui comando shell.
  3. Nella casella di testo Comando Shell, inserisci il comando cpdctl che desideri eseguire, ad esempio
    cpdctl project list
  4. Se desideri eseguire il flusso dalla tela, puoi creare un parametro locale sulla tela del tuo lavoro.
    1. Sulla tela, clicca su Aggiungi parametri, quindi su Crea parametro.
    2. Nel campo Nome, specificare il nome del parametro come $ENABLE_CPDCTL.
    3. Scegli il tipo Stringa e inserisci il valore 1 nel campo Valore predefinito.
  5. Se desideri utilizzare la riga di comando cpdctl per eseguire il tuo lavoro, utilizza il seguente comando per configurare il lavoro con la variabile ENABLE_CPDCTL.
    cpdctl dsjob run --project-name --job --env ENABLE_CPDCTL=1
  6. Salva ed esegui il lavoro con l'opzione ambiente ENABLE_CPDCTL=1 specificata.