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は、顧客が実行後にジョブサービスをモニターおよびデバッグできるように、ジョブを短期間保持します。

コマンドパラメーターは特定の順序で指定する必要があることに注意してください。詳細については、使用上の注意セクションをご参照ください。

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

SYSTEM$GET_SERVICE_STATUS --- 非推奨SYSTEM$GET_SERVICE_LOGS

構文

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>' , ... ] ) ]
Copy

条件:

fromSpecification ::=
  {
    FROM @<stage> SPECIFICATION_FILE = '<yaml_file_stage_path>'
    | FROM SPECIFICATION <specification_text>
  }
Copy
fromSpecificationTemplate ::=
  {
    FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>'
    | FROM SPECIFICATION_TEMPLATE <specification_text>
  }
  USING ( <key> => <value> [ , <key> => <value> [ , ... ] ]  )
Copy

必須パラメーター

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