マルチクラスターウェアハウス

マルチクラスターウェアハウスを使用すると、コンピューティングリソースを拡張して、ピーク時や営業時間外など、ユーザーとクエリの同時実行性のニーズを管理できます。

このトピックの内容:

マルチクラスターウェアハウスとは

デフォルトでは、仮想ウェアハウスのサイズによって、クエリを実行するためにウェアハウスで使用できるコンピューティングリソースが決まります。各ウェアハウスは、コンピューティングリソースのセットです。クエリがウェアハウスに送信されると、ウェアハウスは各クエリにリソースを割り当て、クエリの実行を開始します。ウェアハウスに送信されたすべてのクエリを実行するのに十分なリソースが利用できない場合、Snowflakeは必要なリソースが利用可能になるまで追加のクエリをキューに入れます。

Snowflakeは、マルチクラスターウェアハウスを使用して、静的または動的に追加のウェアハウスを割り当てて、より多くのコンピューティングリソースを利用できるようにします。マルチクラスターウェアハウスは、次のプロパティを指定することで定義されます。

  • ウェアハウスの最大数。1より大きい値(最大10)。

  • ウェアハウスの最小数。最大値以下(最大10)。

さらに、マルチクラスターウェアハウスは、以下を含む単一のウェアハウスと同じプロパティとアクションをすべてサポートしています。

  • ウェアハウスサイズの指定。

  • ウェアハウスのサイズはいつでも変更できます。

  • 使用されていないために実行中のウェアハウスを自動一時停止する。これは個々のウェアハウスではなく、マルチクラスターウェアハウス全体に適用されることに注意してください。

  • 新しいクエリが送信されたときに一時停止したウェアハウスを自動再開する。

最大化と自動スケール

次のいずれかのモードでマルチクラスターウェアハウスを実行することを選択できます:

最大化

このモードを有効にするには、ウェアハウスの最大数と最小数の両方に 同じ 値を指定します(指定した値は1より大きくなければならないことに注意してください)。このモードでは、マルチクラスターウェアハウスの起動時に、Snowflakeがすべてのウェアハウスを起動するため、マルチクラスターウェアハウスの実行中に最大のリソースが利用可能になります。

このモードは、利用可能なコンピューティングリソースを静的に制御する場合、特に多数の同時ユーザーセッションやクエリがあり、その数が大幅に変動しない場合に効果的です。

自動スケール

このモードを有効にするには、ウェアハウスの最大数と最小数に 異なる 値を指定します。このモードでは、Snowflakeは必要に応じてウェアハウスを開始および停止し、マルチクラスターウェアハウスの負荷を動的に管理します。

  • マルチクラスターウェアハウスの同時ユーザーセッションやクエリの数が増加し、リソースが不十分なためクエリがキューに入り始めると、Snowflakeは、マルチクラスターウェアハウスの定義された最大数を上限として、自動的にウェアハウスの追加を開始します。

  • 同様に、マルチクラスターウェアハウスの負荷が減少すると、Snowflakeはクラスターを自動的にシャットダウンして実行中のウェアハウスの数を減らすため、それに応じて、マルチクラスターウェアハウスで使用されるクレジット数が減少します。

自動スケールモードでクレジットの使用を制御するために、Snowflakeは、追加ウェアハウスを自動的に開始またはシャットダウンするときに使用するスケーリングポリシーを決定する、プロパティ SCALING_POLICY を提供します。詳細については、 マルチクラスターウェアハウスのスケーリングポリシーの設定 (このトピック内)をご参照ください。

ちなみに

マルチクラスターウェアハウスに使用するウェアハウスの最大数と最小数を決定するときは、自動スケールモードと、小さい数値から始めます(例: 最大 = 2または3、最小= 1)。ウェアハウスの負荷が時間とともにどのように変動するかを追跡しながら、ユーザー/クエリの同時実行の上限と下限を最もよくサポートする数値を決定するまで、ウェアハウスの最大数と最小数を増やしていきます。

