EXECUTE NOTEBOOK PROJECT

노트북 편집기 외부의 노트북 프로젝트에 저장된 노트북을 실행합니다. 이 명령은 비대화형(헤드리스) 모드에서 노트북을 실행하며 다음에서 실행할 수 있습니다.

  • 워크시트 또는 SQL 파일.

  • 기타 Snowflake 실행 파일(작업).

  • SQL을 발급하는 외부 오케스트레이터(예: Airflow, Prefect, Dagster, CI/CD시스템).

이 명령은 사용자가 구성한 런타임, 컴퓨팅 풀, 웨어하우스 및 외부 액세스 통합을 사용하여 사용자가 :code:`MAIN_FILE`로 지정한 노트북 파일을 실행합니다. Container Runtime에서 실행되는 노트북은 컴퓨팅 풀에서 실행되는 반면 SQL/Snowpark 쿼리는 웨어하우스에서 실행됩니다.

참고 항목:

CREATE NOTEBOOK PROJECT, EXECUTE NOTEBOOK, CREATE TASK

구문

EXECUTE NOTEBOOK PROJECT <database_name>.<schema_name>.<project_name>
  [ MAIN_FILE = '<notebook_file_name>.ipynb' ]
  [ COMPUTE_POOL = '<compute_pool_name>' ]
  [ RUNTIME = '<runtime_version>' ]          -- e.g., 'V2.2-CPU-PY3.12'
  [ QUERY_WAREHOUSE = '<warehouse_name>' ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ('<integration_name>' [ , ... ]) ];
Copy

필수 매개 변수

database_name.schema_name.project_name

실행할 노트북 프로젝트의 정규화된 식별자입니다.

:doc:`CREATE NOTEBOOK PROJECT<create-notebook-project>`로 생성된 기존 노트북 프로젝트를 참조해야 합니다.

현재 DATABASE 및 SCHEMA에 상주하지 않는 한 정규화되어야 합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

선택적 매개 변수

프로젝트 및 런타임 구성 방식에 따라 이러한 매개 변수 중 일부는 실제로 필요할 수 있습니다. 아래 설명은 해당 목적과 일반적인 사용법을 정의합니다.

MAIN_FILE = 'notebook_file_name.ipynb'

실행할 작업 공간 내의 기본 노트북 파일을 지정합니다(예: 'main.ipynb').

프로젝트에서 참조하는 작업 공간에 있는 .ipynb 노트북 파일이어야 합니다.

경로는 작업 공간 루트를 기준으로 합니다.

COMPUTE_POOL = 'compute_pool_name'

Container Runtime에서 노트북을 실행할 때 사용되는 컴퓨팅 풀을 지정합니다.

노트북 런타임이 |spcs|를 사용할 때 필요합니다.

RUNTIME = 'runtime_version'

노트북을 실행하기 위한 런타임 이미지/버전을 지정합니다(예: 'V2.2-CPU-PY3.12').

노트북 실행에 사용되는 Python 버전과 실행 환경을 결정합니다.

Container Runtime 이미지(CPU또는 GPU) 또는 Warehouse Runtime 베리언트에 해당합니다.

QUERY_WAREHOUSE = 'warehouse_name'

노트북에서 SQL 및 Snowpark 쿼리를 실행하는 데 사용되는 가상 웨어하우스를 지정합니다.

노트북이 SQL 또는 Snowpark 작업을 수행하는 경우 필요하며, 달리 구성된 웨어하우스가 없습니다.

Container Runtime을 사용할 때 웨어하우스는 쿼리 푸시다운을 처리하며, Python은 컴퓨팅 풀에서 실행됩니다.

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

노트북이 실행 중에 사용할 수 있는 하나 이상의 외부 액세스 통합을 지정합니다.

노트북이 아웃바운드 네트워크를 호출할 때 필요합니다(예: 외부 APIs).

각 통합 이름은 기존 외부 액세스 통합을 참조해야 합니다.

괄호 안의 쉼표로 구분된 목록으로 여러 외부 액세스 통합을 지정할 수 있습니다.

예:

EXTERNAL_ACCESS_INTEGRATIONS = ('http_eai', 's3_eai');
Copy

액세스 제어 요구 사항

:code:`EXECUTE NOTEBOOK PROJECT`를 실행하는 역할에는 노트북 프로젝트에 대한 충분한 권한이 있어야 합니다.

또한, 실행 역할에는 다음에 대한 USAGE/OWNERSHIP 권한이 있어야 합니다.

  • 쿼리 웨어하우스.

  • 컴퓨팅 풀.

  • 노트북 프로젝트가 포함된 데이터베이스 및 스키마.

  • 명령이 참조하는 작업 및 외부 액세스 통합.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

작업에서 :code:`EXECUTE NOTEBOOK PROJECT`를 호출하여 대규모 워크플로의 일부로 노트북 실행을 활성화할 수 있습니다.

EXECUTE NOTEBOOK PROJECT 명령을 사용하여 노트북을 실행하는 경우:

  • 노트북 코드는 RUNTIME 매개 변수에 의해 지정된 런타임을 사용하여 COMPUTE_POOL 매개 변수에 의해 지정된 컴퓨팅 풀에서 실행됩니다.

  • SQL 및 Snowpark 쿼리는 QUERY_WAREHOUSE 매개 변수에 지정된 가상 웨어하우스를 사용하여 실행됩니다.

모든 매개 변수를 사용하여 노트북 프로젝트를 실행합니다.

EXECUTE NOTEBOOK PROJECT "sales_detection_db"."schema"."DEFAULT_PROJ_B32BCFD4"
  MAIN_FILE = 'notebook_file.ipynb'
  COMPUTE_POOL = 'test_X_CPU'
  RUNTIME = 'V2.2-CPU-PY3.10'
  QUERY_WAREHOUSE = 'ENG_INFRA_WH'
  EXTERNAL_ACCESS_INTEGRATIONS = ('test_EAI');
Copy

웨어하우스만 사용하여 노트북 프로젝트를 실행합니다.

EXECUTE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
  MAIN_FILE = 'jobs/nightly_etl.ipynb'
  QUERY_WAREHOUSE = 'ETL_WH';
Copy