SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS
SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS
시스템이 이미 처리하기 시작한 지정된 태스크의 실행(즉 TASK_HISTORY 출력에서 EXECUTING 상태인 실행)을 취소하는 시스템 함수예요.
본문
Syntax
SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS( '<task_name>' )
Arguments
task_name:
태스크의 이름이에요.
Usage notes
- 태스크 소유자(즉 태스크에 대한 OWNERSHIP 권한이 있는 역할) 또는 태스크에 대한 OPERATE 권한이 있는 역할만 이 함수를 호출할 수 있어요.
- task_name은 문자열이므로 작은따옴표로 묶어야 해요:
- 이름이 정규화된 경우 데이터베이스와 스키마를 포함한 전체 이름을 작은따옴표로 묶어야 해요; 예:
'<db>.<schema>.<task_name>'. - 태스크 이름이 대소문자를 구분하거나 특수 문자·공백을 포함하면 대소문자/문자를 처리하기 위해 큰따옴표가 필요해요. 큰따옴표는 작은따옴표 안에 묶여야 해요; 예:
'"<task_name>"'.
- 이름이 정규화된 경우 데이터베이스와 스키마를 포함한 전체 이름을 작은따옴표로 묶어야 해요; 예:
- 이 함수는 지정된 태스크의 현재 실행이 실제로 취소되기 전에 성공 메시지를 반환해요.
- 지정된 태스크의 현재 실행이 거의 완료된 경우 이 함수가 실행을 취소하지 못할 수 있어요.
- 이 함수는 지정된 태스크의 현재 실행만 취소해요. 이 태스크를 포함하는 태스크 그래프의 추가 태스크도 실행 중일 수 있어요. 이러한 실행을 취소하려면 이 함수를 호출하고 각 추가 자식 태스크의 이름을 별도로 지정해야 해요.
- 태스크가 CREATE OR REPLACE TASK로 교체된 경우 이 함수는 이전 태스크의 진행 중인 실행을 취소할 수 없어요.
CREATE OR REPLACE TASK로 교체한 뒤 진행 중인 태스크 실행 중지하기
- 진행 중인 실행의 쿼리 ID 찾기; 예:
select name, query_id, state, scheduled_time, error_message
from table(information_schema.task_history(task_name => 'my_task'));
- 쿼리 ID로 SYSTEM$CANCEL_QUERY 함수를 사용해 쿼리 취소하기; 예:
select system$cancel_query('query_id');
- 취소가 완료될 때까지 몇 초 동안 태스크 실행을 모니터링하기; 예:
select name, query_id, state, scheduled_time, error_message
from table(information_schema.task_history(task_name => 'my_task'));
- 태스크 실행이 취소되었는지 완료되었는지, 또는 자식 태스크가 현재 실행 중인지 확인하려면 TASK_HISTORY 함수를 조회하세요.
- 태스크의 향후 실행이 시작되지 않도록 하려면 먼저 태스크를 일시 중지(ALTER TASK … SUSPEND 사용)한 다음 이 함수를 실행할 것을 권장해요. 이 함수가 실행될 때 태스크가 일시 중지되지 않으면 Snowflake 클라우드 서비스가 이 태스크의 실행 스케줄링을 다시 시작하는 데 현재 몇 분이 걸릴 수 있다는 점에 유의하세요.
Examples
대소문자를 구분하지 않는 이름의 태스크 현재 실행 취소하기:
SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema.mytask');
대소문자를 구분하는 이름의 태스크 현재 실행 취소하기:
SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema."myTask"');
다음 예제는 태스크 실행의 성공적인 취소를 보여줘요:
SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('my_task');
+------------------------------------------------------------------------------------+
| SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('my_task') |
|------------------------------------------------------------------------------------|
| Marked 1 task runs for cancellation. It may take a few seconds for cancellation to |
| complete. Query ids canceled: [2036a04c-9c46-4c6b-b354-67a44b5e0b50] |
+------------------------------------------------------------------------------------+
다음 예제는 태스크에 현재 실행 중인 실행이 없어 함수가 어떤 실행도 취소하지 않음을 보여줘요:
SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('my_task');
+------------------------------------------------------------------------------------+
| SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('my_task') |
|------------------------------------------------------------------------------------|
| Task MY_TASK has no currently running executions. If the task was dropped or |
| replaced after a previous execution started, use SYSTEM$CANCEL_QUERY along with |
| the query id to cancel the run. |
|------------------------------------------------------------------------------------+