マルチクラスターサイズとクレジット使用状況

各クラスター内のウェアハウスの数は、マルチクラスターウェアハウスのサイズによって決まります。

  • マルチクラスターウェアハウス向けのウェアハウスの合計数は、ウェアハウスサイズにウェアハウスの最大数を掛けて計算されます。これは、マルチクラスターウェアハウス1時間の使用で消費されるクレジットの最大数も示します(つまり、1時間に すべて のウェアハウスが実行される場合)。

    たとえば、ウェアハウスが3個あるMサイズのマルチクラスターウェアハウスで1時間あたりに消費されるクレジットの最大数は12クレジットです。

  • マルチクラスターウェアハウスのサイズが変更されると、新しいサイズは、現在実行中のクラスターや、マルチクラスターウェアハウスのサイズ変更後に開始されるウェアハウスを含む、マルチクラスターウェアハウスのウェアハウス すべて に適用されます。

1時間あたりに消費されるクレジットの実際の数は、マルチクラスターウェアハウスが実行されている各時間中に実行されているウェアハウスの数によって異なります。詳細については、 マルチクラスタークレジットの使用状況例 (このトピック内)をご参照ください。

マルチクラスターウェアハウスの利点

標準の単一クラスタウェアハウスでは、ユーザー/クエリの負荷が増加して、より多くの計算リソースが必要になる場合:

  1. ウェアハウスのサイズを増やすか、追加のウェアハウスを開始して、追加のユーザー/クエリをこれらのウェアハウスに明示的にリダイレクトする必要があります。

  2. 次に、リソースが不要になったら、クレジットを節約するために、より大きなウェアハウスを手動で縮小するか、追加のウェアハウスを一時停止する必要があります。

対照的に、マルチクラスターウェアハウスでは、より多くのユーザーが同じサイズのウェアハウスに接続できます。追加条件:

  • 自動スケールモードでは、マルチクラスターウェアハウスにより、ウェアハウスのサイズを変更したり、変動するワークロードを処理するために、追加のウェアハウスを開始および停止したりする必要がなくなります。Snowflakeは、必要に応じて追加のウェアハウスを自動的に開始および停止します。

  • 最大化モードでは、必要に応じてウェアハウスの数を増減することにより、マルチクラスターウェアハウスの容量を制御できます。

ちなみに

マルチクラスターウェアハウスは、リソースをスケーリングしてユーザー/クエリの同時実行性を向上させるのに最適です。これらは、低速のクエリやデータのロードのパフォーマンスを向上させるのにそれほど有益ではありません。これらのタイプの操作の場合、 サイズ変更 ウェアハウスにはさらに多くの利点があります。

マルチクラスタークレジットの使用状況例

次の4つの例は、マルチクラスターウェアハウスのクレジット使用状況を示しています。ウェアハウスのサイズごとに、1時間あたりの請求されるクレジットの数については、 仮想ウェアハウスのクレジット使用状況 をご参照ください。

注釈

簡単にするために、これらのすべての例では、クレジットの使用状況を1時間、30分、および15分単位で示しています。1秒あたりの請求が使用されるため、実際のシナリオでは、各ウェアハウスが実行される秒数に基づいて、クレジット使用状況に端数が含まれます。

例1: 最大化(2時間)

この例では、3個のウェアハウスを備えたMサイズのマルチクラスターウェアハウスが、最大化モードで2時間実行されます。

ウェアハウス1

ウェアハウス2

ウェアハウス3

クレジット合計

1時間目

4

4

4

12

2時間目

4

4

4

12

クレジット合計

8

8

8

24

例2: 自動スケール(2時間)

この例では、3個のウェアハウスを備えたMサイズのマルチクラスターウェアハウスが、自動スケールモードで2時間実行されます。

  • ウェアハウス1は、継続的に実行されます。

  • ウェアハウス2は、2時間目だけ継続的に実行されます。

  • ウェアハウス3は、2時間目の間に30分間実行されます。

