Übersicht zu Warehouses

Warehouses sind für Abfragen sowie für alle DML-Operationen erforderlich, einschließlich des Ladens von Daten in Tabellen. Ein Warehouse wird durch seine Größe sowie die anderen Eigenschaften definiert, die festgelegt werden können, um die Warehouse-Aktivitäten zu steuern und zu automatisieren.

Warehouses können jederzeit gestartet und gestoppt werden. Auch deren Größe kann jederzeit geändert werden, auch wenn das Warehouse aktiv ist, um so den Bedarf an Computeressourcen an die jeweils vom Warehouse ausgeführten Operationen anzupassen.

Unter diesem Thema:

Warehouse-Größe

Die Größe gibt die Anzahl der Server an, aus denen jeder Cluster eines Warehouse besteht. Snowflake unterstützt die folgenden Warehouse-Größen:

Warehouse-Größe

Server/Cluster

Credits/Stunde

Credits/Sekunde

Anmerkungen

X-Small

1

1

0,0003

Standardgröße für Warehouses, die mit CREATE WAREHOUSE erstellt werden.

Small

2

2

0,0006

Medium

4

4

0,0011

Large

8

8

0,0022

X-Large

16

16

0,0044

Standardeinstellung für Warehouses, die über die Weboberfläche erstellt werden.

2X-Large

32

32

0,0089

3X-Large

64

64

0,0178

4X-Large

128

128

0,0356

Auswirkungen auf Credit-Nutzung und Abrechnung

Wie in der obigen Tabelle gezeigt, besteht eine Eins-zu-Eins-Entsprechung zwischen der Anzahl der Server in einem Warehouse-Cluster und der Anzahl der vom Cluster verbrauchten Credits (und wird daher in Rechnung gestellt) für jeden volle Stunde, die das Warehouse aktiv ist. Beachten Sie jedoch, dass Snowflake die Abrechnung pro Sekunde (mit einem Minimum von 60 Sekunden bei jedem Start des Warehouse) verwendet, sodass für Warehouses nur die tatsächlich verbrauchten Credits in Rechnung gestellt werden.

Die Gesamtanzahl der in Rechnung gestellten Credits hängt davon ab, wie lange das Warehouse kontinuierlich ausgeführt wird: Zu Vergleichszwecken zeigt die folgende Tabelle die Abrechnungssummen für drei Warehouses unterschiedlicher Größe, basierend auf ihrer Laufzeit (auf ein Tausendstel eines Credit gerundete Beträge):

Laufzeit

Credits . (X-Small)

Credits . (X-Large)

Credits . (3X-Large)

0–60 Sekunden

0,017

0,267

1,067

61 Sekunden

0,017

0,271

1,084

2 Minuten

0,033

0,533

2,133

10 Minuten

0,167

2,667

10,667

1 Stunde

1,000

16,000

64,000

Bemerkung

Bei einem Multi-Cluster-Warehouse wird die Anzahl der abzurechnenden Credits auf Basis der Anzahl der Server pro Cluster und der Anzahl der Cluster berechnet, die innerhalb des Zeitraums ausgeführt werden.

Wenn zum Beispiel ein 3X-Large-Multi-Cluster-Warehouse 1 Cluster für eine volle Stunde und dann 2 Cluster für die nächste volle Stunde ausführt, beträgt die Gesamtanzahl der in Rechnung gestellten Credits 192 (d. h. 64 + 128).

Multi-Cluster-Warehouses stehen nur in der Enterprise Edition zur Verfügung.

Auswirkungen auf das Laden von Daten

Wenn Sie die Größe eines Warehouse erhöhen, verbessert sich nicht immer die Leistung beim Laden von Daten. Die Leistung beim Laden von Daten wird mehr durch die Anzahl der geladenen Dateien (und die Größe jeder Datei) als durch die Größe des Warehouse beeinflusst.

Tipp

