ウェアハウスの概要

クエリ、およびテーブルへのデータのロードを含むすべての DML 操作には、ウェアハウスが必要です。ウェアハウスは、そのサイズと、ウェアハウスアクティビティの制御と自動化に役立つように設定できる他のプロパティによって定義されます。

ウェアハウスはいつでも開始および停止できます。また、実行中であっても、ウェアハウスによって実行される操作の種類に応じて、多少の計算リソースの必要性に対応するために、いつでもサイズを変更できます。

このトピックの内容:

ウェアハウスサイズ

サイズは、ウェアハウス内の各クラスターを構成するサーバーの数を指定します。Snowflakeは、次のウェアハウスサイズをサポートしています:

ウェアハウスサイズ

サーバー / クラスター

クレジット / 時間

クレジット / 秒

注意

XS

1

1

0.0003

CREATE WAREHOUSE を使用して作成されたウェアハウスのデフォルトサイズ。

S

2

2

0.0006

M

4

4

0.0011

L

8

8

0.0022

XL

16

16

0.0044

ウェブインターフェイスで作成されたウェアハウスのデフォルト。

2XL

32

32

0.0089

3XL

64

64

0.0178

4XL

128

128

0.0356

クレジットの使用状況と請求への影響

上記の表に示すように、ウェアハウスクラスター内のサーバーの数と、クラスターがウェアハウスが フル に1時間稼働するごとに消費する(したがって課金される)クレジットの数とは1対1で対応しています。ただし、Snowflakeは1秒あたりの請求を使用することに注意してください(ウェアハウスが起動するたびに最小60秒)。そのため、ウェアハウスには実際に消費したクレジットに対して のみ 請求されます。

請求されるクレジットの総数は、ウェアハウスが継続的に稼働している時間によって異なります。比較のために、次の表に実行時間に基づいた3つの異なるサイズのウェアハウスの請求合計を示します(クレジットの最も近い1000に四捨五入された合計):

実行 時間

クレジット . (XS)

クレジット . (XL)

クレジット . (3XL)

0~60秒

0.017

0.267

1.067

61秒

0.017

0.271

1.084

2分

0.033

0.533

2.133

10分

0.167

2.667

10.667

1時間

1.000

16.000

64.000

注釈

マルチクラスターウェアハウス の場合、請求されるクレジットの数は、クラスターあたりのサーバー数と期間内に実行されるクラスター数に基づいて計算されます。

例えば、3XLマルチクラスターウェアハウスが1つのクラスターを1時間実行し、次に2つのクラスターを フル に次の1時間実行した場合、請求されるクレジットの合計数は192(つまり、64 + 128)になります。

マルチクラスターウェアハウスは、 Enterprise Edition の機能です。

データのロードへの影響

ウェアハウスのサイズを大きくしても、データロードのパフォーマンスが常に向上するわけでは ありません 。データロードのパフォーマンスは、ウェアハウスのサイズよりも、ロードされるファイルの数(および各ファイルのサイズ)の影響を受けます。

ちなみに

大量のファイル(つまり、数百または数千のファイル)を同時に一括ロードする場合を除き、通常は、より小さなウェアハウス(小、中、大)で十分です。より大きなウェアハウス(XL、2XLなど)を使用すると、より多くのクレジットが消費され、パフォーマンスの向上がみられない場合があります。

データロードのヒントとガイドラインの詳細については、 データロードに関する考慮事項 をご参照ください。

クエリ処理への影響

ウェアハウスのサイズは、特に大規模で複雑なクエリの場合、ウェアハウスに送信されたクエリの実行に必要な時間に影響を与える可能性があります。一般に、サイズが増加するたびに追加の計算リソースがプロビジョニングされるため、クエリのパフォーマンスはウェアハウスのサイズに比例して増加します。

ウェアハウスで処理されたクエリの実行が遅い場合、いつでもウェアハウスのサイズを変更して、より多くのサーバーをプロビジョニングできます。追加のサーバーは、既に実行されているクエリには影響しませんが、キューに入れられたクエリまたは新しく送信されたクエリで使用できます。

ちなみに

小さくて基本的なクエリの場合、大きくても必ずしも速くなるとは限りません。

ウェアハウスのその他のヒントとガイドラインについては、 ウェアハウスに関する考慮事項 をご参照ください。

自動中断と自動再開

ウェアハウスは、アクティビティに基づいて自動的に再開または一時停止するように設定できます:

  • デフォルトでは、自動サスペンドは有効になっています。Snowflakeは、指定された期間アクティブでない場合、ウェアハウスを自動的に一時停止します。

  • デフォルトでは、自動再開は有効になっています。ウェアハウスが必要なステートメントが送信され、 さらに ウェアハウスがセッションの現在のウェアハウスである場合、Snowflakeはウェアハウスを自動的に再開します。

