Multi-Cluster-Warehouses

Mit Multi-Cluster-Warehouses können Sie die Computeressourcen skalieren, um die Parallelitätsanforderungen von Benutzern und Abfragen zu verwalten, wenn sich diese ändern, z. B. während der Haupt- und Nebenzeiten.

Unter diesem Thema:

Was ist ein Multi-Cluster-Warehouse?

Standardmäßig besteht ein virtuelles Warehouse aus einem einzigen Cluster von Computeressourcen, die dem Warehouse für die Ausführung von Abfragen zur Verfügung stehen. Wenn Abfragen an ein Warehouse übermittelt werden, weist das Warehouse jeder Abfrage Ressourcen zu und beginnt mit der Ausführung der Abfragen. Wenn nicht genügend Ressourcen vorhanden sind, um alle an das Warehouse übermittelten Abfragen auszuführen, stellt Snowflake die zusätzlichen Abfragen so lange in eine Warteschlange, bis die erforderlichen Ressourcen verfügbar sind.

Bei Multi-Cluster-Warehouses unterstützt Snowflake die statische oder dynamische Zuweisung zusätzlicher Cluster, um einen größeren Pool an Computeressourcen zur Verfügung zu stellen. Ein Multi-Cluster-Warehouse wird definiert, indem die folgenden Eigenschaften angegeben werden:

  • Maximale Anzahl von Clustern, größer als 1 (bis zu 10).

  • Minimale Anzahl von Clustern, gleich oder kleiner als das Maximum (bis zu 10).

Darüber hinaus unterstützen Multi-Cluster-Warehouses dieselben Eigenschaften und Aktionen wie Einzel-Cluster-Warehouses, einschließlich:

  • Angeben der Warehouse-Größe

  • Ändern der Größe eines Warehouses jederzeit

  • Automatisches Anhalten eines aktiven Warehouse aufgrund von Inaktivität. Beachten Sie, dass dies nicht für einzelne Cluster gilt, sondern für das gesamte Multi-Cluster-Warehouse.

  • Automatisches Fortsetzen eines angehaltenen Warehouses, wenn neue Abfragen übermittelt werden.

Maximiert vs. Auto-Skalierung

Sie können ein Multi-Cluster-Warehouse in einem der folgenden Modi ausführen:

Maximiert:

Dieser Modus wird aktiviert, indem derselbe Wert für die maximale und die minimale Anzahl von Clustern angegeben wird (beachten Sie, dass der angegebene Wert größer als 1 sein muss). In diesem Modus startet Snowflake beim Starten des Warehouse alle Cluster, sodass während der Ausführung des Warehouse die maximale Anzahl an Ressourcen zur Verfügung steht.

Dieser Modus eignet sich für die statische Steuerung der verfügbaren Computeressourcen, insbesondere wenn Sie eine große Anzahl gleichzeitiger Benutzersitzungen und/oder Abfragen haben und die Anzahl nicht erheblich schwankt.

Auto-Skalierung:

Dieser Modus wird aktiviert, wenn Sie unterschiedliche Werte für die maximale und minimale Anzahl von Clustern angeben. In diesem Modus startet und stoppt Snowflake Cluster nach Bedarf, um die Verarbeitungslast im Warehouse dynamisch zu verwalten:

  • Wenn die Anzahl der gleichzeitigen Benutzersitzungen und/oder Abfragen für das Warehouse zunimmt und Abfragen aufgrund unzureichender Ressourcen in die Warteschlange treten, startet Snowflake automatisch zusätzliche Cluster bis zu der für das Warehouse festgelegten maximalen Anzahl.

  • Wenn die Auslastung des Warehouses abnimmt, fährt Snowflake die Cluster automatisch herunter, um die Anzahl der aktiven Cluster und entsprechend die Anzahl der vom Warehouse verbrauchten Credits zu reduzieren.

Um die Credit-Nutzung im automatischen Skalierungsmodus zu steuern, bietet Snowflake die Eigenschaft SCALING_POLICY an. Diese bestimmt die Skalierungsrichtlinie, die beim automatischen Starten oder Herunterfahren zusätzlicher Cluster verwendet wird. Weitere Informationen dazu finden Sie unter Einstellen der Skalierungsrichtlinie für ein Multi-Cluster-Warehouse (unter diesem Thema).

