Hinweise zu Warehouses

Dieses Thema bietet allgemeine Richtlinien und bewährte Methoden für die Verwendung von virtuellen Warehouses in Snowflake zur Verarbeitung von Abfragen. Es liefert keine spezifischen oder absoluten Zahlen, Werte oder Empfehlungen, da jedes Abfrageszenario unterschiedlich ist und von zahlreichen Faktoren beeinflusst wird, darunter die Anzahl der gleichzeitigen Benutzer/Abfragen, die Anzahl der abgefragten Tabellen sowie die Menge und Zusammensetzung der Daten. Hinzu kommen Ihre spezifischen Anforderungen an Verfügbarkeit, Latenz und Kosten des Warehouse.

Weiterhin werden hier keine Warehouse-Hinweise zum Laden von Daten gegeben, da dies unter einem anderen Thema behandelt wird (siehe Seitenleiste).

Die entscheidenden Aspekte der effektiven und effizienten Nutzung von Warehouses sind:

  1. Experimentieren Sie mit verschiedenen Arten von Abfragen und unterschiedlichen Warehouse-Größen, um die Kombinationen zu ermitteln, die Ihren speziellen Abfrageanforderungen und Ihrem Workload am besten entsprechen.

  2. Konzentrieren Sie sich nicht allein auf die Warehouse-Größe. Snowflake verwendet eine sekundengenaue Abrechnung, sodass Sie größere Warehouses (Large, X-Large, 2X-Large usw.) ausführen und auch einfach anhalten können, wenn sie nicht mehr benötigt werden.

Bemerkung

Diese Richtlinien und Best Practices gelten sowohl für Einzelcluster-Warehouses, die Standard für alle Konten sind, als auch für Multi-Cluster-Warehouses, die in Snowflake Enterprise Edition (und höher) verfügbar sind.

Wie werden Credit-Gebühren für Warehouses berechnet?

Credit-Gebühren werden auf folgender Grundlage berechnet:

  • Die Größe des Warehouses.

  • Anzahl der Cluster (bei Verwendung von Multi-Cluster-Warehouses)

  • Zeitdauer, die die Computeressourcen in jedem Cluster ausgeführt werden

Beispiel:

X-Small:

Rechnet 1 Credit pro voller, ununterbrochener Stunde ab, die jedes Cluster ausgeführt wird. Jede nächste Größe verdoppelt im Allgemeinen die Anzahl der Computeressourcen pro Warehouse.

4X-Large:

Berechnet 128 Credits pro voller, ununterbrochener Stunde, die jedes Cluster ausgeführt wird.

Beachten Sie Folgendes:

  • Wenn Computeressourcen für ein Warehouse bereitgestellt werden, gilt Folgendes:

    • Die Mindestabrechnungsgebühr für die Bereitstellung von Computeressourcen beträgt 1 Minute (d. h. 60 Sekunden).

    • Das Stoppen eines Warehouses vor dem Ende der ersten 60 Sekunden bringt keinen Vorteil, da die Credits für diesen Zeitraum bereits in Rechnung gestellt wurden.

    • Nach den ersten 60 Sekunden erfolgt die Abrechnung für ein aktives Warehouse sekundengenau (bis alle Computeressourcen heruntergefahren werden). Nachfolgend finden Sie drei Beispiele:

      • Wenn ein Warehouse 30 bis 60 Sekunden lang ausgeführt wird, werden ihm 60 Sekunden in Rechnung gestellt.

      • Wenn ein Warehouse 61 Sekunden lang ausgeführt wird, werden ihm nur 61 Sekunden in Rechnung gestellt.

      • Wenn ein Warehouse 61 Sekunden lang ausgeführt, dann heruntergefahren und erneut gestartet wird und dann noch weniger als 60 Sekunden ausgeführt wird, werden ihm 121 Sekunden (60 + 1 + 60) in Rechnung gestellt.

  • Bei der Größenänderung eines Warehouse werden zusätzliche Computeressourcen für jeden Cluster im Warehouse bereitgestellt:

    • Dies führt zu einer entsprechenden Erhöhung der Anzahl von Credits, die für das Warehouse abgerechnet werden (wenn die zusätzlichen Computeressourcen aktiviert werden).

    • Die zusätzlichen Computeressourcen werden abgerechnet, wenn diese bereitgestellt werden (d. h. Credits für die zusätzlichen Ressourcen werden relativ zum Zeitpunkt der Größenänderung des Warehouses berechnet).

    • Eine Größenänderung von einem 5XL- oder 6XL-Warehouse auf ein 4XL oder kleineres Warehouse führt zu einer kurzen Periode, in der dem Kunden sowohl das neue als auch das alte Warehouse in Rechnung gestellt wird, während sich das alte Warehouse im Ruhemodus („Stilllegung“) befindet.

    • Die Credit-Nutzung wird in Abständen von einer Stunde angezeigt. Bei der sekundengenauen Abrechnung werden für die Credit-Nutzung/Abrechnung Bruchbeträge angezeigt.

