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.
- Apri un DataStage® flusso, quindi fai clic sull'icona
Impostazioni. - Nella pagina Impostazioni, fare clic su Subroutine prima/dopo il lavoro.
- Specificare una subroutine prima dell'esecuzione, una subroutine dopo l'esecuzione o entrambe. Quindi, clicca su Salva.
Utilizzo del codice personalizzato Python nelle subroutine
- Apri un DataStage flusso, vai su Impostazioni
e fai clic su Subroutine prima/dopo il lavoro. - In Subroutine incorporata da eseguire, selezionare Esegui comando shell.
- 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 - Salva ed esegui il flusso.
- 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") - 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.pyda /ds-storage/ing_py_env.python3 /ds-storage/ing_py_env/test_data.py - 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.
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.
- Apri un DataStage flusso, vai su Impostazioni
e clicca su Subroutine prima/dopo il lavoro. - In Subroutine incorporata da eseguire, selezionare Esegui comando shell.
- Nella casella di testo Comando Shell, inserisci il comando cpdctl che desideri eseguire, ad esempio
cpdctl project list - Se desideri eseguire il flusso dalla tela, puoi creare un parametro locale sulla tela del tuo lavoro.
- Sulla tela, clicca su Aggiungi parametri, quindi su Crea parametro.
- Nel campo Nome, specificare il nome del parametro come $ENABLE_CPDCTL.
- Scegli il tipo Stringa e inserisci il valore 1 nel campo Valore predefinito.
- 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 - Salva ed esegui il lavoro con l'opzione ambiente ENABLE_CPDCTL=1 specificata.