Wenn Sie nicht eine große Anzahl von Dateien gleichzeitig laden (d. h. Hunderte oder Tausende von Dateien), ist ein kleineres Warehouse (Small, Medium, Large) in der Regel ausreichend. Die Verwendung eines größeren Warehouse (X-Large, 2X-Large usw.) verbraucht mehr Credits und kann zu keiner Leistungssteigerung führen.

Weitere Tipps und Richtlinien zum Laden von Daten finden Sie unter Hinweise zum Laden von Daten.

Auswirkungen auf die Abfrageverarbeitung

Die Größe eines Warehouse kann sich auf die Zeit auswirken, die für die Ausführung von an das Warehouse übermittelten Abfragen erforderlich ist, insbesondere bei größeren und komplexeren Abfragen. Im Allgemeinen wird die Abfrageleistung linear mit der Warehouse-Größe skaliert, da mit jeder Größenzunahme zusätzliche Computeressourcen bereitgestellt werden.

Wenn von einem Warehouse verarbeitete Abfragen nur langsam ausgeführt werden, können Sie die Größe des Warehouse jederzeit ändern, um weitere Server bereitzustellen. Die zusätzlichen Server wirken sich nicht auf bereits laufende Abfragen aus, sie stehen jedoch für alle Abfragen zur Verfügung, die sich in der Warteschlange befinden oder neu übermittelt werden.

Tipp

Größer bedeutet bei kleinen Basisabfragen nicht unbedingt schneller.

Weitere Tipps und Richtlinien zu Warehouses finden Sie unter Hinweise zu Warehouses.

Automatisches Anhalten und Fortsetzen

Ein Warehouse kann so eingestellt werden, dass es je nach Aktivität automatisch angehalten oder fortgesetzt wird:

  • Standardmäßig ist das automatische Anhalten aktiviert. Snowflake hält das Warehouse automatisch an, wenn es den angegebenen Zeitraum lang inaktiv war.

  • Standardmäßig ist das automatische Fortsetzen aktiviert. Snowflake setzt die Ausführung des Warehouse automatisch fort, wenn eine Anweisung, die ein Warehouse erfordert, übermittelt wird und das Warehouse das aktuelle Warehouse der Sitzung ist.

Diese Eigenschaften können verwendet werden, um die Überwachung und Nutzung von Warehouses entsprechend der anfallenden Workload zu vereinfachen und zu automatisieren. Durch das automatische Anhalten wird sichergestellt, dass ein Warehouse nicht weiter ausgeführt wird (und Credits verbraucht), obwohl keine eingehenden Abfragen vorliegen. In ähnlicher Weise sorgt das automatische Fortsetzen dafür, dass das Warehouse sofort wieder startet, sobald es benötigt wird.

Bemerkung

Automatisches Anhalten und Fortsetzen gelten nur für das gesamte Warehouse und nicht für die einzelnen Cluster im Warehouse. Für ein Multi-Cluster-Warehouse gilt Folgendes:

  • Das automatische Anhalten erfolgt nur, wenn die minimale Anzahl von Clustern ausgeführt wird und einen angegebenen Zeitraum lang keine Aktivitäten stattfinden. Das Minimum ist normalerweise 1 (Cluster), könnte jedoch größer als 1 sein.

  • Das automatische Fortsetzen wird nur angewendet, wenn das gesamte Warehouse angehalten wurde (d. h. wenn keines der Cluster ausgeführt wird).

Abfrageverarbeitung und Parallelität

Die Anzahl der Abfragen, die ein Warehouse gleichzeitig verarbeiten kann, ist von der Größe und Komplexität der einzelnen Abfragen abhängig. Wenn Abfragen übermittelt werden, berechnet das Warehouse die für die Verarbeitung der Abfragen erforderlichen Computeressourcen und reserviert diese. Wenn das Warehouse nicht über genügend verbleibende Ressourcen zum Verarbeiten einer Abfrage verfügt, wird die Abfrage in die Warteschlange gestellt. Ausstehende Ressourcen werden verfügbar, sobald andere ausgeführte Abfragen abgeschlossen sind.

