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

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

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

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

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

  • 1より大きいクラスター数の最大値。指定できる最高値はウェアハウスのサイズに依存します。各ウェアハウスのサイズに対するクラスター数の上限については、 マルチクラスターーウェアハウスのクラスター数の上限 (このトピック内)を参照してください。

  • 最大クラスター数以下の最小クラスター数。

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

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

  • ウェアハウスのサイズの随時変更。

  • 非アクティブ時における稼働中のウェアハウスの自動中断。これは個別のクラスターではなく、マルチクラスターウェアハウス全体に適用されることに注意してください。

  • 新しいクエリの送信時における一時停止中のウェアハウスの自動再開。

マルチクラスターーウェアハウスのクラスター数の上限

マルチクラスターウェアハウスのクラスターの最大数は、ウェアハウスのサイズによって異なります。ウェアハウスサイズが大きくなると、クラスター数の制限が低くなります。デフォルトでは、すべてのウェアハウスは最大10個のクラスターに制限されます。ウェアハウスのサイズに応じて、その設定を上書きして、より多くのクラスターを許可できます。次の表は、各ウェアハウスサイズの最大クラスター数を示しています。

ウェアハウスサイズ

最大クラスタリング数

XSMALL

300

SMALL

300

MEDIUM

300

LARGE

160

XLARGE

80

2XLARGE

40

3XLARGE

20

4XLARGE

10

5XLARGE

10

6XLARGE

10

最大化と自動スケール

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

最大化:

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

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

自動スケール:

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

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

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

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

マルチクラスターウェアハウスを作成するには、 マルチクラスターウェアハウスの作成 をご参照ください(このトピック内)。

  • オートスケールモードでは、最大クラスター数は最小クラスター数より 大きくする 必要があります。

  • 最大化モードでは、最大クラスター数は最小クラスター数と 等しくなる 必要があります。

Tip

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

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

各クラスターのコンピューティングリソースの量は、ウェアハウスのサイズによって決まります。

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

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

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

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

Tip

Query Acceleration Service (QAS) をマルチクラスターーウェアハウスに使用する場合は、 QAS のスケールファクターをシングルクラスターーウェアハウスよりも高く調整することを検討してください。これは、ウェアハウスのすべてのクラスターに QAS 最適化を適用するのに役立ちます。詳細については、 スケールファクターの調整 をご参照ください。

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

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

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

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

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

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

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

Tip

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

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

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

注釈

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

例1: 最大化(2時間)

この例では、3クラスターを持つ中規模の標準ウェアハウスが最大化モードで2時間実行されます。

クラスター1

クラスター2

クラスター3

クレジット合計

1時間目

4

4

4

12

2時間目

4

4

4

12

クレジット合計

8

8

8

24

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

この例では、3クラスターを持つ中規模の標準ウェアハウスがオートスケールモードで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クラスターを持つ中規模の標準ウェアハウスがオートスケールモードで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時間実行され、サイズがMからLに変更されます。

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

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

  • ウェアハウスのサイズは、1時間半で中から大に変更されます。

  • クラスター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

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

マルチクラスターウェアハウスは、 Snowsight または SQL で作成できます。

Snowsight:

ナビゲーションメニューで、 Compute » Warehouses » + Warehouse を選択します。

  1. Advanced Options を展開します。

  2. Multi-cluster Warehouse チェックボックスを選択します。

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

    注釈

    現在、 Snowsight で選択できる最高値は10です。マルチクラスターーウェアハウスのクラスター数の上限 に示されている最大サイズは、 SQL の CREATE WAREHOUSE と ALTER WAREHOUSE コマンドにのみ適用されます。

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

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

SQL:

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

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

Snowsight:

ナビゲーションメニューで Compute » Warehouses を選択します。

Clusters 列には、各ウェアハウスの最小クラスターと最大クラスター、およびウェアハウスが開始された場合に現在実行されているクラスターの数が表示されます。Clusters 列の降順で並べ替えると、マルチクラスターウェアハウスを一番上にリストアップできます。

SQL:

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

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

Tip

SHOW WAREHOUSES の出力に含まれる列が多すぎて読みにくい場合は、パイプ演算子->>)を使用すると、フィルターとソートのための他の句とともに、必要な列のみを表示できます。次の例のようなクエリを使用し、ニーズに合わせて調整します。列名は引用符で囲まれます。これは、SHOWWAREHOUSES 出力で大文字と小文字が区別されるためです。

SHOW WAREHOUSES
  ->> SELECT "name", "state", "size", "max_cluster_count", "started_clusters", "type"
        FROM $1
        WHERE "state" IN ('STARTED','SUSPENDED')
        ORDER BY "type" DESC, "name";

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

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

オートスケールモードで稼働するマルチクラスターウェアハウスで消費されるクレジットを制御するために、Snowflakeはスケーリングポリシーを提供します。Snowflakeはスケーリングポリシーを使用して、ウェアハウスの稼働中に個々のクラスターを起動またはシャットダウンすることによって、マルチクラスターウェアハウスの容量を調整する方法を決定します。スケーリングポリシーを指定して、Snowflakeにそのウェアハウスのクエリの応答性とスループットを優先させたり、そのウェアハウスのコストを最小化させたりすることができます。

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

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

ポリシー

説明

新しいクラスタリングがスタートします...

アイドリングストップや軽負荷のクラスタリングはシャットダウンします...

標準(デフォルト)

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

クエリがキューに入ったとき、または現在実行中のクラスターが追加のクエリを処理するのに十分なリソースを持っていないとSnowflakeが推定した場合、Snowflakeはウェアハウスのクラスター数を増やします。

