EXECUTE NOTEBOOK PROJECT

ノートブックエディターの外でノートブックプロジェクトに保存されたノートブックを実行します。このコマンドは非インタラクティブ(ヘッドレス)モードでノートブックを実行し、以下から実行できます。

  • ワークシートまたは SQL ファイル。

  • その他のSnowflake実行可能ファイル(タスク)。

  • SQL を発行する外部オーケストレーション(例: Airflow、Prefect、Dagster、 CI/CD システム)。

コマンドは、構成したランタイム、コンピューティングプール、ウェアハウス、外部アクセス統合を使用する MAIN_FILE として指定したノートブックファイルを実行します。Container Runtime上で実行されるNotebooksはコンピューティングプール上で実行される一方で、 SQL/Snowparkクエリはウェアハウスで実行されます。

こちらもご参照ください。

CREATE NOTEBOOK PROJECTEXECUTE NOTEBOOKCREATE 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

実行するノートブックプロジェクトの完全修飾識別子。

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');
Copy

アクセス制御の要件

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');
Copy

ウェアハウスのみを使用してノートブックプロジェクトを実行します。

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