Snowpark Container Services 작업을 Snowflake 태스크로 실행하기¶
Snowpark Container Services :doc:`작업 서비스 </developer-guide/snowpark-container-services/working-with-services>`를 Snowflake 태스크로 실행할 수 있습니다. 작업 서비스를 Snowflake 태스크로 실행하는 경우, 통합을 통해 Snowpark Container Services의 강력한 컨테이너화와 확장성을 활용하는 시나리오를 사용할 수 있습니다. 이 프로세스는 Snowflake Tasks에서 관리하는 예약된 데이터 파이프라인 또는 이벤트로 트리거되는 데이터 파이프라인 내에서 직접 수행됩니다.
예를 들어, 다음 CREATE TASK 명령은 태스크를 생성하여 매시간 작업 서비스를 실행합니다. 이 명령은 EXECUTE JOB SERVICE SQL 명령을 사용하여 작업 세부 정보를 제공합니다.
CREATE TASK job_task
SCHEDULE = '60 MINUTE'
AS
EXECUTE JOB SERVICE
IN COMPUTE POOL my_compute_pool
FROM SPECIFICATION $$
spec:
containers:
- name: main
image: /my_db/my_schema/my_repository/my_job_image:latest
args:
- "--process_data"
$$;
참고
Snowflake 작업 태스크는 :ref:`서버리스 모델 <label-tasks_compute_resources_serverless>`을 지원하므로 CREATE TASK 문에 웨어하우스를 지정하지 않아도 됩니다.
작업 서비스를 태스크로 실행하는 경우 작업 서비스를 동기적으로 실행해야 합니다. 그렇지 않으면 작업 서비스가 완료되기 전에 태스크가 완료를 보고합니다.
태스크로 실행 중인 작업 안팎으로 데이터 전달하기¶
:doc:`태스크 그래프 </user-guide/tasks-graphs>`를 사용하면 태스크로 실행되는 작업 서비스를 원활하게 통합하는 복잡한 다단계 데이터 파이프라인을 생성하고 관리할 수 있습니다. 작업 서비스 코드에서 :ref:`지원되는 시스템 함수 <label-task_graph_with_logic>`를 사용하여 태스크 컨텍스트에 액세스하고 이를 사용하여 태스크 그래프 구성과 실행 중인 태스크의 런타임 정보를 가져옵니다.
작업 서비스를 태스크로 실행하는 경우 태스크 그래프의 태스크 간에 다음 데이터 공유 옵션을 사용할 수 있습니다.
선행 반환 값 메커니즘: 태스크 그래프에서 태스크의 출력을 후속 종속 태스크에 대한 입력으로 전달할 수 있습니다. Snowflake는 파일 경로, 상태 문자열 또는 기타 일부 ID 값과 같은 작은 메타데이터를 전달할 때 이 옵션을 사용할 것을 권장합니다. 자세한 내용은 태스크 간에 반환 값 전달 섹션을 참조하세요.
SQL 태스크와 마찬가지로, 태스크로 실행 중인 작업은 이전 태스크의 반환 값을 검색할 수 있습니다. 마찬가지로, 작업은 후속 태스크에 대한 반환 값을 제공할 수도 있습니다.
일반적인 영구 저장소 메커니즘: 파일과 같은 대규모 데이터 세트를 전송할 때 Snowflake는 Snowflake 스테이지 또는 테이블과 같은 영구 저장소에 데이터를 유지하고 태스크 그래프의 태스크가 해당 저장소에 액세스할 수 있는지 확인할 것을 권장합니다.
참고
세션은 작업 서비스 간에 공유되지 않습니다. 따라서 임시 테이블이나 세션 변수는 세션 범위가 지정된 오브젝트이므로 데이터를 공유하는 방법으로 사용할 수 없습니다.
예¶
예를 보려면 자습서 Snowflake Container Services 작업을 Snowflake 태스크로 실행하기 를 참조하십시오.