카테고리:

Information Schema , 테이블 함수

CURRENT_TASK_GRAPHS

현재 예약되었거나 실행 중인 그래프 실행의 상태를 반환합니다. 그래프는 현재 단일 예약 작업 또는 예약된 루트 작업과 하나 이상의 하위 작업(즉, 정의된 선행 작업이 있는 작업)으로 구성된 작업의 DAG 로 정의됩니다. 이 함수의 목적상, 루트 작업 은 단일 예약 작업 또는 DAG의 루트 작업을 나타냅니다.

이 함수는 현재 실행 중이거나 향후 8일 이내에 실행하도록 다음으로 예약된 그래프 실행에 대한 세부 정보를 반환합니다. 지난 60분 동안 완료된 그래프 실행에 대한 세부 정보를 검색하려면 COMPLETE_TASK_GRAPHS 테이블 함수를 쿼리하십시오.

이 함수는 전체 Snowflake 계정 또는 지정된 루트 작업에 대한 그래프 실행 세부 정보를 반환합니다.

구문

CURRENT_TASK_GRAPHS(
      [ RESULT_LIMIT => <integer> ]
      [, ROOT_TASK_NAME => '<string>' ] )
Copy

인자

모든 인자는 선택 사항입니다.

RESULT_LIMIT => integer

함수가 반환하는 최대 행 수를 지정하는 숫자입니다. 결과는 내림차순 SCHEDULED_TIME 순서로 반환됩니다. 일치하는 행의 수가 결과 제한보다 큰 경우, 지정된 제한까지를 범위로 하여 예약된 타임스탬프가 가장 최근인 그래프 실행이 반환됩니다.

범위: 1 ~ 10000

기본값: 1000

ROOT_TASK_NAME => string

루트 작업의 이름을 지정하는 대/소문자를 구분하지 않는 문자열. 정규화되지 않은 작업 이름만 지원됩니다. 지정된 작업의 그래프 실행만 반환됩니다. 여러 작업의 이름이 같은 경우, 이 함수는 이러한 작업 각각에 대한 그래프 실행을 반환합니다.

사용법 노트

  • ACCOUNTADMIN 역할, 작업 소유자(즉, 작업에 대한 OWNERSHIP 권한이 있는 역할) 또는 전역 MONITOR EXECUTION 권한이 있는 역할에 대한 결과만 반환합니다. 역할에 MONITOR EXECUTION 권한이 있는 데다, 작업을 저장하는 데이터베이스 및 스키마에 대한 USAGE 권한도 있는 경우를 제외하고, 출력의 DATABASE_NAME 및 SCHEMA_NAME 값은 NULL입니다.

  • CURRENT_TASK_GRAPHS 함수를 쿼리할 때 작업 이름 및 결과 제한 인자가 먼저 적용되고, 지정된 경우 각각 WHERE 및 LIMIT 절이 뒤따릅니다. 또한, CURRENT_TASK_GRAPHS 함수는 SCHEDULED_TIME의 내림차순으로 기록을 반환합니다.

    실제로, 계정에서 실행 중인 작업 그래프가 많은 경우, 함수가 반환한 결과에는 예약된 작업만 포함될 수 있습니다. 특히 RESULT_LIMIT 값이 상대적으로 낮은 경우 더욱 그렇습니다.

  • Information Schema 테이블 함수를 호출할 때 세션에는 사용 중인 INFORMATION_SCHEMA 스키마가 있거나 또는 함수 이름이 정규화되어야 합니다. 자세한 내용은 Snowflake Information Schema 섹션을 참조하십시오.

출력

이 함수는 다음 열을 반환합니다.

열 이름

데이터 타입

설명

ROOT_TASK_NAME

TEXT

루트 작업의 이름입니다.

DATABASE_NAME

TEXT

그래프를 포함하는 데이터베이스의 이름입니다.

SCHEMA_NAME

TEXT

그래프를 포함하는 스키마의 이름입니다.

STATE

TEXT

그래프 실행의 상태:

  • SCHEDULED: 루트 작업은 이후 시점에 예약됩니다.

  • EXECUTING: 그래프에서 실행되는 하나 이상의 작업이 여전히 실행 중이거나 루트 작업이 성공적으로 실행되어 완료되었으며 하나 이상의 하위 작업이 예약됩니다.

루트 작업 실행의 상태가 SKIPPED인 경우 함수는 실행할 행을 반환하지 않습니다.

SCHEDULED_FROM

TEXT