Wie wirkt sich die Komposition der Abfrage auf die Warehouse-Verarbeitung aus?

Die für die Bearbeitung einer Abfrage erforderlichen Computeressourcen hängen von der Größe und Komplexität der Abfrage ab. In den meisten Fällen skalieren die Abfragen linear mit der Größe des Warehouse, insbesondere bei größeren, komplexeren Abfragen. Bei Überlegungen zu den Faktoren, die sich auf die Abfrageverarbeitung auswirken, ist Folgendes zu berücksichtigen:

  • Die Gesamtdatengröße der abgefragten Tabellen hat größere Auswirkungen als die Anzahl der Zeilen.

  • Werden in der Abfrage Filter mit Prädikaten verwendet, hat diese dieselbe Auswirkung auf die Verarbeitung wie die Anzahl der Joins/Tabellen in der Abfrage.

Tipp

Um die besten Ergebnisse zu erzielen, sollten Sie versuchen, relativ homogene Abfragen (Komplexität, Datensätze usw.) auf demselben Warehouse auszuführen. Die Ausführung von Abfragen mit sehr unterschiedlicher Komplexität auf demselben Warehouse erschwert die Analyse der Warehouse-Auslastung, was die Auswahl der besten Warehouse-Größe entsprechend der Komplexität, Zusammensetzung und Anzahl der Abfragen in Ihrer Arbeitslast erschweren kann.

Wie wirkt sich das Warehouse-Caching auf Abfragen aus?

Jedes Warehouse verwaltet bei seiner Ausführung einen Cache mit Tabellendaten, auf die zugegriffen wird, wenn Abfragen vom Warehouse verarbeitet werden. Dies ermöglicht eine verbesserte Leistung für nachfolgende Abfragen, wenn diese aus dem Cache statt aus den Tabellen der Abfrage lesen können. Die Größe des Cache wird von der Anzahl der Computeressourcen im Warehouse bestimmt (d. h. je größer das Warehouse und damit die Menge an Computeressourcen im Warehouse, desto größer der Cache).

Dieser Cache wird gelöscht, wenn das Warehouse angehalten wird, was bei einigen Abfragen nach der Wiederaufnahme des Warehouse zu einer langsameren Anfangsleistung führen kann. Wenn das fortgesetzte Warehouse mehr Abfragen ausführt und verarbeitet, wird der Cache neu erstellt, und Abfragen, die den Cache nutzen können, erfahren eine verbesserte Leistung.

Berücksichtigen Sie dies, wenn Sie entscheiden, ob Sie ein Warehouse anhalten oder weiter ausführen möchten. Mit anderen Worten: Berücksichtigen Sie den Kompromiss zwischen dem Einsparen von Credits durch Anhalten eines Warehouse gegenüber der Aufrechterhaltung des Datencaches aus vorherigen Abfragen, um die Leistung zu verbessern.

Erstellen von Warehouses

Bei der Erstellung eines Warehouses sind aus Kosten- und Leistungssicht zwei Faktoren besonders zu berücksichtigen:

  • Größe des Warehouses (d. h. verfügbare Computeressourcen)

  • Manuelle vs. automatisierte Verwaltung (zum Starten/Fortsetzen und Anhalten von Warehouses)

Die Anzahl der Cluster i einem Warehouse ist ebenfalls wichtig, wenn Sie Snowflake Enterprise Edition (oder höher) und Multi-Cluster-Warehouses verwenden. Weitere Details dazu finden Sie unter Vertikales und horizontales Skalieren (unter diesem Thema).

Auswählen einer anfänglichen Warehouse-Größe

Die anfängliche Größe, die Sie für ein Warehouse auswählen, hängt von der Aufgabe ab, die das Warehouse ausführen soll, und von der Arbeitslast, die es verarbeitet. Beispiel:

  • Beim Laden von Daten sollte die Warehouse-Größe der Anzahl der zu ladenden Dateien und der Datenmenge in jeder Datei entsprechen. Weitere Informationen dazu finden Sie unter Planen eines Datenladevorgangs.

  • Für Abfragen in kleinen Testumgebungen sind kleinere Warehouse-Größen (X-Small, Small, Medium) möglicherweise ausreichend.

  • Bei Abfragen in großen Produktionsumgebungen können größere Warehouse-Größen (Large, X-Large, 2X-Large usw.) kostengünstiger sein.

