ウェアハウスでの作業

すべてのウェアハウスタスクは、Snowflakeウェブインターフェイスから、またはウェアハウスの DDL コマンドを使用して実行できます。

このトピックの内容:

ウェアハウスの作成

ウェアハウスは、ウェブインターフェイスまたは SQLを使用して作成できます:

Snowsight

Admin » Warehouses » Warehouse を選択します

Classic Console

Warehouses Warehouses tab » Create を選択します

SQL

CREATE WAREHOUSE コマンドを実行します。

ウェアハウスを作成するとき、ウェアハウスを最初に「開始済み」(つまり実行中)状態で作成するか、「一時停止」状態で作成するかを指定できます。「開始済み」を選択した場合、すべてのコンピューティングリソースがウェアハウスにプロビジョニングされると、ウェアハウスはクレジットの消費を開始します。

注釈

「開始済み」状態でウェアハウスを作成することを選択すると、Snowflakeがウェアハウスのすべてのコンピューティングリソースをプロビジョニングするため、ウェアハウスが完全に使用可能になるまでに時間がかかる場合があります。

ウェアハウスの開始または再開

ウェアハウスは、初期作成時を含め、いつでも開始できます。ウェアハウスが作成されると、ウェアハウスの再開はウェアハウスの開始と同じです。

一時停止した(つまり、非アクティブな)ウェアハウスは、ウェブインターフェイスまたは SQL を使用して再開できます。

Snowsight

Admin » Warehouses » <中断されたウェアハウス名> » More options » Resume を選択します

Classic Console

Warehouses Warehouses tab » <中断されたウェアハウス名> » Resume を選択します

SQL

RESUME キーワードを使用して ALTER WAREHOUSE コマンドを実行します。

通常、ウェアハウスの開始には数秒しかかかりません。ただし、まれに、Snowflakeがウェアハウスにコンピューティングリソースをプロビジョニングする際に時間がかかる場合があります。

ウェアハウスは実行中にクレジットを消費します。

  • すべてのコンピューティングリソースがウェアハウスにプロビジョニングされると、ウェアハウスはクレジットを消費し始めます。

    • まれに、コンピューティングリソースの一部がプロビジョニングに失敗すると、ウェアハウスはプロビジョニングされたコンピューティングリソースのクレジットのみを消費します。

    • 残りのコンピューティングリソースが正常にプロビジョニングされると、ウェアハウスは要求されたすべてのコンピューティングリソースでクレジットの消費を開始します。

  • 通常、ウェアハウスの開始には数秒しかかかりませんが、場合によっては、Snowflakeがウェアハウスにコンピューティングリソースをプロビジョニングする際に時間がかかるときがあります。

  • Snowflakeは、いずれかのコンピューティングリソースがプロビジョニングに失敗しない限り、ウェアハウスのすべてのコンピューティングリソースが正常にプロビジョニングされるまで、ウェアハウスに送信された SQL ステートメントの実行を開始しません。

    • ウェアハウスのいずれかのコンピューティングリソースが起動時にプロビジョニングに失敗すると、Snowflakeは失敗したコンピューティングリソースの修復を試みます。

    • 修復プロセス中、要求されたコンピューティングリソースの50%以上が正常にプロビジョニングされると、ウェアハウスは SQL ステートメントの処理を開始します。

クレジットは、ウェアハウスの実行中に1秒ごとに請求され、ウェアハウスが再開されるたびに最低1分が請求されます。ただし、クレジット消費は60分(つまり、1時間ごと)の増分で報告されます。

注釈

セッションで送信された SQL ステートメントを処理するには、ウェアハウスが稼働しており、セッションの現在のウェアハウス(つまり、 使用中)である必要があります。詳細については、このトピックの ウェアハウスの使用 をご参照ください。

ウェアハウスの一時停止

稼働中のウェアハウスは、 SQL ステートメントの実行中であっても、いつでも一時停止できます。ウェアハウスの一時停止は、すべてのコンピューティングリソースがシャットダウンされた後に、ウェアハウスによるクレジットの消費を停止します。

ウェアハウスは、ウェブインターフェイスまたは SQL を使用して停止できます。

Snowsight

Admin » Warehouses » <開始されたウェアハウス名> » More options » Suspend を選択します

Classic Console

Warehouses Warehouses tab » <開始されたウェアハウス名> » Suspend を選択します

SQL

SUSPEND キーワードを使用して ALTER WAREHOUSE コマンドを実行します。

ウェアハウスを一時停止すると、Snowflakeはすぐにアイドル状態のウェアハウス用コンピューティングリソースすべてをシャットダウンしますが、ステートメントを実行中のコンピューティングリソースは、ステートメントが完了するまで継続できます。ステートメントが完了すると、コンピューティングリソースがシャットダウンされ、ウェアハウスのステータスが「一時停止」に変更されます。シャットダウンを待機しているコンピューティングリソースは、「静止」モードにあると見なされます。