Tipp

Weitere Informationen zum Erstellen eines Multi-Cluster-Warehouses finden Sie unter Erstellen eines Multi-Cluster-Warehouses (unter diesem Thema).

Beachten Sie Folgendes:

  • Bei Multi-Cluster-Warehouses muss die maximale Anzahl von Clustern im Feld Maximum Clusters (Weboberfläche) oder für die Eigenschaft MAX_CLUSTER_COUNT (SQL) größer sein als 1.

  • Bei Einzel-Cluster-Warehouses müssen die maximale und minimale Anzahl von Clustern beide gleich 1 sein.

  • Im Modus „Automatische Skalierung“ muss die maximale Anzahl von Clustern größer sein als die minimale Anzahl von Clustern.

  • Im Modus „Maximiert“ muss die maximale Anzahl von Clustern gleich der minimalen Anzahl von Clustern sein.

Wenn Sie die maximale und minimale Anzahl der Cluster festlegen, die im Multi-Cluster-Warehouse verwendet werden soll, beginnen Sie im Modus „Automatische Skalierung“ und kleinen Werten (z. B. Maximum = 2 oder 3, Minimum = 1). Verfolgen Sie die Schwankungen in der Verarbeitungslast Ihres Warehouses über die Zeit, und passen Sie die maximale und die minimale Anzahl Cluster so lange an, bis die Werte die oberen und unteren Grenzen Ihrer Benutzer/Abfrage-Parallelität am besten widerspiegeln.

Multi-Cluster-Größe und Credit-Nutzung

Die Anzahl der Computeressourcen in den einzelnen Clustern wird durch die Größe des Warehouses bestimmt:

  • Die Gesamtanzahl der Warehouses im Multi-Cluster-Warehouse wird durch Multiplizieren der Warehouse-Größe mit der maximalen Anzahl von Clustern errechnet. Damit wird auch die maximale Anzahl von Credits angegeben, die das Warehouse pro volle Nutzungsstunde verbraucht (d. h. wenn alle Cluster während der vollen Stunde ausgeführt werden).

    Die maximale Anzahl an pro Stunde verbrauchten Credits für ein Multi-Cluster-Warehouse der Größe Medium mit 3 Clustern beträgt beispielsweise 12 Credits.

  • Wenn die Größe eines Multi-Cluster-Warehouses geändert wird, gilt die neue Größe für alle Cluster des Warehouses, einschließlich der derzeit aktiven Cluster und aller Cluster, die nach der Größenänderung des Warehouses gestartet werden.

Die tatsächliche Anzahl der pro Stunde verbrauchten Credits hängt von der Anzahl der Cluster ab, die in jeder Stunde ausgeführt werden, in der das Warehouse aktiv ist. Weitere Details dazu finden Sie unter Beispiele für Credit-Nutzung bei Multi-Cluster-Warehouses (unter diesem Thema).

Vorteile von Multi-Cluster-Warehouses

Wenn sich in einem Standard-Warehouse mit einem Cluster die Benutzer/Abfrage-Verarbeitungslast so erhöht, dass Sie mehr Computeressourcen benötigen, gilt Folgendes:

  1. Sie müssen entweder das Warehouse vergrößern, oder Sie starten zusätzliche Warehouses und leiten die zusätzlichen Benutzer/Abfragen explizit an diese Warehouses um.

  2. Wenn die Ressourcen nicht mehr benötigt werden, müssen Sie zum Einsparen von Credits entweder das vergrößerte Warehouse manuell wieder verkleinern, oder Sie müssen die zusätzlich gestarteten Warehouses anhalten.

Im Gegensatz dazu ermöglicht ein Multi-Cluster-Warehouse, dass eine größere Anzahl von Benutzern eine Verbindung mit demselben Warehouse herstellen kann. Darüber hinaus gilt:

  • Bei einem Multi-Cluster-Warehouse ist es im Modus „Automatische Skalierung“ nicht notwendig, dass bei schwankender Verarbeitungslast die Größe des Warehouse angepasst oder zusätzliche Warehouses gestartet/angehalten werden müssen. Snowflake startet und stoppt bei Bedarf automatisch die zusätzlichen Cluster.

  • Im Modus „Maximiert“ können Sie die Kapazität des Multi-Cluster-Warehouses steuern, indem Sie die Anzahl der Cluster nach Bedarf erhöhen oder verringern.

