EXECUTE NOTEBOOK PROJECT¶
ノートブックエディターの外でノートブックプロジェクトに保存されたノートブックを実行します。このコマンドは非インタラクティブ(ヘッドレス)モードでノートブックを実行し、以下から実行できます。
ワークシートまたは SQL ファイル。
その他のSnowflake実行可能ファイル(タスク)。
SQL を発行する外部オーケストレーション(例: Airflow、Prefect、Dagster、 CI/CD システム)。
コマンドは、構成したランタイム、コンピューティングプール、ウェアハウス、外部アクセス統合を使用する MAIN_FILE として指定したノートブックファイルを実行します。Container Runtime上で実行されるNotebooksはコンピューティングプール上で実行される一方で、 SQL/Snowparkクエリはウェアハウスで実行されます。
- こちらもご参照ください。
構文¶
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>' [ , ... ]) ];
必須パラメーター¶
database_name.schema_name.project_name実行するノートブックプロジェクトの完全修飾識別子。
CREATE NOTEBOOK PROJECT で作成された既存のノートブックプロジェクトを参照する必要があります。
現在の DATABASE および SCHEMA に存在しない限り、完全修飾する必要があります。
詳細については、 識別子の要件 をご参照ください。
オプションのパラメーター¶
プロジェクトとランタイムがどのように構成されるかによって、これらのパラメーターの一部が実際に必要になる場合があります。以下の説明は、その目的と一般的な使用法を定義しています。
MAIN_FILE = 'notebook_file_name.ipynb'実行するワークスペース内のメインノートブックファイルを指定します(例:
'main.ipynb')。プロジェクトによって参照されるワークスペースにある
.ipynbノートブックファイルである必要があります。パスはワークスペースルートからの相対パスです。
COMPUTE_POOL = 'compute_pool_name'Container Runtime上でノートブックを実行するときに使用するコンピューティングプールを指定します。
ノートブックのランタイムが Snowpark Container Services を使用する場合は必須です。
RUNTIME = 'runtime_version'ノートブックを実行するためのランタイムイメージ/バージョンを指定します(例:
'V2.2-CPU-PY3.12')。ノートブックの実行に使用するPythonのバージョンと実行環境を決定します。
Container Runtime イメージ( CPU または GPU )またはウェアハウスランタイムバリアントに対応します。
QUERY_WAREHOUSE = 'warehouse_name'SQL の実行とノートブックからのSnowparkクエリに使用される仮想ウェアハウスを指定します。
ノートブックが SQL またはSnowpark操作を実行する場合は必要で、ウェアハウスはそれ以外は構成されていません。
コンテナランタイムを使用する場合、ウェアハウスはクエリプッシュダウンを処理します。Pythonはコンピューティングプール上で実行されます。
EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )実行中にノートブックが使用できる1つ以上の外部アクセス統合を指定します。
ノートブックがアウトバウンドネットワーク呼び出し(たとえば、外部 APIs )を行う場合に必要です。
各統合名は、既存の外部アクセス統合を参照する必要があります。
複数の外部アクセス統合は、括弧内のコンマ区切りのリストで指定できます。
例:
EXTERNAL_ACCESS_INTEGRATIONS = ('http_eai', 's3_eai');
アクセス制御の要件¶
EXECUTE NOTEBOOK PROJECT を実行するロールにはノートブックプロジェクトに対して十分な権限が必要です。
さらに、実行中のロールには以下の場所に USAGE/OWNERSHIP 権限が必要です。
クエリウェアハウス。
コンピューティングプール。
ノートブックプロジェクトを含むデータベースとスキーマ。
コマンドによって参照されるタスクと外部アクセス統合。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
タスクから 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');
ウェアハウスのみを使用してノートブックプロジェクトを実行します。
EXECUTE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
MAIN_FILE = 'jobs/nightly_etl.ipynb'
QUERY_WAREHOUSE = 'ETL_WH';