ウェアハウスのサイズ変更

ウェアハウスは、ステートメントの実行中および処理中を含め、いつでもサイズを変更できます。

ウェアハウスのサイズは、ウェブインターフェイスまたは SQL を使用して変更できます。

Snowsight

Admin » Warehouses » <ウェアハウス名> » More options » Edit を選択します

Classic Console

Warehouses Warehouses tab » <ウェアハウス名> » Configure を選択します

SQL

SET WAREHOUSE_SIZE = ...ALTER WAREHOUSE コマンドを実行します。

以下を含む計算リソースを大きくすることにより、ウェアハウスが実行する操作にメリットが生じる場合は、ウェアハウスを大きなサイズに変更すると便利です。

  • 大規模なデータセットに対する大規模で複雑なクエリのパフォーマンスの改善。

  • 大量のデータのロードおよびアンロード中のパフォーマンスの改善。

稼働中のウェアハウスのサイズ変更による影響

稼働中のウェアハウスのサイズを変更すると、ウェアハウス内の クラスターのコンピューティングリソースが追加または削除されます。ウェアハウスの開始または一時停止に関連する使用およびクレジットルールすべては、次のような開始されたウェアハウスのサイズ変更に適用されます。

  • ウェアハウスに追加されたコンピューティングリソースは、プロビジョニングされるとクレジットの使用を開始します。ただし、一部のコンピューティングリソースがプロビジョニングに失敗しない限り、追加コンピューティングリソースはすべてプロビジョニングされるまでステートメントの実行を開始しません。

  • コンピューティングリソースがウェアハウスから削除されるのは、現在のステートメントの実行に使用されなくなった場合のみです。

ウェアハウスのサイズを変更しても、ウェアハウスによって現在実行されているステートメントには影響はありません。より大きなサイズに変更する場合、新しいコンピューティングリソースは、完全にプロビジョニングされた後に、ウェアハウスキューのすでにあるステートメントと、ウェアハウスに送信される今後のすべてのステートメントを実行するためにのみ使用されます。

ちなみに

ウェアハウスの追加コンピューティングリソースが完全にプロビジョニングされていることを確認するには、 ALTER WAREHOUSE コマンドに WAIT_FOR_COMPLETION パラメーターを追加します。 SHOW WAREHOUSES を使用して state を確認することもできます。

一時停止したウェアハウスのサイズ変更の影響

一時停止中のウェアハウスのサイズを変更しても、ウェアハウスに新しいコンピューティングリソースはプロビジョニングされません。ウェアハウスの次回再開時に追加のコンピューティングリソースをプロビジョニングするようにSnowflakeに指示するだけで、その時点でウェアハウスの開始に関連するすべての使用法とクレジットの規則が適用されます。

ウェアハウスの使用

Snowflakeでクエリまたは DML ステートメントを実行するには、ウェアハウスが実行されていて、クエリ/ステートメントが送信されるセッションの現在のウェアハウスとして指定されている必要があります。

Snowflakeセッションには、一度に1つの現在のウェアハウスしか持てません。セッションの現在のウェアハウスは、 USE WAREHOUSE コマンドを使用していつでも指定または変更できます。

稼働中のウェアハウスがセッションの現在のウェアハウスとして設定されると、セッション内で送信されたクエリと DML ステートメントはウェアハウスによって処理されます。 Classic Console の History History tab および Worksheets Worksheet tab ページで、各クエリ/ステートメントの処理に使用されるウェアハウスを表示できます。

ウェアハウス管理の委託

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

アカウント内のすべてのウェアハウスを管理する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;
Copy

create_wh_role ロールを使用して、新しいウェアハウスを作成します。

USE ROLE create_wh_role;
CREATE OR REPLACE WAREHOUSE test_wh
    WITH WAREHOUSE_SIZE= XSMALL;
Copy

現在のロールを manage_wh_role に変更します。

USE ROLE manage_whs_role;
Copy

manage_wh_roletest_wh を所有していませんが、そのロールは MANAGE WAREHOUSES 権限を持っています。

  • ウェアハウスを中断し、再開する。

    ALTER WAREHOUSE test_wh SUSPEND;
    ALTER WAREHOUSE test_wh RESUME;
    
    Copy
  • ウェアハウスのサイズを変更する。

    ALTER WAREHOUSE test_wh SET WAREHOUSE_SIZE = SMALL;
    
    Copy
  • ウェアハウスを説明する。

    DESC WAREHOUSE test_wh;
    
    Copy