Beachten Sie jedoch, dass die sekundengenaue Credit-Abrechnung und das automatische Anhalten die notwendige Flexibilität bieten, mit größeren Größen zu beginnen und die Größe dann an Ihre Workloads anzupassen. Sie können die Größe eines Warehouse jederzeit verringern.

Ein größeres Warehouse ist bei kleinen, einfacheren Abfragen jedoch nicht unbedingt schneller. Für kleine/einfache Abfragen ist in der Regel kein X-Large-Warehouse (oder größer) erforderlich, da die Abfragen nicht unbedingt von den zusätzlichen Ressourcen profitieren, unabhängig von der Anzahl der gleichzeitig verarbeiteten Abfragen. Versuchen Sie im Allgemeinen, die Größe des Warehouse an die erwartete Größe und Komplexität der vom Warehouse zu verarbeitenden Abfragen anzupassen.

Tipp

Experimentieren Sie, indem Sie dieselben Abfragen für Warehouses unterschiedlicher Größe (z. B. X-Large, Large, Medium) ausführen. Die Abfragen, mit denen Sie experimentieren, sollten eine Größe und Komplexität haben, von der Sie wissen, dass sie normalerweise innerhalb von 5 bis 10 Minuten (oder weniger) abgeschlossen ist.

Auswählen eines Warehouse für Snowsight

Bestimmte Snowsight-Seiten, wie Task Run History oder Data Preview, erfordern ein Warehouse, das SQL-Abfragen durchführt, um mehr als nur Metadaten anzuzeigen. Auf diesen Seiten gibt ein Warehouse-Selektor das Warehouse an, in dem diese UI-Abfragen ausgeführt werden. Ein grüner Punkt zeigt an, wenn das Warehouse aktiv ist.

Ein X-Small Warehouse wird empfohlen und ist in der Regel für die meisten dieser Abfragen ausreichend. Bei großen Konten kann die Leistung jedoch durch die Verwendung eines größeren Warehouse verbessert werden.

In einigen Fällen werden Ihrem Konto die vom Client erstellten Anweisungen nicht in Rechnung gestellt. Zum Beispiel benötigt SHOW TABLES kein Warehouse, um Daten abzurufen, sodass keine Gebühren anfallen. Weitere Informationen über Warehouses im Allgemeinen finden Sie unter Übersicht zu Warehouses.

Bemerkung

Snowsight-Leistung kann beeinträchtigt werden, wenn das Warehouse vorübergehend überlastet ist und die UI-Abfragen in der Warteschlange hinter anderen aktiven Workloads stehen. Wenn Sie eine inkonsistente Snowsight-Leistung feststellen, empfiehlt Snowflake, das gewählte Warehouse auf Überlastung zu überprüfen und ein anderes mit geringerer Auslastung zu verwenden. Große Konten mit vielen aktiven Benutzern könnten von einem speziellen X-Small Warehouse für UI-bezogene Aufgaben profitieren.

Sie können sehen, welche Snowsight-Abfragen für das aktuell ausgewählte Warehouse ausgeführt wurden und wann sie ausgeführt wurden. Um diese Abfragen zu überwachen, gehen Sie folgendermaßen vor:

  1. Wählen Sie Monitoring » Query History aus.

  2. Wählen Sie die Dropdown-Liste Filters aus.

  3. Aktivieren Sie das Kontrollkästchen Client-generated statements, um die internen Abfragen eines Clients, eines Treibers oder einer Bibliothek, einschließlich der Weboberfläche, anzuzeigen.

  4. Wählen Sie Apply Filters aus.

Informationen zur Kostenkontrolle finden Sie unter Untersuchen der Computekosten.

Verwendung des Standard-Warehouses für Notebook-Apps

In jedem Konto wird ein dediziertes, Snowflake verwalteten Warehouse bereitgestellt, das ausschließlich für die Ausführung von Notebook-Apps bestimmt ist. SYSTEM$STREAMLIT_NOTEBOOK_WH ist ein Warehouse der Größe X-Small mit mehreren Clustern, das die Cluster-Fragmentierung reduziert, Ihre Gesamtkosten optimiert und zu einem optimierten Bin Packing beiträgt. Weitere Details dazu finden Sie unter Standard-Warehouse für Notebooks.

Automatisches Anhalten des Warehouses