ウェアハウス1

ウェアハウス2

ウェアハウス3

クレジット合計

1時間目

4

0

0

4

2時間目

4

4

2

10

クレジット合計

8

4

2

14

例3: 自動スケール(3時間)

この例では、3個のウェアハウスを備えたMサイズのマルチクラスターウェアハウスが、自動スケールモードで3時間実行されます。

  • ウェアハウス1は、継続的に実行されます。

  • ウェアハウス2は、2時間全体と3時間目の30分にわたって継続的に実行されます。

  • ウェアハウス3は、3時間目に30分間実行されます。

ウェアハウス1

ウェアハウス2

ウェアハウス3

クレジット合計

1時間目

4

0

0

4

2時間目

4

4

0

8

3時間目

4

2

2

8

クレジット合計

12

6

2

20

例4: 自動スケール(3時間)とサイズ変更

この例では、例3と同じウェアハウスが自動スケールモードで3時間実行され、サイズがMからLに変更されます。

  • ウェアハウス1は、継続的に実行されます。

  • ウェアハウス2は、2時間目と3時間目まで連続して実行されます。

  • マルチクラスターウェアハウスのサイズは、1時間半でMからLに変更されます。

  • ウェアハウス3は、3時間目に15分間実行されます。

ウェアハウス1

ウェアハウス2

ウェアハウス3

クレジット合計

1時間目

4

0

0

4

2時間目

4+2

4+2

0

12

3時間目

8

8

2

18

クレジット合計

18

14

2

34

マルチクラスターウェアハウスの作成

ウェブインターフェイスまたは SQL を使用して、マルチクラスターウェアハウスを作成できます。

作成したマルチクラスターウェアハウスに関する情報を表示するには、

ウェブインターフェイス

Warehouses Warehouses tab をクリックします

Clusters 列には、各マルチクラスターウェアハウス向けのウェアハウスの最大数と最小数、およびマルチクラスターウェアハウスが開始された場合は、現在実行されているウェアハウスの数が表示されます。

SQL

SHOW WAREHOUSES コマンドを実行します。

出力には3つの列(min_cluster_countmax_cluster_countstarted_clusters_column)が含まれ、ウェブインターフェイスの Clusters 列で提供されるのと同じ情報が表示されます。

マルチクラスターウェアハウスの他のすべてのタスク(このトピックで説明する残りのタスクを除く)は、シングルクラスター ウェアハウスタスク と同じです。

マルチクラスターウェアハウスのスケーリングポリシーの設定

自動スケールモードで実行されているマルチクラスターウェアハウスによって消費されるクレジットを制御するために、Snowflakeはスケーリングポリシーを提供します。これは、ウェアハウスを開始またはシャットダウンするタイミングを決定するために使用されます。

マルチクラスターウェアハウスのスケーリングポリシーは、自動スケールモードで実行されている場合にのみ適用されます。最大化モードでは、すべてのウェアハウスが同時に実行されるため、個々のウェアハウスを起動またはシャットダウンする必要はありません。

Snowflakeは、次のスケーリングポリシーをサポートしています。

ポリシー

説明

ウェアハウスが始まります...

ウェアハウスがシャットダウンします...

標準(デフォルト)

クレジットの節約よりも追加ウェアハウスの開始を優先することにより、キューを防止/最小化します。

クエリの処理待ち、 または システムが現在実行中のウェアハウスで実行できるクエリよりも1つ多いクエリが検出されると、最初のウェアハウスがただちに始まります。

連続する各ウェアハウスは、前のウェアハウスが始まってから20秒の間、開始を待機します。たとえば、マルチクラスターウェアハウスがウェアハウスの最大数10で構成されている場合、ウェアハウス10個すべてを開始するのに必要な時間は、丸々200秒以上かかる場合があります。

