COMPLETE_TASK_GRAPHS
COMPLETE_TASK_GRAPHS (완료된 태스크 그래프)
완료된 그래프 실행의 상태를 반환해요. 이 함수는 지난 60분 안에 성공적으로 실행되거나, 실패하거나, 취소된 실행에 대한 세부 정보를 반환해요. 그래프는 현재 단일 예약 태스크, 또는 예약된 루트 태스크와 하나 이상의 종속 태스크(즉, 정의된 선행 태스크가 하나 이상 있는 태스크)로 구성된 태스크 그래프로 정의돼요. 이 함수의 목적상 루트 태스크는 단일 예약 태스크 또는 태스크 그래프의 루트 태스크를 의미해요.
현재 실행 중이거나 향후 8일 안에 다음으로 실행될 예정인 그래프 실행의 세부 정보를 가져오려면 CURRENT_TASK_GRAPHS 테이블 함수를 쿼리해요.
이 함수는 전체 Snowflake 계정 또는 지정한 루트 태스크에 대한 그래프 실행 세부 정보를 반환해요.
본문
구문
COMPLETE_TASK_GRAPHS(
[ RESULT_LIMIT => <integer> ]
[, ROOT_TASK_NAME => '<string>' ]
[, ERROR_ONLY => { TRUE | FALSE } ] )
인자
모든 인자는 선택적이에요.
RESULT_LIMIT => <integer>
함수가 반환하는 최대 행 수를 지정하는 숫자예요. 결과는 COMPLETED_TIME의 내림차순으로 반환된다는 점에 주의하세요. 일치하는 행 수가 결과 제한보다 많으면, 가장 최근에 완료된 타임스탬프를 가진 그래프 실행이 지정한 제한까지 반환돼요. 범위: 1에서 10000. 기본값: 1000.
ROOT_TASK_NAME => <string>
루트 태스크의 이름을 지정하는 대소문자 구분 없는 문자열이에요. 정규화되지 않은 태스크 이름만 지원돼요. 지정한 태스크에 대한 그래프 실행만 반환돼요. 여러 태스크가 같은 이름을 가지면 함수는 이 각 태스크에 대한 그래프 실행을 반환한다는 점에 주의하세요.
ERROR_ONLY => { TRUE | FALSE }
TRUE로 설정하면 이 함수는 실패했거나 취소된 그래프 실행만 반환해요.
사용 참고 사항
- 이 함수에서 태스크 그래프를 보려면 호출 역할이 다음 권한 중 하나 이상이 있어야 해요:
- 태스크에 대한 OWNERSHIP 권한(즉, 태스크 소유자)
- 태스크에 대한 MONITOR 또는 OPERATE 권한
- 전역 MONITOR EXECUTION 권한
- ACCOUNTADMIN 역할 역할은 태스크를 저장하는 데이터베이스와 스키마에 대한 USAGE 권한도 있어야 해요. 그렇지 않으면 출력의 DATABASE_NAME 및 SCHEMA_NAME 값이 NULL이 돼요.
- 이 함수는 RESULT_LIMIT 인자 값에 설정된 최대 10,000행을 반환해요. 기본값은 1000이에요. 이 제한을 피하려면 COMPLETE_TASK_GRAPHS 뷰(Account Usage)를 사용해요.
- COMPLETE_TASK_GRAPHS 함수를 쿼리하면 태스크 이름과 결과 제한 인자가 먼저 적용되고, 그다음 지정된 경우 WHERE와 LIMIT 절이 각각 적용돼요. 또한 함수는 COMPLETED_TIME의 내림차순으로 레코드를 반환해요. 실제로 계정에서 지난 한 시간 안에 많은 태스크 그래프가 실행을 완료했다면, 특히 RESULT_LIMIT 값이 상대적으로 낮으면 함수가 반환한 결과에 기대하는 레코드가 포함되지 않을 수 있어요.
- 정보 스키마 테이블 함수를 호출할 때 세션에 INFORMATION_SCHEMA 스키마가 사용 중이거나 함수 이름이 정규화되어 있어야 해요.
출력
이 함수는 다음 컬럼을 반환해요:
| 컬럼 이름 | 데이터 타입 | 설명 |
|---|---|---|
| ROOT_TASK_NAME | TEXT | 루트 태스크의 이름 |
| DATABASE_NAME | TEXT | 그래프를 포함하는 데이터베이스의 이름 |
| SCHEMA_NAME | TEXT | 그래프를 포함하는 스키마의 이름 |
| STATE | TEXT | 그래프 실행의 상태: SUCCEEDED(그래프의 모든 태스크가 성공적으로 완료됨, 또는 루트 태스크 실행이 성공하고 하나 이상의 자식 태스크 실행이 건너뛰어짐), FAILED(그래프에서 하나 이상의 태스크 실행이 실패함, 또는 루트 태스크 실행이 성공하고 하나 이상의 자식 태스크 실행이 실패함), CANCELLED(그래프에서 하나 이상의 태스크 실행이 취소됨, 또는 루트 태스크 실행이 성공하고 하나 이상의 자식 태스크 실행이 취소됨). 루트 태스크 실행의 상태가 SKIPPED이면 함수는 해당 실행에 대한 행을 반환하지 않는다는 점에 주의하세요. |
| SCHEDULED_FROM | TEXT | 다음 중 하나: SCHEDULE(CREATE TASK의 SCHEDULE 또는 AFTER 절에 설명된 대로 태스크가 정상적으로 실행되도록 예약됨), EXECUTE_TASK(EXECUTE TASK로 실행되도록 예약됨), MANUAL RETRY(EXECUTE TASK … RETRY LAST로 실행되도록 예약됨), AUTOMATIC RETRY(태스크가 실패 시 재시도하도록 구성되었고 이전 실행이 실패함), TRIGGER(태스크의 WHEN 절의 스트림에 새 데이터가 있어 태스크가 실행됨). 태스크 그래프의 자식 태스크 실행의 경우 이 컬럼은 루트 태스크 실행과 같은 값을 반환해요. |
| 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에 시작해서 제시간에 완료된다고 가정할 때, 단독 태스크 또는 (태스크 그래프의) 루트 태스크가 다음으로 실행을 시작하도록 예약된 시각 |
| COMPLETED_TIME | TIMESTAMP_LTZ | 태스크 그래프의 마지막 태스크가 완료된 시각 |
| ROOT_TASK_ID | TEXT | 태스크 그래프의 루트 태스크에 대한 고유 식별자. 이 ID는 SHOW TASKS 출력의 ID 컬럼 값과 일치해요. |
| GRAPH_VERSION | NUMBER | 실행되었거나 실행될 예정인 태스크 그래프 버전을 식별하는 정수 |
| RUN_ID | NUMBER | 단독 태스크 또는 태스크 그래프의 루트 태스크가 원래 실행을 시작하도록 예약된 시각. 형식은 epoch 시간(밀리초)이에요. 원래 예약 시각은 시스템이 재시도하거나 부하를 재분산하기 위해 같은 태스크를 다른 시각에 실행하도록 다시 예약하는 드문 경우를 말해요. |
| ATTEMPT_NUMBER | NUMBER | 이 태스크를 실행하려 시도한 횟수를 나타내는 정수. 처음에는 1. |
| CONFIG | TEXT | 명시적으로 설정된 경우 그래프 실행 중 사용된 그래프 수준 구성을 표시해요. 그렇지 않으면 NULL을 표시해요. |
| GRAPH_RUN_GROUP_ID | TEXT | 그래프 실행의 식별자. 그래프 실행에 여러 태스크 실행이 있으면 각 태스크 실행은 같은 GRAPH_RUN_GROUP_ID를 표시해요. GRAPH_RUN_GROUP_ID와 ATTEMPT_NUMBER의 조합으로 그래프 실행을 고유하게 식별할 수 있어요. |
| BACKFILL_INFO | OBJECT | 향후 사용을 위해 예약됨. 모든 행에 대해 반환되는 값은 NULL이에요. |
예시
계정의 가장 최근 1000개 완료된 그래프 실행을 가져와요. 함수가 반환하는 최대 행 수는 기본적으로 1000으로 제한된다는 점에 주의하세요. 반환되는 행 수를 변경하려면 RESULT_LIMIT 인자 값을 수정해요:
select * from table(information_schema.complete_task_graphs()) order by scheduled_time;
지난 한 시간 안에 지정한 태스크 그래프의 가장 최근 10개 완료된 그래프 실행을 가져와요:
select * from table(information_schema.complete_task_graphs ( result_limit => 10, root_task_name=>'MYTASK'));