Snowflake bietet einige Parameter auf Objektebene, mit denen die Abfrageverarbeitung und die Parallelität gesteuert werden können:

Bemerkung

Wenn sich mehr Abfragen als gewünscht in der Warteschlange befinden, kann ein weiteres Warehouse erstellt und Abfragen können manuell an das neue Warehouse umgeleitet werden. Durch die Größenänderung eines Warehouse kann außerdem eine eingeschränkte Skalierung für die Parallelität der Abfragen und das Warteschlangenmanagement ermöglicht werden. Eine Größenänderung des Warehouse ist jedoch hauptsächlich dazu gedacht, die Abfrageleistung zu verbessern.

Um eine vollautomatische Skalierung für Parallelität zu ermöglichen, empfiehlt Snowflake die Verwendung von Multi-Cluster-Warehouses. Diese bieten im Wesentlichen die gleichen Vorteile wie die Erstellung eines zusätzlichen Warehouse gefolgt von der Umleitung der Abfragen, allerdings erfordern sie kein manuelles Eingreifen.

Multi-Cluster-Warehouses stehen nur in der Enterprise Edition zur Verfügung.

Warehouse-Nutzung in Sitzungen

Wenn eine Sitzung in Snowflake initiiert wird, ist der Sitzung standardmäßig kein Warehouse zugeordnet. Solange einer Sitzung kein Warehouse zugeordnet ist, können innerhalb der Sitzung auch keine Abfragen übermittelt werden.

Standard-Warehouse für Benutzer

Um das Abfragen unmittelbar nach dem Beginn einer Sitzung zu erleichtern, unterstützt Snowflake die Angabe eines Standard-Warehouse für jeden einzelnen Benutzer. Das Standard-Warehouse eines Benutzers wird als Warehouse für alle von diesem Benutzer initiierten Sitzungen verwendet.

Ein Standard-Warehouse kann beim Erstellen oder Ändern des Benutzers angegeben werden, entweder über die Weboberfläche oder mit CREATE USER/ALTER USER.

Standard-Warehouse für Clientdienstprogramme/-treiber/-konnektoren

Zusätzlich zu den Standard-Warehouses für Benutzer kann jeder der Snowflake-Clients (SnowSQL, JDBC-Treiber, ODBC-Treiber, Python-Konnektor usw.) ein eigenes Standard-Warehouse haben:

  • Zum Angeben des Standard-Warehouse unterstützt SnowSQL sowohl eine Konfigurationsdatei als auch eine Befehlszeilenoption.

  • Die Treiber und Konnektoren unterstützen die Angabe eines Standard-Warehouse als Verbindungsparameter, wenn eine Sitzung initiiert wird.

Weitere Informationen dazu finden Sie unter Verbinden mit Snowflake.

Vorrang für Warehouse-Standardeinstellungen

Wenn ein Benutzer eine Verbindung zu Snowflake herstellt und eine Sitzung startet, bestimmt Snowflake das Standard-Warehouse für die Sitzung in der folgenden Reihenfolge:

  1. Standard-Warehouse für den Benutzer,

    » overridden by…

  2. Standard-Warehouse in der Konfigurationsdatei für das Clientdienstprogramm (SnowSQL, JDBC-Treiber usw.), das für die Verbindung zu Snowflake verwendet wird (wenn der Client Konfigurationsdateien unterstützt),

    » overridden by…

  3. Standard-Warehouse, das in der Clientbefehlszeile oder über die an Snowflake übergebenen Treiber-/Konnektor-Parameter angegeben ist.

Bemerkung

Darüber hinaus kann das Standard-Warehouse einer Sitzung jederzeit geändert werden, indem der Befehl USE WAREHOUSE innerhalb der Sitzung ausgeführt wird.