これらのプロパティを使用して、ワークロードに合わせてウェアハウスの監視と使用を簡素化および自動化できます。自動サスペンドにより、受信クエリがない場合にウェアハウスを実行したままにしておく(およびクレジットを消費する)ことがなくなります。同様に、自動再開により、必要に応じてウェアハウスが再び起動することが保証されます。

注釈

自動サスペンドと自動再開は、ウェアハウス内の個々のクラスターではなく、ウェアハウス全体にのみ適用されます。 マルチクラスターウェアハウス の場合:

  • 自動サスペンドは、最小数のクラスターが実行されており、指定された期間アクティビティがない場合にのみ発生します。通常、最小値は1(クラスター)ですが、1を超えることもあります。

  • 自動再開は、ウェアハウス全体が中断されている場合(つまり、クラスターが実行されていない場合)にのみ適用されます。

クエリ処理と同時実行

ウェアハウスが同時に処理できるクエリの数は、各クエリのサイズと複雑さによって決まります。クエリが送信されると、ウェアハウスは各クエリの処理に必要な計算リソースを計算して予約します。クエリを処理するのに十分なリソースがウェアハウスにない場合、クエリはキューに入れられ、保留中のリソースは実行中の他のクエリが完了すると利用可能になります。

Snowflakeには、クエリ処理と同時実行性の制御に役立つように設定できるオブジェクトレベルのパラメーターがいくつか用意されています:

注釈

クエリが必要以上にキューイングされている場合は、別のウェアハウスを作成し、クエリを新しいウェアハウスに手動でリダイレクトできます。さらに、ウェアハウスのサイズを変更すると、クエリの同時実行性とキューイングの制限されたスケーリングが可能になります。ただし、ウェアハウスのサイズ変更は、主にクエリのパフォーマンスを向上させることを目的としています。

同時実行性の完全自動スケーリングを有効にするには、Snowflakeは マルチクラスターウェアハウス を推奨します。これは、追加のウェアハウスを作成し、クエリをリダイレクトするのと本質的に同じ利点を提供しますが、手動の介入は不要です。

マルチクラスターウェアハウスは、 Enterprise Edition の機能です。

セッションでのウェアハウスの使用

Snowflakeでセッションが開始されると、セッションにはデフォルトでそれに関連付けられたウェアハウスがありません。セッションにウェアハウスが関連付けられるまで、セッション内でクエリを送信できません。

ユーザーのデフォルトウェアハウス

セッションの開始直後にクエリを実行しやすくするために、Snowflakeは個々のユーザーごとにデフォルトのウェアハウスを指定することをサポートしています。ユーザーのデフォルトのウェアハウスは、ユーザーが開始したすべてのセッションのウェアハウスとして使用されます。

デフォルトのウェアハウスは、ユーザーを作成または変更するときに、ウェブインターフェイスまたは CREATE USER/ALTER USER を使用して指定できます。

クライアントユーティリティ/ドライバー/コネクタのデフォルトウェアハウス

ユーザーのデフォルトウェアハウスに加えて、Snowflakeクライアント(SnowSQL、 JDBC ドライバー、 ODBC ドライバー、Pythonコネクタなど)のいずれにもデフォルトウェアハウスを設定できます:

  • SnowSQL はデフォルトのウェアハウスを指定するための構成ファイルとコマンドラインオプションの両方をサポートしています。

  • ドライバーとコネクタは、セッションを開始するときに接続パラメーターとしてデフォルトのウェアハウスを指定することをサポートします。

詳細については、 Snowflakeへの接続 をご参照ください。

ウェアハウスのデフォルトの優先順位

ユーザーがSnowflakeに接続してセッションを開始すると、Snowflakeは次の順序でセッションのデフォルトのウェアハウスを決定します:

  1. ユーザーのデフォルトのウェアハウス、

    » 上書き...

  2. Snowflakeへの接続に使用されるクライアントユーティリティ(SnowSQL、 JDBC ドライバーなど)の構成ファイル内のデフォルトのウェアハウス(クライアントが構成ファイルをサポートしている場合)、

    » 上書き...

  3. クライアントコマンドラインまたはSnowflakeに渡されるドライバー/コネクタパラメーターで指定されたデフォルトのウェアハウス。

注釈

さらに、セッション内で USE WAREHOUSE コマンドを実行することにより、セッションのデフォルトのウェアハウスをいつでも変更できます。