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 bestimmt die Größe eines virtuellen Warehouses die Computeressourcen, die dem Warehouse für die Ausführung von Abfragen zur Verfügung stehen. Jedes Warehouse ist eine Menge von Computeressourcen. 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 Warehouses, 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 Warehouses, größer als 1 (bis zu 10).

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

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

  • Angeben der Warehouse-Größe

  • Ändern der Größe eines Warehouses jederzeit

  • Automatisches Anhalten eines aktiven Warehouses aufgrund von Inaktivität. Beachten Sie, dass dies nicht für einzelne Warehouses 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 Warehouses angegeben wird (beachten Sie, dass der angegebene Wert größer als 1 sein muss). In diesem Modus startet Snowflake beim Starten des Multi-Cluster-Warehouses alle Warehouses, sodass während der Ausführung des Multi-Cluster-Warehouses 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 Warehouses angeben. In diesem Modus startet und stoppt Snowflake Warehouses nach Bedarf, um die Verarbeitungslast im Multi-Cluster-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 gesetzt werden, startet Snowflake automatisch zusätzliche Warehouses bis zu der für das Multi-Cluster-Warehouse festgelegten maximalen Anzahl.

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

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

Tipp

Wenn Sie die maximale und minimale Anzahl von Warehouses festlegen, die im Multi-Cluster-Warehouse verwendet werden soll, beginnen Sie im Modus „Auto-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 Warehouses 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 Warehouses in jedem Cluster wird durch die Größe des Multi-Cluster-Warehouses bestimmt:

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

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

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

Die tatsächliche Anzahl der pro Stunde verbrauchten Credits hängt von der Anzahl der Warehouse ab, die in jeder Stunde ausgeführt werden, in der das Multi-Cluster-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 „Auto-Skalierung“ nicht notwendig, dass bei schwankender Workloads die Größe des Warehouses angepasst oder zusätzliche Warehouses gestartet/angehalten werden müssen. Snowflake startet und stoppt bei Bedarf automatisch die zusätzlichen Warehouses.

  • Im Modus „Maximiert“ können Sie die Kapazität des Multi-Cluster-Warehouse steuern, indem Sie die Anzahl der Warehouses 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 jedes Warehouse aktiv ist.

Beispiel 1: Maximiert (2 Stunden)

In diesem Beispiel ist ein Multi-Cluster-Warehouse der Größe Medium mit 3 Warehouses 2 Stunden lang im Modus „Maximiert“ aktiv:

Warehouse 1

Warehouse 2

Warehouse 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 ist ein Multi-Cluster-Warehouse der Größe Medium mit 3 Warehouses 2 Stunden lang im Modus „Auto-Skalierung“ aktiv:

  • Warehouse 1 ist ununterbrochen aktiv.

  • Warehouse 2 ist nur in der 2. Stunde ununterbrochen aktiv.

  • Warehouse 3 ist in der 2. Stunde 30 Minuten lang aktiv.

Warehouse 1

Warehouse 2

Warehouse 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 ist ein Multi-Cluster-Warehouse der Größe Medium mit 3 Warehouses 3 Stunden lang im Modus „Auto-Skalierung“ aktiv:

  • Warehouse 1 ist ununterbrochen aktiv.

  • Warehouse 2 ist in der gesamten 2. Stunde ununterbrochen und 30 Minuten in der 3. Stunde aktiv.

  • Warehouse 3 ist in der 3. Stunde 30 Minuten aktiv.

Warehouse 1

Warehouse 2

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

  • Warehouse 1 ist ununterbrochen aktiv.

  • Warehouse 2 ist in der 2. und 3. Stunde ununterbrochen aktiv.

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

  • Warehouse 3 ist in der 3. Stunde 15 Minuten aktiv.

Warehouse 1

Warehouse 2

Warehouse 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 SQL erstellen:

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 wird die minimale und die maximale Anzahl von Warehouses im Multi-Cluster-Warehouse sowie die Anzahl der Warehouses angezeigt, die derzeit aktiv sind, 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-Warehouses zu steuern, das mit automatischer Skalierung ausgeführt wird, stellt Snowflake Skalierungsrichtlinien bereit, mit denen Sie feststellen können, wann ein Warehouse gestartet bzw. heruntergefahren werden sollte.

Die Skalierungsrichtlinie für ein Multi-Cluster-Warehouse gilt nur, wenn das Warehouse im Modus „Auto-Skalierung“ ausgeführt wird. Im Modus „Maximiert“ sind alle Warehouse gleichzeitig aktiv, sodass keine einzelnen Warehouses 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 Warehouses gestartet als dass Credits gespart werden.

Das erste Warehouse 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 Warehouses ausführen können.

Jedes nachfolgende Warehouse startet 20 Sekunden, nachdem das vorherige gestartet wurde. Wenn Ihr Multi-Cluster-Warehouse beispielsweise mit maximal 10 Warehouses konfiguriert ist, kann es ganze 200 Sekunden dauern, bis alle 10 Warehouses 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 Warehouses auf die anderen Warehouses umverteilt werden kann, ohne dass das Warehouse erneut aktiviert werden muss.

Economy

Spart Credits, indem die Ausführung von Warehouses bevorzugt wird gegenüber dem Start zusätzlicher Warehouses, 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 das Warehouse 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 Warehouses auf die anderen Warehouses umverteilt werden kann, ohne dass das Warehouse 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 Multi-Cluster-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 Warehouses im Multi-Cluster-Warehouse

Sie können die Anzahl der Warehouses im Multi-Cluster-Warehouse jederzeit erhöhen oder verringern, selbst wenn es aktiv ist und Anweisungen ausführt. Die Anzahl der Warehouses im Multi-Cluster-Warehouse kann ü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 Warehouses im aktiven Multi-Cluster-Warehouse hängt davon ab, ob es im Modus „Maximiert“ oder „Auto-Skalierung“ ausgeführt wird:

  • Maximiert:

    ↑ max & min

    Die angegebene Anzahl von Warehouses wird sofort gestartet.

    ↓ max & min

    Die angegebene Anzahl von Warehouses 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 erst Änderungen vorgenommen, wenn zusätzliche Warehouses erforderlich sind.

    ↓ max

    Bei new_max_clusters < running_clusters werden überschüssige Warehouses 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 Warehouses gestartet, um das Minimum zu erreichen.

    ↓ min

    Bei new_min_clusters < running_clusters werden überschüssige Warehouses 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:

Weboberfläche

Klicken Sie auf History History tab oder Worksheets Worksheet tab.

Diese Seiten enthalten eine Spalte Cluster Number, in der das Warehouse angegeben wird, das zur Ausführung der an das jeweilige Multi-Cluster-Warehouse übermittelten Anweisungen verwendet wird.