Warehouses können so eingestellt werden, dass sie nach einer bestimmten Zeitdauer der Inaktivität automatisch angehalten werden. Das automatische Anhalten wird aktiviert, sobald ein Zeitraum der Inaktivität (Minuten, Stunden usw.) für das Warehouse angegeben wird.

Es wird empfohlen, das automatische Anhalten entsprechend Ihres Workloads und Ihren Anforderungen an die Warehouse-Verfügbarkeit einzustellen:

  • Wenn Sie automatisches Anhalten aktivieren, empfehlen wir Ihnen, einen niedrigen Wert einzustellen (z. B. 5 oder 10 Minuten oder weniger), da Snowflake eine sekundengenaue Abrechnung verwendet. Dadurch wird verhindert, dass Ihre Warehouses ausgeführt werden (und damit Credits verbrauchen), wenn sie nicht benötigt werden.

    Der von Ihnen festgelegte Wert sollte jedoch mit den möglicherweise vorhandenen Lücken in Ihrem Abfrage-Workload übereinstimmen. Wenn Sie beispielsweise regelmäßig Lücken von 2 oder 3 Minuten zwischen eingehenden Abfragen haben, ist es nicht sinnvoll, das automatische Anhalten auf 1 oder 2 Minuten einzustellen, da Ihr Warehouse ständig angehalten und wiederaufgenommen wird (wenn die automatische Wiederaufnahme ebenfalls aktiviert ist) und Ihnen bei jeder Wiederaufnahme die minimale Credit-Nutzung (d. h. 60 Sekunden) in Rechnung gestellt wird.

  • Deaktivieren Sie das automatische Anhalten für ein Warehouse in folgenden Fällen:

    • Sie haben eine intensive, gleichmäßige Workload für das Warehouse.

    • Sie benötigen ein Warehouse, das ohne Verzögerung oder Latenz verfügbar ist. Die Bereitstellung des Warehouses erfolgt im Allgemeinen sehr schnell (z. B. 1 oder 2 Sekunden). Abhängig von der Größe des Warehouse und der Verfügbarkeit der Computeressourcen kann dies jedoch länger dauern.

Wichtig

Wenn Sie sich dafür entscheiden, das automatische Anhalten zu deaktivieren, bedenken Sie sorgfältig die Kosten, die mit dem kontinuierlichen Betrieb eines Warehouse verbunden sind, auch wenn das Warehouse keine Abfragen bearbeitet. Die Kosten können insbesondere für größere Warehouses (X-Large, 2X-Large usw.) erheblich sein.

Um das automatische Anhalten zu deaktivieren, müssen Sie auf der Weboberfläche explizit Never auswählen oder in SQL 0 oder NULL angeben.

Automatisches Fortsetzen des Warehouses

Warehouses können so eingestellt werden, dass sie automatisch fortgesetzt werden, wenn neue Abfragen übermittelt werden.

Wir empfehlen, das automatische Fortsetzen zu aktivieren/deaktivieren, je nachdem, wie viel Kontrolle Sie über die Nutzung eines bestimmten Warehouse ausüben möchten:

  • Wenn die Kosten und der Zugriff kein Problem darstellen, aktivieren Sie das automatische Fortsetzen, um sicherzustellen, dass das Warehouse bei Bedarf gestartet wird. Beachten Sie, dass es aufgrund der Bereitstellung zu einer kurzen Verzögerung bei der Wiederaktivierung des Warehouse kommen kann.

  • Wenn Sie die Kosten und/oder den Benutzerzugriff kontrollieren möchten, lassen Sie das automatische Fortsetzen deaktiviert, und aktivieren Sie das Warehouse stattdessen manuell nur dann, wenn es erforderlich ist.

Vertikales und horizontales Skalieren

Snowflake unterstützt zwei Arten der Skalierung von Warehouses:

  • Vertikales Skalieren durch Ändern der Größe eines Warehouse.

  • Horizontales Skalieren durch Hinzufügen von Clustern zu einem Multi-Cluster-Warehouse (erfordert Snowflake Enterprise Edition oder höher).

Änderung der Warehouse-Größe verbessert Leistung

Die Größenänderung eines Warehouses verbessert im Allgemeinen die Abfrageleistung, insbesondere bei großen und komplexen Abfragen. Dies kann auch dazu beitragen, die Warteschlange zu reduzieren, wenn ein Warehouse nicht über genügend Computeressourcen verfügt, um alle gleichzeitig übermittelten Abfragen zu verarbeiten. Beachten Sie, dass die Größenänderung des Warehouses nicht für die Behandlung von Parallelitätsproblemen vorgesehen ist. Verwenden Sie stattdessen zusätzliche Warehouses, um den Workload zu bewältigen, oder verwenden Sie ein Multi-Cluster-Warehouse (sofern dieses Feature für Ihr Konto verfügbar ist).