MAX_CLUSTER_COUNT が 10 以下のウェアハウスでは、Snowflake はさらに 1 つのクラスターを開始します。

MAX_CLUSTER_COUNT が 10 を超えるウェアハウスでは、Snowflake が一度に複数のクラスターを起動し、ワークロードの急激な増加に対応します。

低負荷の期間が続くと、Snowflakeは最も負荷の低いクラスター上で実行されているクエリが終了したとき、1つまたは複数のクラスターをシャットダウンします。クラスター数が10を超えると、Snowflakeは一度に複数のクラスターをシャットダウンすることがあります。クラスター数が10以下になると、Snowflakeはアイドル状態のクラスターを1つずつシャットダウンします。

エコノミー

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

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

Snowflakeは、クラスターの残り作業時間が6分未満であると推定した場合、最も負荷の低いクラスターをシャットダウンのためにマークします。Snowflakeは、そのクラスター上で実行されているすべてのクエリを終了した後、クラスターをシャットダウンします。クラスター数が10を超える場合、Snowflakeは一度に複数のクラスターをシャットダウンすることがあります。クラスター数が10以下の場合、Snowflakeはアイドル状態のクラスターを1つずつシャットダウンします。

注釈

インタラクティブウェアハウスは、標準スケーリングポリシーのみをサポートします。インタラクティブウェアハウスで自動スケールモードを使用する場合、標準ウェアハウスよりもプロアクティブにスケーリングされます。これは、インタラクティブウェアハウスがユーザークエリへの応答性を高めるように設計されており、予測されるキューイングの前にスケールアウトすることがパフォーマンスを維持するために重要であるためです。

注釈

第3のスケーリングポリシーであるレガシーは、以前は後方互換性のためにプロバイダーとして提供されていました。レガシーは削除されました。Legacyポリシーを使用していたすべてのウェアハウスは、デフォルトの標準ポリシーを使用するようになりました。

マルチクラスター ウェアハウスのスケーリング ポリシーは、作成時または作成後いつでも、 Snowsight または SQL でセットできます。

Snowsight:

New Warehouse ダイアログで Advanced Options の下にある Multi-cluster Warehouse を選択すると、 Scaling Policy ドロップダウンリストからスケーリングポリシーを選択できます。

既存のマルチクラスターウェアハウスの場合は、ナビゲーションメニューで、Compute » Warehouses`を選択します。次に :ui:`More`メニューの下で(:ui:...`):ui:`Edit`を選択します。

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

Tip

Scaling Policy ドロップダウンリストが表示されるのは、選択したウェアハウスがマルチクラスターウェアハウスで、最大クラスター値が最小クラスター値より大きい場合のみです。

SQL:

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

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

CREATE WAREHOUSE mywh WITH MAX_CLUSTER_COUNT = 2, SCALING_POLICY = 'STANDARD';
ALTER WAREHOUSE mywh SET SCALING_POLICY = 'ECONOMY';

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

ウェアハウスの最大および最小クラスター数は、実行中やステートメント実行中であっても、いつでも増減できます。Snowsight または SQL を使って、ウェアハウスの最大クラスターと最小クラスターを調整することができます。

Snowsight:

ナビゲーションメニューで Compute » Warehouses を選択します。

ウェアハウス名をクリックすると、プロパティと過去のアクティビティが表示されます。More メニュー (...) から Edit を選択します。また、 Multi-cluster Warehouse のチェックボックスの選択を解除すると、クラスターの最大値と最小値が1にリセットされ、ウェアハウスが単一クラスターに変更されます。

SQL:

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

注釈

現在、 Snowsight は MAX_CLUSTER_COUNT を最大10クラスターまで更新することができます。MAX_CLUSTER_COUNT を 10 以上にするには、 SQL の ALTER WAREHOUSE コマンドを使用します。

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

  • 最大化:

    ↑ 最大および最小:

    指定された数のクラスターがすぐに開始されます。

    ↓ 最大および最小:

    ステートメントの実行が終了し、自動中断期間が経過すると、指定された数のクラスターがシャットダウンします。

  • 自動スケール:

    ↑ 最大:

    new_max_clusters > running_clusters の場合、追加のクラスターが必要になるまで変更はありません。

    ↓ 最大:

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

    ↑ 最小:

    new_min_clusters > running_clusters の場合、追加クラスターはすぐに最小値を満たし始めました。

    ↓ 最小:

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

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

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

  1. ナビゲーションメニューで Compute » Warehouses を選択します。

  2. ウェアハウス名を選択します。

    これにより、現在実行中またはキューに入っているクエリの表示など、1つのウェアハウスを詳細に監視することができます。

    または、ナビゲーションメニューで、Monitoring`|raa|:ui:`Query History`を選択します。このページでは、アカウントの複数のウェアハウスのアクティビティを表示できます。1つのウェアハウスのアクティビティのみを表示するには、 :ui:`Filters ドロップダウンメニューから:ui:`Warehouse`を選択します。次に、リストからウェアハウス名を選択します。

マルチクラスターーウェアハウスを監視すると、ウェアハウスが処理したすべてのクエリを確認できます。それぞれのクエリについて、かかった時間、スキャンしたバイト数、返した行数などの詳細を見ることができます。ウェアハウスが処理した各ステートメントの実行に使用されたクラスタリングも確認できます。表示する詳細を選択するには、 Columns のドロップダウンメニューから、 Cluster NumberDurationRows などの項目を選択します。