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"
    $$;
Copy

참고

  • 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 태스크로 실행하기 를 참조하십시오.