2~3つのチェック(1分間隔で実行)に連続して成功した後、ウェアハウスを再起動せずに、最小負荷ウェアハウスの負荷を他のウェアハウスに再分散できるかどうかが決定されます。

エコノミー

追加のウェアハウスを開始するのではなく、実行中のウェアハウスを完全にロードしたままにしておくことでクレジットを節約します。これにより、クエリがキューに入れられ、完了までに時間がかかることがあります。

システムが、ウェアハウスを少なくとも6分間ビジー状態に保つのに十分なクエリ負荷があると推定する場合のみ。

5~6つのチェック(1分間隔で実行)に連続して成功した後、ウェアハウスを再起動せずに、最小負荷ウェアハウスの負荷を他のウェアハウスに再分散できるかどうかが決定されます。

注釈

下位互換性のために、3番目のスケーリングポリシー、Legacyが提供されました。他のポリシーとは対照的に、ウェアハウスがアクティブ/非アクティブである時間の長さに基づいた静的アプローチを使用しました。

Legacyは廃止/削除されました。Legacyポリシーを使用していたすべてのマルチクラスターウェアハウスは、デフォルトの標準ポリシーを使用するようになりました。

マルチクラスターウェアハウスのスケーリングポリシーは、作成時またはその後いつでも、ウェブインターフェイスまたは SQL を使用して設定できます。

ウェブインターフェイス

次をクリックします。

  • Warehouses Warehouses tab » Create または

  • Warehouses Warehouses tab » <ウェアハウス名> » Configure

Scaling Policy フィールドで、ドロップダウンリストから目的の値を選択します。

SQL

SCALING_POLICY を目的の値に設定して CREATE WAREHOUSE または ALTER WAREHOUSE コマンドを実行します。

たとえば、 SQL では次のようになります。

ALTER WAREHOUSE mywh SET SCALING_POLICY = 'ECONOMY';

マルチクラスターウェアハウスのウェアハウスの増減

ステートメントの実行時を含め、マルチクラスターウェアハウスのウェアハウスの数はいつでも増減できます。ウェブインターフェイスまたは SQL を使用して、マルチクラスターウェアハウスのウェアハウスを増減できます。

ウェブインターフェイス

Warehouses Warehouses tab » <ウェアハウス名> » Configure をクリックします

SQL

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

実行しているマルチクラスターウェアハウスのウェアハウスの最大数と最小数を変更した場合の効果は、最大化モードまたは自動スケールモードのどちらで実行されているかによって異なります。

  • 最大化:

    ↑ 最大および最小

    指定された数のウェアハウスがすぐに開始されます。

    ↓ 最大および最小

    ステートメントの実行が終了し、自動一時停止期間が経過すると、指定された数のウェアハウスがシャットダウンします。

  • 自動スケール:

    ↑ 最大

    new_max_clusters > running_clusters の場合は、追加のウェアハウスが必要になるまで変更はありません。

    ↓ 最大

    new_max_clusters < running_clusters の場合、過剰なウェアハウスはステートメントの実行を終了してシャットダウンし、 スケーリングポリシー の条件が満たされます。

    ↑ 最小

    new_min_clusters > running_clusters の場合は、追加のウェアハウスがただちに開始され、最小数を満たします。

    ↓ 最小

    new_min_clusters < running_clusters の場合、過剰なウェアハウスはステートメントの実行を終了してシャットダウンし、 スケーリングポリシー の条件が満たされます。

マルチクラスターウェアハウスの監視

ウェブインターフェイスを介して、マルチクラスターウェアハウスの使用状況を監視できます:

ウェブインターフェイス

History History tab または Worksheets Worksheet tab をクリックします

これらのページには、各マルチクラスターウェアハウスに送信されたステートメントの実行に使用されるウェアハウスを指定する列 Cluster Number が含まれています。