Tipp

Multi-Cluster-Warehouses eignen sich am besten zum Skalieren von Ressourcen, um die Parallelität von Benutzern/Abfragen zu verbessern. Sie sind allerdings so vorteilhaft, wenn die Leistung von langsam laufenden Abfragen oder das Laden von Daten verbessert werden soll. Für diese Art von Operationen bietet eine Größenänderung des Warehouse mehr Vorteile.

Beispiele für Credit-Nutzung bei Multi-Cluster-Warehouses

Die folgenden vier Beispiele veranschaulichen die Credit-Nutzung bei einem Multi-Cluster-Warehouse. Weiter Informationen zur Anzahl der Credits, die je nach Warehouse-Größe pro voller Stunde berechnet werden, finden Sie unter Credit-Nutzung für virtuelle Warehouses.

Bemerkung

Der Einfachheit halber zeigen alle diese Beispiele die Credit-Nutzung in Schritten von 1 Stunde, 30 Minuten und 15 Minuten an. In einem realen Szenario mit Abrechnung pro Sekunde würde die tatsächliche Credit-Nutzung Bruchbeträge enthalten, basierend auf der Anzahl der Sekunden, die jeder Cluster aktiv ist.

Beispiel 1: Maximiert (2 Stunden)

In diesem Beispiel wird ein Medium-Warehouse mit 3 Clustern 2 Stunden lang im Modus „Maximiert“ ausgeführt:

Cluster 1

Cluster 2

Cluster 3

Credits gesamt

1. Stunde

4

4

4

12

2. Stunde

4

4

4

12

Credits gesamt

8

8

8

24

Beispiel 2: Auto-Skalierung (2 Stunden)

In diesem Beispiel wird ein Medium-Warehouse mit 3 Clustern 2 Stunden lang im Modus „Automatische Skalierung“ ausgeführt:

  • Cluster 1 wird ununterbrochen ausgeführt.

  • Cluster 2 wird in der 2. Stunde ununterbrochen ausgeführt.

  • Cluster 3 wird in der 2. Stunde 30 Minuten ausgeführt.

Cluster 1

Cluster 2

Cluster 3

Credits gesamt

1. Stunde

4

0

0

4

2. Stunde

4

4

2

10

Credits gesamt

8

4

2

14

Beispiel 3: Automatische Skalierung (3 Stunden)

In diesem Beispiel wird ein Medium-Warehouse mit 3 Clustern 3 Stunden im Modus „Automatische Skalierung“ ausgeführt:

  • Cluster 1 wird ununterbrochen ausgeführt.

  • Cluster 2 wird in der gesamten 2. Stunde ununterbrochen ausgeführt und 30 Minuten in der 3. Stunde.

  • Cluster 3 wird in der 3. Stunde 30 Minuten ausgeführt.

Cluster 1

Cluster 2

Cluster 3

Credits gesamt

1. Stunde

4

0

0

4

2. Stunde

4

4

0

8

3. Stunde

4

2

2

8

Credits gesamt

12

6

2

20

Beispiel 4: Auto-Skalierung (3 Stunden) mit Größenänderung

In diesem Beispiel ist dasselbe Warehouse aus Beispiel 3 für 3 Stunden im Modus „Auto-Skalierung“ mit einer Größenänderung von Medium auf Large aktiv:

  • Cluster 1 wird ununterbrochen ausgeführt.

  • Cluster 2 wird in der 2. und 3. Stunde ununterbrochen ausgeführt.

  • Das Warehouse wird nach 1:30 Stunden von Medium auf Large vergrößert.

  • Cluster 3 wird in der 3. Stunde 15 Minuten ausgeführt.

Cluster 1

Cluster 2

Cluster 3

Credits gesamt

1. Stunde

4

0

0

4

2. Stunde

4+2

4+2

0

12

3. Stunde

8

8

2

18

Credits gesamt

18

14

2

34

Erstellen eines Multi-Cluster-Warehouses

