EXECUTE JOB SERVICE¶
注釈
この操作は現在、 Snowflake’s Support Policy and Service Level Agreement に規定されたService Levelセットの対象外です。
Snowpark Container Servicesサービスをジョブとして実行します。
CREATE SERVICE を使用して作成されたサービスは長時間実行されるため、不要になった場合は明示的に停止する必要があります。一方、 EXECUTE JOB SERVICE を使用して作成されるジョブは、ストアドプロシージャと同様、コードが終了すると終了するサービスです。すべてのコンテナーが終了すると、ジョブは完了です。
ジョブは同期的に実行されます。すべてのコンテナーが終了すると EXECUTE JOB SERVICE コマンドを完了します。ジョブの完了後、Snowflakeは必要なクリーンアップを自動的に実行します。しかし、このクリーンアップは直後には発生しません。Snowflakeは、顧客が実行後にジョブサービスをモニターおよびデバッグできるように、ジョブを短期間保持します。
コマンドパラメーターは特定の順序で指定する必要があることに注意してください。詳細については、使用上の注意セクションをご参照ください。
- こちらもご参照ください。
構文¶
EXECUTE JOB SERVICE
IN COMPUTE POOL <compute_pool_name>
{
fromSpecification
| fromSpecificationTemplate
}
NAME = [<db>.<schema>.]<name>
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>']
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
条件:
fromSpecification ::= { FROM @<stage> SPECIFICATION_FILE = '<yaml_file_stage_path>' | FROM SPECIFICATION <specification_text> }fromSpecificationTemplate ::= { FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>' | FROM SPECIFICATION_TEMPLATE <specification_text> } USING ( <key> => <value> [ , <key> => <value> [ , ... ] ] )
必須パラメーター¶
IN COMPUTE POOL compute_pool_name
サービスを実行するアカウントのコンピュートプール名を指定します。
FROM stage
仕様ファイルが保管されているSnowflake内部ステージを指定します。例えば、
@tutorial_stage
です。SPECIFICATION_FILE = 'yaml_file_stage_path'
ステージ上の サービス仕様 ファイルへのパスを指定します。例えば、
'some-dir/echo_spec.yaml'
です。SPECIFICATION_TEMPLATE_FILE = 'yaml_file_stage_path'
ステージ上の サービス仕様 テンプレートファイルへのパスを指定します。たとえば、
'some-dir/echo_template_spec.yaml'
です。SPECIFICATION_TEMPLATE_FILE
を指定する場合は、USING
パラメーターが必要です。FROM SPECIFICATION specification_text
FROM SPECIFICATION_TEMPLATE specification_text
サービス仕様 を指定します。 ドル記号のペア (
$$
)を使用して、仕様文字列の最初と最後を区切ることができます。SPECIFICATION_TEMPLATE
を指定する場合は、USING
パラメーターが必要です。NAME = [db.schema.]name
ジョブなどを実行するサービスの名前(つまり、識別子)。サービスが作成されるスキーマで一意にする必要があります。
特殊文字や大文字小文字を区別するための引用符付きの名前はサポートされていません。同じ制約は、サービスを作成するデータベース名やスキーマ名にも適用されます。つまり、引用符のないデータベース名とスキーマ名は、サービスを作成する場合に有効です。
オプションのパラメーター¶
EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )
ジョブに外部サイトへのアクセスを許可する 外部アクセス統合 の名前を指定します。このリストの名前は大文字と小文字を区別します。デフォルトでは、アプリケーションコンテナーはインターネットにアクセスする権限を持っていません。ジョブが外部サイトにアクセスできるようにするには、外部アクセス統合(EAI)を作成し、その統合を使用するようにジョブを構成します。詳細については、 ネットワークエグレス をご参照ください。
QUERY_WAREHOUSE = warehouse_name
サービスコンテナがクエリを実行するためにSnowflakeに接続するけれども、使用するウェアハウスを明示的に指定しない場合に使用するウェアハウス。
デフォルト: なし。
COMMENT = 'string_literal'
サービスのコメントを指定します。
デフォルト: 値なし
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。
USING ( key => value [ , key => value [ , ... ] ] )
仕様テンプレートの展開をパラメーター化する値を提供できるようにします。
USING
は、仕様テンプレート(FROM SPECIFICATION_TEMPLATE_FILE
またはFROM SPECIFICATION_TEMPLATE
)を使用する場合に必要です。キーと値のペアはコンマ区切りのリストを形成する必要があります。条件:
key
はテンプレート変数の名前です。テンプレート変数名は、オプションで二重引用符("
)で囲むことができます。value
はテンプレートの変数に割り当てる値です。文字列値は'
または$$
で囲む必要があります。仕様テンプレート引数値は、英数字か有効な JSON にする必要があります。
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE SERVICE |
スキーマ |
|
USAGE |
コンピューティングプール |
|
READ |
ステージ |
これは仕様が保管されるステージです。 |
READ |
イメージリポジトリ |
仕様によって参照されるイメージのリポジトリ。 |
スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
EXECUTE JOB SERVICE の呼び出し時には、パラメーターを次の順序で提供する必要があります。コンピューティングプール、次にその他のプロパティ、最後にサービス仕様(ステージ上の仕様ファイル名またはインライン仕様のいずれかを使用)の順に指定します。
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
Snowpark Container Servicesジョブサービスを開始します。
EXECUTE JOB SERVICE
IN COMPUTE POOL tutorial_compute_pool
NAME = tutorial_db.data_schema.example_job
FROM @tutorial_stage
SPECIFICATION_FILE='my_job_spec.yaml';