Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$GET_JOB_STATUS

Ruft den Status als Snowpark Container Services-Job ab.

Siehe auch:

Überwachen eines Jobs

Syntax

SYSTEM$GET_JOB_STATUS( <job_uuid> [ , <timeout_secs> ]  )
Copy

Argumente

Benötigt:

job_uuid

Von Snowflake zugewiesene UUID des Jobs. Eine Anleitung zum Auffinden der UUID finden Sie unter Nutzungshinweise zum EXECUTE SERVICE-Thema.

Optional:

timeout_secs

Anzahl der Sekunden, die gewartet wird, bis der Job einen Endzustand (DONE oder FAILED) erreicht hat, bevor der Status zurückgegeben wird. Wenn der Job den Endzustand nicht innerhalb der spezifizierten Zeit erreicht, gibt Snowflake den aktuellen Status zurück.

Wenn nicht angegeben, gibt Snowflake sofort den aktuellen Status zurück.

Der Standard ist 0 Sekunden.

Rückgabewerte

Gibt Statusinformationen in einem JSON-Array mit einem JSON-Objekt für jeden Jobcontainer zurück. Die JSON-Felder sind:

  • status. Status des Jobcontainers. Derzeit werden folgende Statuswerte unterstützt: PENDING, FAILED, DONE und UNKNOWN.

  • message. Stellt Details über den spezifischen Status bereit. Wenn der Status z. B. PENDING ist, wird in diesem Feld beschrieben, warum.

  • containerName. Name des Containers.

  • instanceId. Jobinstanz-ID. Für einen Job ist dies immer 0.

  • serviceName. Von Snowflake zugewiesene UUID des Jobs.

  • image. URL des in Ausführung befindlichen Images.

  • restartCount. Häufigkeit, mit der Snowflake den Container neu gestartet hat. Eine höhere Anzahl von Neustarts kann auf einen problembehafteten Job hindeuten. Wenn zum Beispiel Ihr Jobcode abstürzt, kann der Container beendet werden. Snowflake versucht dann, den Container neu zu starten. In diesem Fall können Sie mit diesen Optionen auf das Containerprotokoll zugreifen, um die Situation zu untersuchen:

    • Verwenden Sie die SYSTEM$GET_JOB_LOGS für Live-Protokolle (wenn der Container ausgeführt wird).

    • Verwenden Sie Ereignistabellen für dauerhafte Protokolle (nützlich, wenn der Container nicht mehr ausgeführt wird).

  • startTime. Zeitpunkt des Starts des Containers.

Nutzungshinweise

Nur der Benutzer, der den Job erstellt hat, kann auf den Jobstatus zugreifen.

Beispiele

Die folgende Funktion ruft den Status des angegebenen Jobs ab:

SELECT SYSTEM$GET_JOB_STATUS('01acc9da-0000-60e8-0000-0e9900201012');
Copy

Beispielausgabe:

[
  {
      "status":"DONE",
      "message":"Container finished",
      "containerName":"main",
      "instanceId":"0",
      "serviceName":"JOB_01ACC9DA000060E800000E9900201012",
      "image":"<account>.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository/my_job_image:tutorial",
      "restartCount":0,
      "startTime":"2023-01-01T00:00:00Z"
  }
]
Copy