Sie können ein Multi-Cluster-Warehouse über die Weboberfläche oder mit SQLerstellen:

Weboberfläche:

Klicken Sie auf Warehouses Registerkarte „Warehouses“ » Create:

  1. Wählen Sie im Feld Maximum Clusters einen Wert größer als 1 aus.

  2. Wählen Sie im Feld Minimum Clusters optional einen Wert größer als 1 aus.

  3. Geben Sie nach Bedarf weitere Informationen für das Warehouse ein, und klicken Sie auf Finish.

SQL:

Führen Sie einen CREATE WAREHOUSE-Befehl wie folgt aus:

  • MAX_CLUSTER_COUNT auf einen Wert größer als 1 gesetzt.

  • MIN_CLUSTER_COUNT (optional) auf einen Wert größer als 1 gesetzt.

So zeigen Sie Informationen zu den von Ihnen erstellten Multi-Cluster-Warehouses an:

Classic Console:

Klicken Sie auf Warehouses Registerkarte „Warehouses“.

In der Spalte Clusters werden die minimalen und maximalen Cluster für jedes Warehouse sowie die Anzahl der Cluster angezeigt, die derzeit ausgeführt werden, wenn das Warehouse gestartet wird.

SQL:

Führen Sie einen SHOW WAREHOUSES-Befehl aus.

Die Ausgabe enthält drei Spalten (min_cluster_count, max_cluster_count, started_clusters_column), in denen dieselben Informationen wie in der Spalte Clusters der Weboberfläche angezeigt werden.

Alle anderen Aufgaben für Multi-Cluster-Warehouses (mit Ausnahme der verbleibenden Aufgaben, die unter diesem Thema beschrieben werden) sind mit den Warehouse-Aufgaben für Einzelcluster identisch.

Einstellen der Skalierungsrichtlinie für ein Multi-Cluster-Warehouse

Um den Credit-Verbrauch eines Multi-Cluster-Warehouse zu kontrollieren, das mit automatischer Skalierung ausgeführt wird, stellt Snowflake Skalierungsrichtlinien bereit, mit denen Sie feststellen können, wann ein Cluster gestartet bzw. heruntergefahren werden sollte.

Die Skalierungsrichtlinie für ein Multi-Cluster-Warehouse gilt nur, wenn das Warehouse im Modus „Automatische Skalierung“ ausgeführt wird. Im Modus „Maximiert“ werden alle Cluster gleichzeitig ausgeführt, sodass keine einzelnen Cluster gestartet oder heruntergefahren werden müssen.

Snowflake unterstützt die folgenden Skalierungsrichtlinien:

Richtlinie

Beschreibung

Warehouse startet…

Warehouse fährt herunter…

Standard (Standardeinstellung)

Verhindert bzw. minimiert Warteschlangen, indem eher zusätzliche Cluster gestartet als dass Credits gespart werden.

Das erste Cluster startet sofort, wenn entweder eine Abfrage in die Warteschlange gestellt wird oder das System feststellt, dass eine Abfrage mehr vorliegt, als die derzeit ausgeführten Cluster ausführen können.

Jedes nachfolgende Cluster startet 20 Sekunden, nachdem das vorherige gestartet wurde. Wenn Ihr Warehouse beispielsweise mit maximal 10 Clustern konfiguriert ist, kann es ganze 200 Sekunden dauern, bis alle 10 Cluster gestartet sind.

Nach 2 bis 3 aufeinanderfolgenden erfolgreichen Überprüfungen (im Abstand von 1 Minute durchgeführt), die feststellen, dass die Verarbeitungslast des am wenigsten ausgelasteten Clusters auf die anderen Cluster umverteilt werden kann, ohne dass das Cluster erneut aktiviert werden muss.

Economy

Spart Credits, indem die Ausführung von Clustern bevorzugt wird gegenüber dem Start zusätzlicher Cluster, was dazu führen kann, dass Abfragen in die Warteschlange gestellt werden und dann länger dauern.

Nur dann, wenn das System einschätzt, dass die Abfrage ausreichend Verarbeitungslast erfordern, um den Cluster für mindestens 6 Minuten in Betrieb zu halten.

