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

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

このトピックの内容:

マルチクラスターウェアハウスとは何ですか?

デフォルトでは、仮想ウェアハウスは、クエリを実行するためにウェアハウスで使用可能な合計リソースを決定するサーバーの単一クラスターで構成されます。クエリがウェアハウスに送信されると、ウェアハウスは各クエリにリソースを割り当て、クエリの実行を開始します。ウェアハウスに送信されたすべてのクエリを実行するのに十分なリソースが利用できない場合、Snowflakeは必要なリソースが利用可能になるまで追加のクエリをキューに入れます。

マルチクラスターウェアハウスでは、Snowflakeは、静的または動的に、より大きなリソースプールを各ウェアハウスに割り当てることをサポートしています。マルチクラスターウェアハウスは、次のプロパティを指定することで定義されます:

  • サーバークラスターの最大数、1より大きい(最大10)。

  • サーバークラスターの最小数。最大値以下(最大10)。

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

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

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

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

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

最大化と自動スケール

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

最大化

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

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

自動スケール

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

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

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

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

ちなみに

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

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

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

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

    例えば、3クラスターのある中規模ウェアハウス(クラスターあたり4サーバー)で1時間あたりに消費されるクレジットの最大数は12クレジットです。

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

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

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

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

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

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

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

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

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

ちなみに

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

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

次の4つの例は、マルチクラスターウェアハウスのクレジット使用状況を示しています。

注釈

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

例1:最大化(2時間)

この例では、3クラスターを備えた中規模ウェアハウス(クラスターあたり4サーバー)が2時間最大化モードで実行されます:

クラスター1

クラスター2

クラスター3

クレジット合計

1時間目

4

4

4

12

2時間目

4

4

4

12

クレジット合計

8

8

8

24

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

この例では、3クラスターを備えた中規模ウェアハウス(クラスターあたり4サーバー)が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クラスターを備えた中規模ウェアハウス(クラスターあたり4サーバー)が3時間自動スケールモードで実行されます:

  • クラスター1は継続的に実行されます。

  • クラスター2は、3時間目の2時間全体と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時間実行され、中規模(クラスターあたり4サーバー)から大規模(クラスターあたり8サーバー)にサイズ変更されます。

  • クラスター1は継続的に実行されます。

  • クラスター2は、2時間目と3時間目まで連続して実行されます。

  • Warehouse is resized from Medium to Large at 1:30 hours.

  • クラスター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 » Create をクリックします:

  1. Maximum Clusters フィールドで、1より大きい値を選択します。

  2. Minimum Clusters フィールドで、オプションで1より大きい値を選択します。

  3. 必要に応じてウェアハウスのその他の情報を入力し、 Finish をクリックします。

SQL

次を使用して CREATE WAREHOUSE コマンドを実行します:

  • MAX_CLUSTER_COUNT 1 より大きい値に設定します。

  • MIN_CLUSTER_COUNT (オプション) 1 より大きい値に設定します。

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

ウェブインターフェイス

Warehouses Warehouses tab をクリックします

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

SQL

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

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

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

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

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

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

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

ポリシー

説明

クラスターの開始...

クラスターのシャットダウン...

標準(デフォルト)

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

クエリがのキューに入れられる、 または システムが現在実行中のクラスターが実行できるクエリよりも1つ多いクエリがあることを検出するとすぐに。

2から3の連続した成功したチェック(1分間隔で実行)の後。これにより、クラスターを再起動せずに、最小負荷クラスターの負荷を他のクラスターに再分散できるかどうかが決定されます。

エコノミー

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

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

5から6の連続した成功したチェック(1分間隔で実行)の後。これにより、クラスターを再起動せずに、最小負荷クラスターの負荷を他のクラスターに再分散できるかどうかが決定されます。

注釈

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

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

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

ウェブインターフェイス

クリック:

  • Warehouses Warehouses tab » Create または

  • Warehouses Warehouses tab » <warehouse_name> » Configure

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

SQL

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

例えば、 SQLでは次のようになります:

ALTER WAREHOUSE mywh SET SCALING_POLICY = 'ECONOMY';

マルチクラスターウェアハウスのクラスターの増加または減少

ウェアハウスを実行されていて、ステートメントを実行しているときでも、ウェアハウスのクラスターの数はいつでも増減できます。ウェブインターフェイスまたは SQL を使用して、ウェアハウスのクラスターを増減できます:

ウェブインターフェイス

Warehouses Warehouses tab » <warehouse_name> » 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 が含まれています。