ALTER SERVICE

Snowpark Container Servicesサービス 構成を変更したり、サービスのコードをアップグレードしたり、サービスを一時停止または再開できます。できること:

  • 実行中のサービスに修正を適用する。例えば、サービスの一時停止や再開、実行中のサービスインスタンス数の更新などです。

  • サービスの再起動後にのみ有効になる変更を適用する。例えば、クエリのデフォルトのウェアハウスを指定します。

  • Snowflakeがサービスをシャットダウンする必要がある修正を適用し、新しいコードを使用して再起動する。例えば、更新されたサービスコードをデプロイする場合です。

  • 指定されたボリュームの初期コンテンツとしてプロバイダーから提供されたスナップショットを使用して、指定されたサービスのインスタンスを再起動します。ALTER SERVICE を実行する前に、サービスを中断する必要があります。

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

CREATE SERVICEDESCRIBE SERVICEDROP SERVICESHOW SERVICES

構文

ALTER SERVICE [ IF EXISTS ] <name> { SUSPEND | RESUME }

ALTER SERVICE [ IF EXISTS ] <name>
  {
     fromSpecification
     | fromSpecificationTemplate
  }

ALTER SERVICE [IF EXISTS] <service_name> RESTORE VOLUME <volume_name>
                                                 INSTANCES <comma_separated_instance_ids>
                                                 FROM SNAPSHOT <snapshot_name>

ALTER SERVICE [ IF EXISTS ] <name> SET [ MIN_INSTANCES = <num> ]
                                       [ MAX_INSTANCES = <num> ]
                                       [ MIN_READY_INSTANCES = <num> ]
                                       [ QUERY_WAREHOUSE = <warehouse_name> ]
                                       [ AUTO_RESUME = { TRUE | FALSE } ]
                                       [ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
                                       [ COMMENT = '<string_literal>' ]



ALTER SERVICE [ IF EXISTS ] <name> UNSET { MIN_INSTANCES                |
                                           MAX_INSTANCES                |
                                           MIN_READY_INSTANCES          |
                                           QUERY_WAREHOUSE              |
                                           AUTO_RESUME                  |
                                           EXTERNAL_ACCESS_INTEGRATIONS |
                                           COMMENT
                                         }
                                         [ , ... ]

ALTER SERVICE [ IF EXISTS ] <name> SET [ TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]]
Copy

条件:

fromSpecification ::=
  {
    FROM SPECIFICATION_FILE = '<yaml_file_path>' -- for native app service.
    | FROM @<stage> SPECIFICATION_FILE = '<yaml_file_path>' -- for non-native app service.
    | FROM SPECIFICATION <specification_text>
  }
Copy
fromSpecificationTemplate ::=
  {
    FROM SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for native app service.
    | FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for non-native app service.
    | FROM SPECIFICATION_TEMPLATE <specification_text>
  }
  USING ( <key> => <value> [ , <key> => <value> [ , ... ] ]  )
Copy

パラメーター

name

変更するサービスの識別子を指定します。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

{ SUSPEND | RESUME }

サービスを一時停止または再開するかどうかを指定します。

サービスを一時停止すると、Snowflakeはシャットダウンしてコンテナを削除します。中断したサービスを後で再開する場合、Snowflakeはコンテナーを再作成します。つまり、Snowflakeはリポジトリからイメージを取得し、コンテナを起動します。Snowflakeは同じイメージバージョンを展開しますが、これはサービスの更新操作ではありません。

サービス関数を使用して、またはパブリックエンドポイント(イングレス)を呼び出して、一時停止したサービスを起動すると、Snowflakeは自動的にサービスを再開します。

FROM ...

サービスの 仕様 または テンプレート 仕様を識別します。

サービス仕様書の使用

指定は、 インラインで定義することも、別のファイル で定義することもできます。

SPECIFICATION_FILE = 'yaml_file_path' または . @stage SPECIFICATION_FILE = 'yaml_file_path' または . SPECIFICATION specification_text

サービス仕様を含むファイル、またはサービス仕様をインラインで指定します。サービス仕様がファイルの場合は、SPECIFICATION_FILEを使用します。 Snowflake Native App で作成されたサービスについては、 @stage を省略し、アプリのルート・ディレクトリからの相対パスを指定します。他のコンテキストで作成されたサービスの場合は、Snowflake内部ステージとサービス仕様ファイルへのパスを指定します。

サービス仕様書テンプレートの使用

テンプレート仕様 をインラインで定義することも、別ファイル で定義することもできます。

SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path' または . @stage SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path' または . SPECIFICATION_TEMPLATE specification_text