Nach 5 bis 6 aufeinanderfolgenden erfolgreichen Überprüfungen (im Abstand von 1 Minute durchgeführt), die feststellen, dass die Verarbeitungslast des am wenigsten ausgelasteten Clusters auf die anderen Cluster umverteilt werden kann, ohne dass das Cluster erneut aktiviert werden muss.

Bemerkung

Eine dritte Skalierungsrichtlinie, „Legacy“, wurde aus Gründen der Abwärtskompatibilität bereitgestellt. Im Gegensatz zu den anderen Richtlinien verwendete diese Richtlinie einen statischen Ansatz, der darauf basiert, wie lange ein Warehouse aktiv/inaktiv ist.

„Legacy“ ist veraltet und wurde entfernt. Alle Warehouses, die die „Legacy“-Richtlinie verwendet haben, verwenden jetzt die Standard-Richtlinie.

Die Skalierungsrichtlinie für ein Multi-Cluster-Warehouse kann festgelegt werden, wenn das Warehouse erstellt wird oder zu einem beliebigen Zeitpunkt, entweder über die Weboberfläche oder mit SQL:

Classic Console:

Klicken Sie auf:

  • Warehouses Registerkarte „Warehouses“ » Create oder

  • Warehouses Registerkarte „Warehouses“ » <Warehouse-Name> » Configure

Wählen Sie in der Dropdown-Liste des Feldes Scaling Policy den gewünschten Wert aus.

SQL:

Führen Sie einen Befehl CREATE WAREHOUSE oder ALTER WAREHOUSE aus, wobei SCALING_POLICY auf den gewünschten Wert eingestellt ist.

Beispiel in SQL:

ALTER WAREHOUSE mywh SET SCALING_POLICY = 'ECONOMY';
Copy

Erhöhen oder Verringern der Clusteranzahl eines Multi-Cluster-Warehouses

Sie können die Anzahl der Cluster eines Warehouses jederzeit erhöhen oder verringern, selbst wenn das Warehouse aktiv ist und Anweisungen ausführt. Cluster können für ein Warehouse über die Weboberfläche oder mit SQL erhöht oder verringert werden:

Classic Console:

Klicken Sie auf Warehouses Registerkarte „Warehouses“ » <Warehouse-Name> » Configure

SQL:

Führen Sie einen ALTER WAREHOUSE-Befehl aus.

Das Ändern der maximalen und minimalen Cluster für ein ausgeführtes Warehouse hängt davon ab, ob es im Modus „Maximiert“ oder „Automatische Skalierung“ ausgeführt wird:

  • Maximiert:

    ↑ max & min:

    Die angegebene Anzahl von Clustern wird sofort gestartet.

    ↓ max & min:

    Die angegebene Anzahl von Clustern wird heruntergefahren, wenn diese die Ausführung von Anweisungen abgeschlossen haben und die Zeitdauer für das automatische Anhalten abgelaufen ist.

  • Auto-Skalierung:

    ↑ max:

    Bei new_max_clusters > running_clusters werden keine Änderungen vorgenommen, bis zusätzliche Cluster erforderlich sind.

    ↓ max:

    Bei new_max_clusters < running_clusters werden überschüssige Cluster heruntergefahren, sobald diese die Ausführung von Anweisungen abgeschlossen haben und die Bedingungen aus den Skalierungsrichtlinien erfüllt sind.

    ↑ min:

    Bei new_min_clusters > running_clusters werden sofort zusätzliche Cluster gestartet, um das Minimum zu erreichen.

    ↓ min:

    Bei new_min_clusters < running_clusters werden überschüssige Cluster heruntergefahren, sobald diese die Ausführung von Anweisungen abgeschlossen haben und die Bedingungen aus den Skalierungsrichtlinien erfüllt sind.

Überwachen von Multi-Cluster-Warehouses

Sie können die Verwendung von Multi-Cluster-Warehouses über die Weboberfläche überwachen:

Classic Console:

Klicken Sie auf History Registerkarte „Verlauf“ oder Worksheets Registerkarte „Arbeitsblatt“.

Diese Seiten enthalten eine Spalte Cluster Number, die den Cluster angibt, der zur Ausführung der an jedes Warehouse übermittelten Anweisungen verwendet wird.