ウェアハウスの操作¶
すべてのウェアハウスタスクは、Snowflakeウェブインターフェイスから、またはウェアハウスの DDL コマンドを使用して実行できます。
このトピックの内容:
ウェアハウスの作成¶
ウェアハウスは、ウェブインターフェイスまたは SQLを使用して作成できます:
- Snowsight:
Admin » Warehouses » Warehouse を選択します
- Classic Console:
- SQL:
CREATE WAREHOUSE コマンドを実行します。
ウェアハウスを作成するとき、ウェアハウスを最初に「開始済み」(つまり実行中)状態で作成するか、「一時停止」状態で作成するかを指定できます。「開始済み」を選択した場合、すべてのコンピューティングリソースがウェアハウスにプロビジョニングされると、ウェアハウスはクレジットの消費を開始します。
注釈
「開始済み」状態でウェアハウスを作成することを選択すると、Snowflakeがウェアハウスのすべてのコンピューティングリソースをプロビジョニングするため、ウェアハウスが完全に使用可能になるまでに時間がかかる場合があります。
ウェアハウスの開始または再開¶
ウェアハウスは、初期作成時を含め、いつでも開始できます。ウェアハウスが作成されると、ウェアハウスの再開はウェアハウスの開始と同じです。
中断した(つまり、非アクティブな)ウェアハウスは、ウェブインターフェイスまたは SQL を使用して再開できます。
- Snowsight:
- Classic Console:
- SQL:
RESUME
キーワードを使用して ALTER WAREHOUSE コマンドを実行します。
通常、ウェアハウスの開始には数秒しかかかりません。ただし、まれに、Snowflakeがウェアハウスにコンピューティングリソースをプロビジョニングする際に時間がかかる場合があります。
ウェアハウスは実行中にクレジットを消費します。
すべてのコンピューティングリソースがウェアハウスにプロビジョニングされると、ウェアハウスはクレジットを消費し始めます。
まれに、コンピューティングリソースの一部がプロビジョニングに失敗すると、ウェアハウスはプロビジョニングされたコンピューティングリソースのクレジットのみを消費します。
残りのコンピューティングリソースが正常にプロビジョニングされると、ウェアハウスは要求されたすべてのコンピューティングリソースでクレジットの消費を開始します。
通常、ウェアハウスの開始には数秒しかかかりませんが、場合によっては、Snowflakeがウェアハウスにコンピューティングリソースをプロビジョニングする際に時間がかかるときがあります。
Snowflakeは、いずれかのコンピューティングリソースがプロビジョニングに失敗しない限り、ウェアハウスのすべてのコンピューティングリソースが正常にプロビジョニングされるまで、ウェアハウスに送信された SQL ステートメントの実行を開始しません。
ウェアハウスのいずれかのコンピューティングリソースが起動時にプロビジョニングに失敗すると、Snowflakeは失敗したコンピューティングリソースの修復を試みます。
修復プロセス中、要求されたコンピューティングリソースの50%以上が正常にプロビジョニングされると、ウェアハウスは SQL ステートメントの処理を開始します。
クレジットは、ウェアハウスの実行中に1秒ごとに請求され、ウェアハウスが再開されるたびに最低1分が請求されます。ただし、クレジット消費は60分(つまり、1時間ごと)の増分で報告されます。
ウェアハウスの一時停止¶
稼働中のウェアハウスは、 SQL ステートメントの実行中であっても、いつでも中断できます。ウェアハウスの中断は、すべてのコンピューティングリソースがシャットダウンされた後に、ウェアハウスによるクレジットの消費を停止します。
ウェアハウスは、ウェブインターフェイスまたは SQL を使用して中断できます。
- Snowsight:
- Classic Console:
- SQL:
SUSPEND
キーワードを使用して ALTER WAREHOUSE コマンドを実行します。
ウェアハウスを中断すると、Snowflakeはすぐにアイドル状態のウェアハウス用コンピューティングリソースすべてをシャットダウンしますが、ステートメントを実行中のコンピューティングリソースは、ステートメントが完了するまで継続できます。ステートメントが完了すると、コンピューティングリソースがシャットダウンされ、ウェアハウスのステータスが「中断」に変更されます。シャットダウンを待機しているコンピューティングリソースは、「静止」モードにあると見なされます。
ウェアハウスのサイズ変更¶
ウェアハウスは、ステートメントの実行中および処理中を含め、いつでもサイズを変更できます。
ウェアハウスのサイズは、ウェブインターフェイスまたは SQL を使用して変更できます。
- Snowsight:
- Classic Console:
- SQL:
SET WAREHOUSE_SIZE = ...
で ALTER WAREHOUSE コマンドを実行します。
以下を含む計算リソースを大きくすることにより、ウェアハウスが実行する操作にメリットが生じる場合は、ウェアハウスを大きなサイズに変更すると便利です。
大規模なデータセットに対する大規模で複雑なクエリのパフォーマンスの改善。
大量のデータのロードおよびアンロード中のパフォーマンスの改善。
稼働中のウェアハウスのサイズ変更による影響¶
稼働中のウェアハウスのサイズを変更すると、ウェアハウス内の 各 クラスターのコンピューティングリソースが追加または削除されます。ウェアハウスの開始または中断に関連する使用およびクレジットルールすべては、次のような開始されたウェアハウスのサイズ変更に適用されます。
ウェアハウスに追加されたコンピューティングリソースは、プロビジョニングされるとクレジットの使用を開始します。ただし、一部のコンピューティングリソースがプロビジョニングに失敗しない限り、追加コンピューティングリソースはすべてプロビジョニングされるまでステートメントの実行を開始しません。
コンピューティングリソースがウェアハウスから削除されるのは、現在のステートメントの実行に使用されなくなった場合のみです。
ウェアハウスのサイズを変更しても、ウェアハウスによって現在実行されているステートメントには影響はありません。より大きなサイズに変更する場合、新しいコンピューティングリソースは、完全にプロビジョニングされた後に、ウェアハウスキューのすでにあるステートメントと、ウェアハウスに送信される今後のすべてのステートメントを実行するためにのみ使用されます。
Tip
ウェアハウスの追加コンピューティングリソースが完全にプロビジョニングされていることを確認するには、 ALTER WAREHOUSE コマンドに WAIT_FOR_COMPLETION
パラメーターを追加します。 SHOW WAREHOUSES を使用して state
を確認することもできます。
中断したウェアハウスのサイズ変更の影響¶
中断中のウェアハウスのサイズを変更しても、ウェアハウスに新しいコンピューティングリソースはプロビジョニングされません。ウェアハウスの次回再開時に追加のコンピューティングリソースをプロビジョニングするようにSnowflakeに指示するだけで、その時点でウェアハウスの開始に関連するすべての使用法とクレジットの規則が適用されます。
ウェアハウスの使用¶
Snowflakeでクエリまたは DML ステートメントを実行するには、ウェアハウスが実行されていて、クエリ/ステートメントが送信されるセッションの現在のウェアハウスとして指定されている必要があります。
Snowflakeセッションには、一度に1つの現在のウェアハウスしか持てません。セッションの現在のウェアハウスは、 USE WAREHOUSE コマンドを使用していつでも指定または変更できます。
稼働中のウェアハウスがセッションの現在のウェアハウスとして設定されると、セッション内で送信されたクエリと DML ステートメントはウェアハウスによって処理されます。 Classic Console の History および Worksheets ページで、各クエリ/ステートメントの処理に使用されるウェアハウスを表示できます。
ウェアハウス管理の委託¶
ACCOUNTADMIN ロールにはデフォルトで、アカウント内のすべてのウェアハウスに対する、変更、中断、説明、その他の操作を実行する権限が付与されます。
これらの権限をアカウント内のカスタムロールに委任する必要がある場合は、 GRANT <権限> コマンドを使用して、そのロールに MANAGE WAREHOUSES 権限を付与することができます。MANAGE WAREHOUSES 権限を付与することは、アカウント内のすべてのウェアハウスに対する MODIFY、 MONITOR、 OPERATE 権限を付与することと同じです。
以下の例は、 manage_wh_role
という名前のカスタムロールにウェアハウスを管理する権限を委任する方法を示しています。この例では、 manage_wh_role
を使用して、別のロール(create_wh_role
)が所有するウェアハウス test_wh
に変更を加えています。
新しいウェアハウスを作成し所有する新しいロールを作成し、そのロールに CREATE WAREHOUSE 権限を付与します。
CREATE ROLE create_wh_role;
GRANT CREATE WAREHOUSE ON ACCOUNT TO ROLE create_wh_role;
GRANT ROLE create_wh_role TO ROLE SYSADMIN;
アカウント内のすべてのウェアハウスを管理する2番目のロールを作成し、そのロールに MANAGE WAREHOUSES 権限を付与します。
CREATE ROLE manage_wh_role;
GRANT MANAGE WAREHOUSES ON ACCOUNT TO ROLE manage_whs_role;
GRANT ROLE manage_whs_role TO ROLE SYSADMIN;
create_wh_role
ロールを使用して、新しいウェアハウスを作成します。
USE ROLE create_wh_role;
CREATE OR REPLACE WAREHOUSE test_wh
WITH WAREHOUSE_SIZE= XSMALL;
現在のロールを manage_wh_role
に変更します。
USE ROLE manage_whs_role;
manage_wh_role
は test_wh
を所有していませんが、そのロールは MANAGE WAREHOUSES 権限を持っています。
ウェアハウスを中断し、再開する。
ALTER WAREHOUSE test_wh SUSPEND; ALTER WAREHOUSE test_wh RESUME;
ウェアハウスのサイズを変更する。
ALTER WAREHOUSE test_wh SET WAREHOUSE_SIZE = SMALL;
ウェアハウスを説明する。
DESC WAREHOUSE test_wh;