Snowflake unterstützt jederzeit die Größenänderung eines Warehouses, auch während der Ausführung des Warehouse. Wenn eine Abfrage langsam ausgeführt wird und Sie zusätzliche Abfragen mit ähnlicher Größe und Komplexität haben, die Sie über dasselbe Warehouse ausführen möchten, können Sie die Größe des Warehouse während der Ausführung ändern. Beachten Sie jedoch Folgendes:

  • Wie bereits erwähnt, ist größer nicht notwendigerweise schneller. Bei kleinen Basisabfragen, die bereits schnell ausgeführt werden, sehen Sie nach der Größenänderung des Warehouses möglicherweise keine signifikante Verbesserung.

  • Die Größenänderung eines aktiven Warehouse wirkt sich nicht auf Abfragen aus, die bereits vom Warehouse verarbeitet werden. Die zusätzlichen Computeressourcen werden nach vollständiger Bereitstellung nur für Warteschlangen und neue Abfragen verwendet.

  • Eine Größenänderung von einem 5XL- oder 6XL-Warehouse auf ein 4XL oder kleineres Warehouse führt zu einer kurzen Periode, in der dem Kunden sowohl das neue als auch das alte Warehouse in Rechnung gestellt wird, während sich das alte Warehouse im Ruhemodus („Stilllegung“) befindet.

Tipp

Durch die Verringerung der Größe eines aktiven Warehouses werden Server aus dem Computeressourcen entfernt. Wenn die Computeressourcen entfernt werden, wird der mit diesen Ressourcen verknüpfte Cache gelöscht. Dies kann sich auf die Leistung auswirken, wie auch das Anhalten des Warehouses die Leistung nach dem Fortsetzen beeinflusst.

Beachten Sie dies bei der Entscheidung, ob Sie die Größe eines aktiven Warehouses verringern oder die aktuelle Größe beibehalten möchten. Mit anderen Worten, Sie müssen einen Kompromiss finden zwischen dem Einsparen von Credits und dem Erhalten des Cache.

Multi-Cluster-Warehouses verbessern Parallelität

Multi-Cluster-Warehouses wurden speziell für die Behandlung von Warteschlangen- und Leistungsproblemen im Zusammenhang mit einer großen Anzahl gleichzeitiger Benutzer und/oder Abfragen entwickelt. Außerdem können Multi-Cluster-Warehouses dazu beitragen, diesen Prozess zu automatisieren, wenn die Anzahl der Benutzer/Abfragen tendenziell schwankt.

Berücksichtigen Sie bei der Entscheidung, ob Multi-Cluster-Warehouses und wenn ja, wie viele Cluster pro Multi-Cluster-Warehouse verwendet werden sollen, Folgendes:

  • Wenn Sie die Snowflake Enterprise Edition (oder eine höhere Edition) verwenden, sollten alle Ihre Warehouses als Multi-Cluster-Warehouse konfiguriert werden.

  • Sofern Sie keine speziellen Anforderungen zur Ausführung im Modus „Maximiert“ haben, sollten Multi-Cluster-Warehouses so konfiguriert werden, dass sie im Modus „Automatische Skalierung“ ausgeführt werden, sodass Snowflake Cluster bei Bedarf automatisch starten und stoppen kann.

  • Bei der Auswahl der minimalen und maximalen Anzahl von Clustern für ein Multi-Cluster-Warehouse müssen Sie Folgendes beachten:

    Minimum:

    Behalten Sie den Standardwert 1 bei. Dadurch wird sichergestellt, dass zusätzliche Cluster nur bei Bedarf gestartet werden. Wenn jedoch die Hochverfügbarkeit des Warehouses von Belang ist, verwenden Sie einen Wert größer als 1. Damit wird die Verfügbarkeit und Kontinuität des Multi-Cluster-Warehouses in dem unwahrscheinlichen Fall sichergestellt, dass ein Cluster ausfällt.

    Maximum:

    Verwenden Sie den größtmöglichen Wert, und achten Sie auf die Warehouse-Größe und die entsprechenden Credit-Kosten. Ein Multi-Cluster-Warehouse der Größe X-Large mit maximal 10 Clustern verbraucht beispielsweise 160 Credits pro Stunde, wenn alle 10 Cluster in der Stunde durchgehend ausgeführt werden.