다음 중 하나:

  • SCHEDULE: CREATE TASK 의 SCHEDULE 또는 AFTER 절에 설명된 대로 작업이 정상적으로 실행되도록 예약되었습니다.

  • EXECUTE_TASK: 작업이 EXECUTE TASK 를 사용하여 실행되도록 예약되었습니다.

  • MANUAL RETRY: 작업이 EXECUTE TASK … RETRY LAST 를 사용하여 실행되도록 예약되었습니다.

FIRST_ERROR_TASK_NAME

TEXT

오류를 반환한 그래프에서 첫 번째 작업의 이름이며, 오류가 발생한 작업이 없으면 NULL을 반환합니다.

FIRST_ERROR_CODE

NUMBER

FIRST_ERROR_TASK_NAME에 명명된 작업에서 반환된 오류의 오류 코드이며, 오류가 발생한 작업이 없으면 NULL을 반환합니다.

FIRST_ERROR_MESSAGE

TEXT

FIRST_ERROR_TASK_NAME에 명명된 작업에서 반환된 오류의 오류 메시지이며, 오류가 발생한 작업이 없으면 NULL을 반환합니다.

SCHEDULED_TIME

TIMESTAMP_LTZ

루트 작업이 실행을 시작하도록 예약된 시간입니다. 저희는 절대적인 정확성을 보장하기 위해 최선을 다하지만, 예약된 시간 이전에 작업이 실행되지 않는다는 것만 보장합니다.

QUERY_START_TIME

TIMESTAMP_LTZ

루트 작업 정의의 쿼리 실행이 시작된 시간입니다. 이 타임스탬프는 QUERY_HISTORY에서 반환된 쿼리의 시작 시간과 일치합니다.

NEXT_SCHEDULED_TIME

TIMESTAMP_LTZ

SCHEDULED_TIME 시간에 시작된 독립 실행형 작업 또는 DAG 의 현재 실행이 시간 내에 완료된다고 가정할 때, 독립형 또는 루트 작업(DAG 에 있음)의 다음 실행 시작이 예약된 시간입니다.

ROOT_TASK_ID

TEXT

DAG 의 루트 작업에 대한 고유 식별자입니다. 이 ID는 동일한 작업에 대한 SHOW TASKS 출력의 ID 열 값과 일치합니다.

GRAPH_VERSION

NUMBER

실행되었거나 실행되도록 예약된 DAG 의 버전을 식별하는 정수입니다.

RUN_ID

NUMBER

DAG 의 독립 실행형 또는 루트 작업이 실행을 시작하도록 원래 예약된 시간입니다. 형식은 Epoch 시간(밀리초)입니다. . . 원래 예약된 시간은 시스템이 재시도 또는 로딩 균형 재조정 목적으로 동일 작업을 다른 시간에 실행하도록 다시 예약할 수 있는 드문 경우를 나타냅니다. 이 경우, RUN_ID는 원래 예약된 실행 시간을 표시하고 SCHEDULED_TIME은 다시 예약된 실행 시간을 표시합니다. . . RUN_ID는 재시도 전 현재 작업/그래프 실행에 대한 고유 식별자가 아닐 수 있습니다. RUN_ID 대신에 GRAPH_RUN_GROUP_ID 열을 사용할 수 있습니다.

ATTEMPT_NUMBER

NUMBER

이 작업을 실행하려는 시도 횟수를 나타내는 정수입니다. 처음에는 1입니다.

CONFIG

TEXT

명시적으로 설정된 경우 그래프 실행 중에 사용된 그래프 수준 구성을 표시합니다. 그렇지 않으면 NULL을 표시합니다.

GRAPH_RUN_GROUP_ID

NUMBER

그래프 실행의 식별자입니다. 그래프 실행에 여러 작업 실행이 있는 경우 각 작업 실행은 동일한 GRAPH_RUN_GROUP_ID 를 표시합니다. GRAPH_RUN_GROUP_ID 와 ATTEMPT_NUMBER 의 조합을 사용하여 그래프 실행을 고유하게 식별할 수 있습니다.

BACKFILL_INFO

OBJECT

Reserved for future use. The returned value for all rows is NULL.

계정에서 (아직 실행 중이거나 미래에 예약된) 가장 최근의 그래프 실행 1,000개를 검색합니다. 함수가 반환하는 최대 행 수는 기본적으로 1,000개로 제한됩니다. 반환된 행 수를 변경하려면 RESULT_LIMIT 인자 값을 수정하십시오.

select *
  from table(information_schema.current_task_graphs())
  order by scheduled_time;
Copy

(아직 실행 중이거나 미래에 예약된) 지정된 작업에 대해 가장 최근의 그래프 실행 10개를 검색합니다.

select *
  from table(information_schema.current_task_graphs(
    result_limit => 10,
    root_task_name=>'MYTASK'));
Copy