サービス仕様テンプレートを含むファイル、またはサービス仕様テンプレートをインラインで指定します。サービス仕様書のテンプレートがファイルの場合は、SPECIFICATION_TEMPLATE_FILE を使用してください。 Snowflake Native App で作成されたサービスについては、 @stage を省略し、アプリのルート・ディレクトリからの相対パスを指定します。他のコンテキストで作成されたサービスの場合は、Snowflake内部ステージとサービス仕様ファイルへのパスを指定します。テンプレート指定を使用する場合は、 USING パラメーターも含める必要があります。

USING ( key => value [ , key => value [ , ... ] ]  )

テンプレート変数とその値を指定します。

  • key はテンプレート変数の名前です。テンプレート変数名は、オプションで二重引用符(")で囲むことができます。

  • value はテンプレートの変数に割り当てる値です。文字列値は ' または $$ で囲む必要があります。仕様テンプレート引数値は、英数字か有効な JSON にする必要があります。

各キーと値のペアの間にはカンマを使用します。

RESTORE VOLUME volume_name INSTANCES comma_separated_instance_ids FROM SNAPSHOT snapshot_name

インスタンス comma_separated_instance_ids の既存のブロックストレージボリューム volume_name にあるスナップショット snapshot_name を復元します。

スナップショットは、ブロックストレージボリュームに対してのみ実行できます(ローカルボリューム、メモリボリューム、ステージボリュームに対しては実行できません)。

ボリューム名は大文字と小文字を区別します。したがって、サービス仕様の対応する名前と一致するように、常に二重引用符を使用する必要があります。

SET ...

サービスの1つ以上の指定されたプロパティまたはパラメーターを設定します。

MIN_INSTANCES = num

サービスインスタンスの最小数を指定します。

MAX_INSTANCES = num

サービスインスタンスの最大数を指定します。

MIN_READY_INSTANCES = num

Snowflakeがサービスをリクエスト処理準備完了とみなすための、準備完了が必要な最小限のサービスインスタンスを指定します。詳細については、 CREATE SERVICE の MIN_READY_INSTANCES パラメーターの説明をご参照ください。

注釈

SHOW SERVICES または DESCRIBE SERVICE コマンドを使用して、サービスに設定されている MIN_READY_INSTANCES を見つけたい場合は、アカウントで 2024_08 動作変更バンドルを有効にする必要があります。 アカウントでこのバンドルを有効にする には、以下のステートメントを実行します。

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_08');
Copy
QUERY_WAREHOUSE = warehouse_name

サービスコンテナがクエリを実行するためにSnowflakeに接続するけれども、使用するウェアハウスを明示的に指定しない場合に使用するウェアハウス。

AUTO_RESUME = { TRUE | FALSE }

サービス関数が呼び出されたときやリクエストを受信したときに、自動的にサービスを再開するかどうかを指定します。

EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )

サービスが外部サイトにアクセスできるようにする、 外部アクセス統合 の名前を指定します。Snowflakeは、既存のすべての EAIs をこのパラメーターで指定されたものに置き換えます。このリストの名前は大文字と小文字を区別します。詳細については、 ネットワークエグレス をご参照ください。これは、サービスの実行中のインスタンスすべてで許可されるネットワークアクセスを変更することに注意してください。明示的にサービスを中断し、再開する必要はありません。

COMMENT = 'string_literal'

コンピュートプールのコメントを指定します。

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

タグ の名前とタグ文字列の値を指定します。

タグ値は常に文字列であり、タグ値の最大文字数は256です。

ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。

UNSET ...

サービスの設定を解除する1つ(または複数)のプロパティ、パラメーター、またはその両方を指定します。これにより、デフォルトにリセットされます(CREATE SERVICE をご覧ください)。

  • MIN_INSTANCES

  • MAX_INSTANCES

  • MIN_READY_INSTANCES

  • QUERY_WAREHOUSE

  • AUTO_RESUME

  • EXTERNAL_ACCESS_INTEGRATIONS

  • COMMENT

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

OPERATE

サービス

USAGE

スナップショット

スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

サービスを一時停止する。

ALTER SERVICE echo_service SUSPEND;
Copy

既存のサービスの MIN_INSTANCES と MAX_INSTANCES プロパティを変更する。

ALTER SERVICE echo_service SET MIN_INSTANCES=3 MAX_INSTANCES=5;
Copy

example_service サービスのインスタンス0および2に関連付けられた既存のブロックボリューム上のスナップショットを復元します。

ALTER SERVICE example_service
  RESTORE VOLUME "myvolume"
  INSTANCES 0,2
  FROM SNAPSHOT my_snapshot;
Copy