?>Array ( [id] => 47 ) Überwachung eines langlaufenden ETL-Jobs unter Last - WeAreCAS
session actionstatus

Überwachung eines langlaufenden ETL-Jobs unter Last

Scénario de test & Cas d'usage

Contexto empresarial

In einem nächtlichen Batch-Fenster muss ein großer ETL-Prozess (Extrahieren, Transformieren, Laden) auf einer Tabelle mit Millionen von Datensätzen ausgeführt werden. Der Prozess wird mit 'dataStep.runCode' asynchron gestartet. Ein Betriebsteam muss den Job-Status überwachen, um sicherzustellen, dass er aktiv läuft und nicht hängen geblieben ist, und um seinen Abschluss zu bestätigen.
Preparación de datos

Erstellung einer großen Tabelle ('BIG_DATA') mit 5 Millionen Zeilen direkt in CAS, um einen langlaufenden Job zu simulieren.

¡Copiado!
1PROC CAS;
2 loadactionset 'datastep';
3 runCode / code='data casuser.BIG_DATA(replace=yes); do i = 1 to 5000000; x = rand("NORMAL"); y = rand("UNIFORM"); output; end; run;';
4RUN;

Étapes de réalisation

1
Starten Sie einen Data-Step-Job asynchron, der eine neue Spalte in der großen Tabelle berechnet. Dies wird absichtlich einige Sekunden dauern.
¡Copiado!
1PROC CAS;
2 loadactionset 'datastep';
3 etl_job = datastep.runCode /
4 async='etl_job',
5 code='data casuser.BIG_DATA_TRANSFORMED; set casuser.BIG_DATA; z = log(abs(x) + 0.01) * y; run;';
6RUN;
2
Fragen Sie den Status sofort nach dem Start ab. Der erwartete Status ist 'running', was bestätigt, dass der Job erfolgreich gestartet wurde und aktiv ist.
¡Copiado!
1PROC CAS;
2 job_uuid = etl_job.jobid;
3 PRINT 'Überwachung der Job-UUID: ' job_uuid;
4 SESSION.actionstatus / uuid=job_uuid;
5RUN;
3
Warten Sie einige Sekunden (simuliert durch einen separaten Schritt) und fragen Sie den Status erneut ab. Der erwartete Status ist nun 'completed'.
¡Copiado!
1/* In einem realen Skript würde hier eine Pause von 5-10 Sekunden eingefügt. */
2PROC CAS;
3 SESSION.actionstatus / uuid=job_uuid;
4RUN;

Resultado esperado


Der erste Aufruf von 'actionstatus' sollte den Jobstatus als 'running' anzeigen. Der zweite Aufruf nach einer kurzen Pause sollte den Status als 'completed' anzeigen. Dies validiert die Fähigkeit, den Lebenszyklus eines langlaufenden Jobs von der Ausführung bis zum Abschluss zu verfolgen.