カテゴリ:

ウェアハウスとリソースモニター DDL

ALTER WAREHOUSE

仮想ウェアハウスを一時停止または再開するか、ウェアハウスに対するすべてのクエリ(およびその他の SQL ステートメント)を中止します。ウェアハウスのプロパティの名前変更または設定/設定解除にも使用できます。

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

CREATE WAREHOUSE , SHOW WAREHOUSES

構文

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

ALTER WAREHOUSE [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER WAREHOUSE [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER WAREHOUSE [ IF EXISTS ] <name> SET [ objectProperties ]
                                         [ objectParams ]

ALTER WAREHOUSE [ IF EXISTS ] <name> UNSET { <property_name> | <param_name> } [ , ... ]

条件:

objectProperties ::=
  WAREHOUSE_SIZE = XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE
  MAX_CLUSTER_COUNT = <num>
  MIN_CLUSTER_COUNT = <num>
  SCALING_POLICY = STANDARD | ECONOMY
  AUTO_SUSPEND = <num>
  AUTO_RESUME = TRUE | FALSE
  RESOURCE_MONITOR = <monitor_name>
  COMMENT = '<string_literal>'
objectParams ::=
  MAX_CONCURRENCY_LEVEL = <num>
  STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>

プロパティ/パラメーター

名前

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

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

注釈

ウェアハウス識別子は、以下に応じて必須か任意のいずれかとなります。

  • ウェアハウスを再開/一時停止する、またはウェアハウスのクエリを中止する際、ウェアハウスが現在セッションで使用されている場合、識別子を省略できます。

  • ウェアハウスの名前を変更するか、ウェアハウスで他の操作を実行する場合、識別子を指定する 必要があります

SUSPEND | RESUME [ IF SUSPENDED ]

ウェアハウスで実行するアクションを指定します。

  • SUSPEND ウェアハウスからすべてのコンピュートノードを削除し、ウェアハウスを「一時停止」状態にします。

  • RESUME [ IF SUSPENDED ] サーバーをプロビジョニングすることにより、中断されたウェアハウスを使用可能な「実行中」状態にします。

    オプションの IF SUSPENDED 句は、すでに実行されているウェアハウスを再開するときに ALTER WAREHOUSE コマンドが正常に完了するかどうかを指定します。

    • 省略すると、ウェアハウスが既に実行されている場合、コマンドは失敗し、エラーを返します。

    • 指定すると、ウェアハウスが実行中かどうかに関係なく、コマンドは正常に完了します。

ABORT ALL QUERIES

ウェアハウスで現在実行中またはキューに入っているすべてのクエリを中止します。

RENAME TO 新しい名前

ウェアハウスの新しい識別子を指定します。アカウントに対して一意である必要があります。

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

SET ...

ウェアハウスに設定する1つ以上のプロパティ/パラメーターを指定します(空白、コンマ、または改行で区切られます)。

WAREHOUSE_SIZE = 文字列定数

仮想ウェアハウスのサイズを指定します。サイズは、ウェアハウス内の各クラスター内のサーバーの数を決定するため、ウェアハウスの稼働中に消費されるクレジットの数を決定します。

有効な値
  • XSMALL , 'X-SMALL'

  • SMALL

  • MEDIUM

  • LARGE

  • XLARGE , 'X-LARGE'

  • XXLARGE , X2LARGE , '2X-LARGE'

  • XXXLARGE , X3LARGE , '3X-LARGE'

  • X4LARGE , '4X-LARGE'

デフォルト

XLARGE

注釈

ハイフンを含む値( '2X-LARGE' など)を使用するには、示されているように、値を一重引用符で囲む必要があります。

MAX_CLUSTER_COUNT = 数値

ウェアハウスのサーバークラスターの最大数を指定します。

有効な値

1 から 10

1 より大きい値を指定すると、ウェアハウスがマルチクラスターウェアハウスであることを示します。ただし、値は Snowflake Enterprise Edition (またはそれ以上)でのみより高い値に設定できます。

詳細については、 マルチクラスターウェアハウス をご参照ください。

デフォルト

1 (単一クラスターウェアハウス)

ちなみに

Snowflake Enterprise Edition(またはそれ以上)の場合、ウェアハウスの高可用性と最適なパフォーマンスを維持するために、常に 1 より大きい値を設定することをお勧めします。また、これにより、万一クラスターに障害が発生した場合の継続性を確保できます。

MIN_CLUSTER_COUNT = 数値

ウェアハウスのサーバークラスターの最小数を指定します(マルチクラスターウェアハウスにのみ適用されます)。

有効な値

1 から 10

ただし、 MIN_CLUSTER_COUNTMAX_CLUSTER_COUNT 以下でなければならないことに注意してください。

  • 両方のパラメーターが等しい場合、ウェアハウスは 最大化 モードで実行されます。

  • MIN_CLUSTER_COUNTMAX_CLUSTER_COUNT 未満の場合、ウェアハウスは 自動スケール モードで実行されます。

詳細については、 マルチクラスターウェアハウス をご参照ください。

デフォルト

1

SCALING_POLICY = STANDARD | ECONOMY

自動スケールモードで実行されているマルチクラスターウェアハウス内のクラスターを自動的に開始およびシャットダウンするためのポリシーを指定するオブジェクトパラメーター。

このパラメーターの詳細については、 マルチクラスターウェアハウスのスケーリングポリシーの設定 をご参照ください。

AUTO_SUSPEND = 数値 | NULL

ウェアハウスが自動的に中断されるまでの非アクティブの秒数を指定します。

有効な値

59 または NULL より大きい任意の数:

  • 59 未満の値を設定しても効果はありません。これは、ウェアハウスが停止するまでの最小時間は1分であるためです。

  • NULL 値を設定すると、ウェアハウスが一時停止されることはなくなります。

デフォルト

600 (ウェアハウスは、10分の非アクティブ後に自動的に一時停止します)

重要

クエリのワークロードが継続的に実行されるウェアハウスを必要としない限り、 AUTO_SUSPEND の値を NULL に設定することは 推奨されません 。これにより、特に大規模なウェアハウスでは、クレジット(および対応する料金)が大幅に消費されることに注意してください。

詳細については、 ウェアハウスに関する考慮事項 をご参照ください。

AUTO_RESUME = TRUE | FALSE

SQL ステートメント(クエリなど)の送信時にウェアハウスを自動的に再開するかどうかを指定します。 FALSE の場合、ウェアハウスは ALTER WAREHOUSE を使って、またはSnowflake ウェブインターフェイス経由で明示的に再開された場合にのみ再起動します。

有効な値
  • TRUE:新しいクエリが送信されると、ウェアハウスが再開します。

  • FALSE:ウェアハウスは、 ALTER WAREHOUSE またはSnowflake ウェブインターフェイスを使用して明示的に再開された場合にのみ再開します。

デフォルト

TRUE (ウェアハウスは SQL ステートメントが送信されると自動的に再開します)

INITIALLY_SUSPENDED = TRUE | FALSE

ウェアハウスを変更する場合は適用されません

RESOURCE MONITOR = リソースモニター名

ウェアハウスに明示的に割り当てられているリソースモニターの識別子を指定します。リソースモニターがウェアハウスに明示的に割り当てられている場合、モニターはウェアハウス(およびモニターが割り当てられている他のすべてのウェアハウス)が使用する月間クレジットを制御します。

有効な値

既存のリソースモニター。

詳細については、 リソースモニターの操作 をご参照ください。

デフォルト

値なし(ウェアハウスにリソースモニターが割り当てられていない)

ちなみに

すべてのリソースモニターとその識別子を表示するには、 SHOW RESOURCE MONITORS コマンドを使用します。

COMMENT = '文字列リテラル'

ウェアハウスのコメントを追加するか、既存のコメントを上書きします。

MAX_CONCURRENCY_LEVEL = 数値

ウェアハウスクラスターによって実行される SQL ステートメント(クエリおよび DML)の同時実行レベルを指定するオブジェクトパラメーター。レベルに達したとき:

  • 単一クラスターウェアハウスまたはマルチクラスターウェアハウス(最大化モード)の場合、リソースが使用可能になるまで追加のステートメントがキューに入れられます。

  • マルチクラスターウェアハウスの場合(自動スケールモード)、追加のクラスターが開始されます。

このパラメーターを STATEMENT_QUEUED_TIMEOUT_IN_SECONDS と組み合わせて使用すると、ウェアハウスがバックログされることがなくなります。

このパラメーターの詳細については、 MAX_CONCURRENCY_LEVEL をご参照ください。

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = 数値

SQL ステートメント(クエリ、 DDL、 DMLなど)をシステムでキャンセルする前にウェアハウスのキューに入れることができる時間を秒単位で指定するオブジェクトパラメーター。

このパラメーターを MAX_CONCURRENCY_LEVEL と組み合わせて使用すると、ウェアハウスがバックログされることがなくなります。

このパラメーターの詳細については、 STATEMENT_QUEUED_TIMEOUT_IN_SECONDS をご参照ください。

STATEMENT_TIMEOUT_IN_SECONDS = 数値

実行中の SQL ステートメント(クエリ、 DDL、 DMLなど)がシステムによってキャンセルされるまでの時間を秒単位で指定するオブジェクトパラメーター。

このパラメーターの詳細については、 STATEMENT_TIMEOUT_IN_SECONDS をご参照ください。

UNSET ...

データベースの設定を解除する1つ(または複数)のプロパティおよび/またはパラメーターを指定します。これにより、デフォルトにリセットします。

  • プロパティ名

  • パラメーター名

単一の ALTER ステートメントで複数のプロパティ/パラメーターをリセットできます。ただし、各プロパティ/パラメーターはカンマで区切る 必要があります 。また、プロパティ/パラメーターをリセットするときは、名前のみを指定します。値は必要ありません。

注釈

UNSET はウェアハウスのすべてのプロパティとパラメーターの設定を解除するために使用できますが、 WAREHOUSE_SIZE のみは 例外 で、 SET を使ってのみ変更できます。

使用上の注意

  • ウェアハウスは、サイズなどのプロパティを設定または変更するために停止する 必要はありません

  • ウェアハウスのサイズが変更されても、その変更はクエリを含む現在実行中のステートメントには影響しません。ステートメントが完了すると、後続のすべてのステートメントに新しいサイズが使用されます。

  • ウェアハウスを一時停止しても、一時停止時にウェアハウスで処理されているクエリは 中止されません。代わりに、ウェアハウスはクエリを完了し、クエリの処理に使用されたサーバーをシャットダウンします。この期間中、ウェアハウスとそのサーバーは 休止処理中 モードになっています。すべてのサーバーがシャットダウンされると、ウェアハウスの状況は「一時停止中」に変わります。

ウェアハウスの名前を wh1 から wh2 に変更します。

ALTER WAREHOUSE IF EXISTS wh1 RENAME TO wh2;

my_wh という名前のウェアハウスを再開し、実行中にウェアハウスのサイズを変更します。

ALTER WAREHOUSE my_wh RESUME;

ALTER WAREHOUSE my_wh SET warehouse_size=MEDIUM;