SYSTEM$GET_JOB_STATUS

Snowpark Container Services 작업 으로 상태를 검색합니다.

참고 항목:

작업 모니터링하기

구문

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

인자

필수:

job_uuid

Snowflake에서 작업에 할당한 UUID입니다. UUID을 찾는 방법은 EXECUTE SERVICE 항목의 사용법 노트 를 참조하십시오.

선택 사항:

timeout_secs

상태를 반환하기 전에 작업이 종료 상태(DONE 또는 FAILED)에 도달할 때까지 기다리는 시간(초)입니다. 작업이 지정된 시간 내에 종료 상태에 도달하지 않으면 Snowflake는 현재 상태를 반환합니다.

지정하지 않으면 Snowflake는 현재 상태를 즉시 반환합니다.

기본값: 0초

반환

각 작업 컨테이너에 대해 하나의 JSON 오브젝트가 있는 JSON 배열로 상태 정보를 반환합니다. JSON 필드는 다음과 같습니다.

  • status. 작업 컨테이너 상태입니다. 현재 지원되는 상태 값에는 PENDING, FAILED, DONE, UNKNOWN이 포함됩니다.

  • message. 특정 상태에 대한 세부 정보를 제공합니다. 예를 들어 상태가 PENDING인 경우 이 필드는 이유를 설명합니다.

  • containerName. 컨테이너 이름입니다.

  • instanceId. 작업 인스턴스 ID입니다. 작업의 경우 이는 항상 0입니다.

  • serviceName. Snowflake에서 작업에 할당한 UUID입니다.

  • image. 실행 중인 이미지의 URL입니다.

  • restartCount. Snowflake가 컨테이너를 다시 시작한 횟수입니다. 다시 시작 횟수가 높을수록 작업이 비정상임을 나타낼 수 있습니다. 예를 들어 작업 코드가 충돌하면 컨테이너가 종료될 수 있습니다. 그런 다음 Snowflake는 컨테이너를 다시 시작하려고 시도합니다. 이 경우 조사하려면 다음 옵션을 사용하여 컨테이너 로그에 액세스할 수 있습니다.

    • 라이브 로그(컨테이너가 실행 중임)에는 SYSTEM$GET_JOB_LOGS 를 사용합니다.

    • 영구 로그(컨테이너가 더 이상 실행되지 않을 때 유용함)에는 이벤트 테이블 을 사용합니다.

  • startTime. 컨테이너가 시작된 시간입니다.

사용법 노트

작업을 생성한 사용자만 작업 상태에 액세스할 수 있습니다.

다음 함수는 지정된 작업의 상태를 검색합니다.

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

샘플 출력:

[
  {
      "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