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 einzelnen Cluster von Servern, das die für das Warehouse insgesamt zur Verfügung stehenden Ressourcen zum Ausführen von Abfragen bestimmt. 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.

Durch Multi-Cluster-Warehouses unterstützt Snowflake die statische oder dynamische Zuweisung eines größeren Ressourcenpools für jedes Warehouse. Ein Warehouse mit mehreren Clustern wird definiert, indem die folgenden Eigenschaften angegeben werden:

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

  • Minimale Anzahl von Server-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 Warehouse 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 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 maximale und für minimale Cluster 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 Ressourcen (d. h. Server), 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 maximale und minimale Cluster 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 Warehouse abnimmt, werden die Cluster automatisch heruntergefahren, um die Anzahl der aktiven Server 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 Festlegen der Skalierungsrichtlinie für ein Multi-Cluster-Warehouse (unter diesem Thema).

Tipp

Wenn Sie die maximale und minimale Anzahl Cluster festlegen, die für ein Warehouse verwendet werden soll, beginnen Sie mit dem automatischen Skalierungsmodus und beginnen Sie mit kleinen Werten (z. B. Maximum = 2 oder 3, Minimum = 1). Verfolgen Sie, wie die Verarbeitungslast Ihres Warehouse im Zeitverlauf schwankt. Erhöhen Sie dann die maximalen und minimalen Cluster so lange, bis Sie die Anzahl ermittelt haben, die die oberen und unteren Grenzen Ihrer Benutzer/Abfrage-Parallelität am besten unterstützt.

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

Die Anzahl der Server in jedem Cluster wird von der Warehouse-Größe bestimmt:

  • Die Gesamtanzahl der Server für das 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 Credits pro Stunde für ein mittelgroßes Warehouse (4 Server pro Cluster) mit 3 Clustern beträgt beispielsweise 12 Credits.

  • Wenn die Größe eines Multi-Cluster-Warehouse geändert wird, gilt die neue Größe für alle Cluster des Warehouse, einschließlich der derzeit aktiven Cluster und aller Cluster, die nach der Größenänderung des Warehouse 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 Warehouse 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 für Benutzer/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.

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 Servercluster ausführt.

Beispiel 1: Maximiert (2 Stunden)

In diesem Beispiel wird ein mittelgroßes Warehouse (4 Server pro Cluster) 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 mittelgroßes Warehouse (4 Server pro Cluster) mit 3 Clustern 2 Stunden 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: Auto-Skalierung (3 Stunden)

In diesem Beispiel wird ein mittelgroßes Warehouse (4 Server pro Cluster) 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 wird dasselbe Warehouse aus Beispiel 3 für 3 Stunden im Modus „Automatische Skalierung“ mit einer Größenänderung von Medium (4 Server pro Cluster) auf Large (8 Server pro Cluster) ausgeführt:

  • 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-Warehouse

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

Weboberfläche

Klicken Sie auf Warehouses Warehouses tab » 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:

Weboberfläche

Klicken Sie auf Warehouses Warehouses tab.

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

Cluster startet …

Cluster wird heruntergefahren …

Standard (Standardeinstellung)

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

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.

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 Cluster 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:

Weboberfläche

Klicken Sie auf:

  • Warehouses Warehouses tab » Create oder

  • Warehouses Warehouses tab » <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';

Erhöhen oder Verringern der Cluster eines Multi-Cluster-Warehouse

Sie können die Anzahl der Cluster für ein Warehouse 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:

Weboberfläche

Klicken Sie auf Warehouses Warehouses tab » <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.

Überwachung von Multi-Cluster-Warehouses

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

Weboberfläche

Klicken Sie auf History History tab oder Worksheets Worksheet tab.

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