CREATE NOTEBOOK¶
新しい Snowflake Notebook を作成するか、既存のノートブックを置き換えます。
構文¶
CREATE [ OR REPLACE ] NOTEBOOK [ IF NOT EXISTS ] <name>
[ FROM '<source_location>' ]
[ MAIN_FILE = '<main_file_name>' ]
[ COMMENT = '<string_literal>' ]
[ QUERY_WAREHOUSE = <warehouse_to_run_nb_and_sql_queries_in> ]
[ IDLE_AUTO_SHUTDOWN_TIME_SECONDS = <number_of_seconds> ]
[ RUNTIME_NAME = '<runtime_name>' ]
[ COMPUTE_POOL = '<compute_pool_name>' ]
[ WAREHOUSE = <warehouse_to_run_notebook_python_runtime> ]
必須パラメーター¶
nameノートブックの識別子(つまり、名前)を指定する文字列。ノートブックが作成されるスキーマに対して一意にする必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
オプションのパラメーター¶
FROM 'source_location'指定したステージの場所にある
.ipynbファイルからノートブックを作成することを指定します。ステージ上のファイルからノートブックを作成するには、source_locationをステージ上のファイルの場所に設定し、 MAIN_FILE パラメーターをファイルの名前に設定します。このパラメーターが指定されない場合、ノートブックオブジェクトはテンプレートノートブックから作成されます。
MAIN_FILE = 'main_file_name'ノートブックファイル名のユーザー指定識別子。これは、
nameパラメーターで指定されるノートブックオブジェクト名とは別のものです。このファイルは、ipynbファイルにする必要があります。QUERY_WAREHOUSE = warehouse_nameノートブックの SQL クエリが実行されるウェアハウスを指定します。このパラメーターはオプションです。ただし、 EXECUTE NOTEBOOK コマンドを実行する必要があります。
IDLE_AUTO_SHUTDOWN_TIME_SECONDS = number_of_secondsノートブックが自動的にシャットダウンされるまでのアイドル時間の秒数。このパラメーターは、Container Runtimeで実行されるノートブックでのみ使用できます。値は60~259200(72時間)の整数でなければなりません。
デフォルト:3600秒
RUNTIME_NAME = runtime_name'SYSTEM$WAREHOUSE_RUNTIME'(デフォルト):Snowflakeウェアハウスでノートブックを実行します(ウェアハウスランタイムのみ)。'SYSTEM$BASIC_RUNTIME':CPU を使用して Snowpark Container Services (SPCS) コンテナでノートブックを実行します(コンテナランタイムのみ)。'SYSTEM$GPU_RUNTIME':GPU を使用して Snowpark Container Services (SPCS) コンテナでノートブックを実行します(コンテナランタイムのみ)。
コンテナランタイムを指定する場合(
SYSTEM$BASIC_RUNTIMEまたはSYSTEM$GPU_RUNTIME)、COMPUTE_POOLパラメーターも含める必要があります。SYSTEM$WAREHOUSE_RUNTIMEはウェアハウスランタイム専用です。COMPUTE_POOL = compute_pool_name(コンテナランタイムのみ)コンテナランタイムを使用するときにノートブックをホストするコンピューティングプールを指定します。このパラメーターは
RUNTIME_NAMEがSYSTEM$BASIC_RUNTIMEまたはSYSTEM$GPU_RUNTIMEに設定されている場合に必要です。コンピューティングプールに関する詳細については、 Snowpark Container Services: コンピューティングプールの操作 をご参照ください。
WAREHOUSE = warehouse_nameこのウェアハウスは次の実行に使用されます。
ウェアハウスランタイム:ノートブックカーネルと SQL クエリ(Snowparkプッシュダウンコンピューティングを含む)の両方。
コンテナランタイム:SQL クエリ(Snowparkプッシュダウンコンピューティングを含む)のみ。ノートブックカーネルはコンピューティングプール上で実行されます。
If you don't specify a warehouse when you create a notebook, Snowflake uses the default warehouse defined by the schema lineage parameter
DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE. You can set this parameter at the schema, database, or account lineage level to define a preferred warehouse.
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
|---|---|
USAGE |
データベース |
USAGE または OWNERSHIP |
スキーマ |
CREATE NOTEBOOK |
スキーマ |
スキーマ内のオブジェクトを操作するには、親データベースの少なくとも1つの権限と、親スキーマの少なくとも1つの権限が必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
コンテナランタイムを使用するノートブックを作成すると、ノートブックは Snowpark Container Services 環境内で実行されます。コンテナランタイムノートブックは、
RUNTIME_NAMEパラメーターとCOMPUTE_POOLパラメーターの両方を指定する必要がありますメタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
OR REPLACE 句と IF NOT EXISTS 句は互いに排他的です。この2つを同じステートメントで使うことはできません。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
以下は、 mynotebook という名前のノートブックを作成します。
CREATE NOTEBOOK mynotebook;
QUERY_WAREHOUSE パラメーターはオプションですが、 EXECUTE NOTEBOOK をウェアハウスで実行できるように、新しいノートブックを作成するときに指定することをお勧めします。
CREATE NOTEBOOK mynotebook
QUERY_WAREHOUSE = my_warehouse;
次の例では、ステージングされた ipynb ファイルからノートブックを作成しています。
CREATE NOTEBOOK mynotebook
FROM '@my_db.my_schema.my_stage'
MAIN_FILE = 'my_notebook_file.ipynb'
QUERY_WAREHOUSE = my_warehouse;
The following example creates a notebook using Container Runtime (CPU):
CREATE NOTEBOOK my_cpu_notebook
RUNTIME_NAME = 'SYSTEM$BASIC_RUNTIME'
COMPUTE_POOL = 'my_compute_pool';
The following example creates a notebook using Container Runtime (GPU):
CREATE NOTEBOOK my_gpu_notebook
RUNTIME_NAME = 'SYSTEM$GPU_RUNTIME'
COMPUTE_POOL = 'gpu_pool_1';