ALTER WAREHOUSE

Unterbricht oder setzt ein virtuelles Warehouse fort oder bricht alle Abfragen (und andere SQL-Anweisungen) für ein Warehouse ab. Kann auch verwendet werden, um die Eigenschaften eines Warehouses umzubenennen oder zu setzen/auszusetzen.

Siehe auch:

CREATE WAREHOUSE, DESCRIBE WAREHOUSE, DROP WAREHOUSE, SHOW WAREHOUSES

Syntax

ALTER WAREHOUSE [ IF EXISTS ] [ <name> ] { SUSPEND | RESUME [ IF SUSPENDED ] }

ALTER WAREHOUSE [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER WAREHOUSE [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER WAREHOUSE [ IF EXISTS ] <name> SET [ objectProperties ]
                                         [ objectParams ]

ALTER WAREHOUSE [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER WAREHOUSE [ IF EXISTS ] <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER WAREHOUSE [ IF EXISTS ] <name> UNSET { <property_name> | <param_name> } [ , ... ]
Copy

Wobei:

objectProperties ::=
  WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }
  WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }
  WAIT_FOR_COMPLETION = { TRUE | FALSE }
  MAX_CLUSTER_COUNT = <num>
  MIN_CLUSTER_COUNT = <num>
  SCALING_POLICY = { STANDARD | ECONOMY }
  AUTO_SUSPEND = { <num> | NULL }
  AUTO_RESUME = { TRUE | FALSE }
  RESOURCE_MONITOR = <monitor_name>
  COMMENT = '<string_literal>'
  ENABLE_QUERY_ACCELERATION = { TRUE | FALSE }
  QUERY_ACCELERATION_MAX_SCALE_FACTOR = <num>
Copy
objectParams ::=
  MAX_CONCURRENCY_LEVEL = <num>
  STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>
Copy

Eigenschaften/Parameter

name

Gibt den Bezeichner für das zu ändernde Warehouse an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Bemerkung

Ein Warehouse-Bezeichner ist erforderlich oder optional, je nach folgender Situation:

  • Wenn in der Sitzung aktuell ein Warehouse verwendet wird kann beim Wiederaufnehmen/Stoppen eines Warehouses oder beim Abbrechen von Abfragen an ein Warehouse der Bezeichner weggelassen werden.

  • Wenn Sie ein Warehouse umbenennen oder andere Operationen für ein Warehouse durchführen, muss der Bezeichner angegeben werden.

{ SUSPEND | RESUME [ IF SUSPENDED ] }

Gibt die Aktion an, die für das Warehouse durchgeführt werden soll:

  • SUSPEND entfernt alle Serverknoten von einem Warehouse und versetzt das Warehouse in den Status „Angehalten“.

  • RESUME [ IF SUSPENDED ] bringt ein angehaltenes Warehouse durch die Bereitstellung von Computeressourcen in den Status „In Ausführung“.

    Die optionale IF SUSPENDED-Klausel gibt an, ob der Befehl ALTER WAREHOUSE erfolgreich abgeschlossen wird, wenn ein bereits aktives Warehouse fortgesetzt werden soll:

    • Wenn der Befehl weggelassen wird, schlägt der Befehl fehl und gibt einen Fehler zurück, wenn das Warehouse bereits aktiv ist.

    • Wenn der Befehl angegeben wird, wird er erfolgreich abgeschlossen, auch wenn das Warehouse aktiv ist.

ABORT ALL QUERIES

Bricht alle Abfragen ab, die derzeit im Warehouse ausgeführt werden oder in der Warteschlange stehen.

RENAME TO new_name

Gibt einen neuen Bezeichner für das Warehouse an. Dieser muss für Ihr Konto eindeutig sein.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

SET ...

Gibt eine oder mehrere Eigenschaften/Parameter an, die für das Warehouse festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen):

WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }

Gibt den Warehouse-Typ an.

Gültige Werte:
  • STANDARD, 'STANDARD'

  • 'SNOWPARK-OPTIMIZED'

Standard:

STANDARD

Bemerkung

Um einen Wert zu verwenden, der einen Bindestrich enthält ('SNOWPARK-OPTIMIZED'), müssen Sie den Wert wie dargestellt in einfache Anführungszeichen setzen.

WAREHOUSE_SIZE = string_constant

Gibt die Größe des virtuellen Warehouses an. Die Größe bestimmt die Anzahl der Computeressourcen in jedem Cluster und damit die Anzahl der verbrauchten Credits während des Warehouse-Betriebs.

Weitere Informationen dazu finden Sie unter Ändern der Warehouse-Größe.

Gültige Werte:
  • XSMALL, 'X-SMALL'

  • SMALL

  • MEDIUM

  • LARGE

  • XLARGE, 'X-LARGE'

  • XXLARGE, X2LARGE, '2X-LARGE'

  • XXXLARGE, X3LARGE, '3X-LARGE'

  • X4LARGE, '4X-LARGE'

  • X5LARGE, '5X-LARGE'

  • X6LARGE, '6X-LARGE'

Standard:

XLARGE

Bemerkung

  • Die Größen XSMALL, SMALL, X5LARGE und X6LARGE unterstützen keine Snowpark-optimierten Warehouses. Die Standardgröße für Snowpark-optimierte Warehouses ist MEDIUM.

  • Um einen Wert zu verwenden, der einen Bindestrich enthält ('2X-LARGE'), müssen Sie den Wert wie dargestellt in einfache Anführungszeichen setzen.

  • Um die sofortige Rückkehr des Befehls ALTER WAREHOUSE so lange zu blockieren, bis die Größenänderung abgeschlossen ist, fügen Sie den Parameter WAIT_FOR_COMPLETION hinzu.

WAIT_FOR_COMPLETION = { TRUE | FALSE }

Bei der Größenänderung eines Warehouses können Sie diesen Parameter verwenden, um die Rückkehr des Befehls ALTER WAREHOUSE so lange zu blockieren, bis die Größenänderungsoperation die Bereitstellung aller Computeressourcen abgeschlossen hat. Das Blockieren der Rückkehr des Befehls im Zuge der Größenänderung auf ein größeres Warehouse dient dazu, Ihnen mitzuteilen, dass Ihre Computeressourcen vollständig bereitgestellt wurden und das Warehouse nun bereit ist, Abfragen unter Verwendung aller neuen Ressourcen auszuführen.

Gültige Werte:
  • TRUE: Der Befehl ALTER WAREHOUSE wird blockiert, bis die Größenänderung des Warehouses abgeschlossen ist.

  • FALSE: Der Befehl ALTER WAREHOUSE kehrt sofort zurück, bevor die Größenänderung des Warehouses abgeschlossen ist.

Standard:

FALSE

Bemerkung

  • Der Wert dieses Parameters wird nicht beibehalten und muss bei jeder Ausführung auf TRUE gesetzt werden, wenn die Größenänderung des Warehouse abgeschlossen sein soll, bevor der Befehl zurückkehrt.

  • Wenn die Einstellung auf TRUE gesetzt ist und Sie den ALTER WAREHOUSE-Befehl abbrechen, wird nur das Warten abgebrochen, die Größenänderung des Warehouses jedoch vollständig ausgeführt. Um die Größe des Warehouses wieder auf die ursprüngliche Größe zurückzusetzen, müssen Sie erneut einen ALTER WAREHOUSE-Befehl ausführen.

  • Dieser Parameter muss zusammen mit dem Parameter WAREHOUSE_SIZE verwendet werden, da sonst eine Ausnahme ausgelöst wird.

MAX_CLUSTER_COUNT = num

Gibt die maximale Anzahl von Clustern für ein Multi-Cluster-Warehouse an. Für ein Einzel-Cluster-Warehouse ist dieser Wert immer 1.

Gültige Werte:

1 bis 10

Wenn Sie einen Wert größer als 1 angeben, handelt es sich bei dem Warehouse um ein Multi-Cluster-Warehouse. Der Wert kann jedoch nur in der Snowflake Enterprise Edition (oder höher) auf einen höheren Wert gesetzt werden.

Weitere Informationen dazu finden Sie unter Multi-Cluster-Warehouses.

Standard:

1 (Einzelcluster-Warehouse)

Tipp

Bei der Snowflake Enterprise Edition (oder höher) empfehlen wir, den Wert stets auf größer als 1 zu setzen, um die Hochverfügbarkeit und optimale Leistung des (Multi-Cluster-)Warehouses zu erhalten. Dies trägt auch dazu bei, die Kontinuität im unwahrscheinlichen Fall eines Clusterausfalls sicherzustellen.

MIN_CLUSTER_COUNT = num

Gibt die minimale Anzahl von Clustern für ein Multi-Cluster-Warehouse an.

Gültige Werte:

1 bis 10

Beachten Sie, dass MIN_CLUSTER_COUNT gleich oder kleiner als MAX_CLUSTER_COUNT sein muss:

  • Wenn beide Parameter gleich sind, wird das Warehouse im Modus Maximiert ausgeführt.

  • Wenn MIN_CLUSTER_COUNT kleiner als MAX_CLUSTER_COUNT ist, wird das Warehouse im Modus Automatische Skalierung ausgeführt.

Weitere Informationen dazu finden Sie unter Multi-Cluster-Warehouses.

Standard:

1

SCALING_POLICY = { STANDARD | ECONOMY }

Objektparameter, der die Richtlinie für das automatische Starten und Beenden von Clustern in einem Multi-Cluster-Warehouse im Modus „Automatische Skalierung“ angibt.

Eine detaillierte Beschreibung dieses Parameters finden Sie unter Einstellen der Skalierungsrichtlinie für ein Multi-Cluster-Warehouse.

AUTO_SUSPEND = { num | NULL }

Gibt die Anzahl der Sekunden der Inaktivität an, nach der ein Warehouse automatisch angehalten wird.

Gültige Werte:

Beliebige Ganzzahl 0 oder größer, oder NULL:

  • Das Festlegen eines Wertes kleiner als 60 ist erlaubt, führt aber möglicherweise nicht zu dem erwünschten/erwarteten Verhalten, weil der Hintergrundprozess, der ein Warehouse anhält, etwa alle 60 Sekunden ausgeführt wird und daher nicht dazu gedacht ist, eine genaue Kontrolle über das Anhalten des Warehouses zu ermöglichen.

  • Wenn Sie einen Wert von 0 oder NULL festlegen, wird das Warehouse niemals angehalten.

Standard:

600 (das Warehouse wird nach 10 Minuten Inaktivität automatisch angehalten)

Wichtig

Das Einstellen von AUTO_SUSPEND auf 0 oder NULL wird nicht empfohlen, es sei denn, für Ihre Abfrageworkloads ist ein kontinuierlich ausgeführtes Warehouse erforderlich. Beachten Sie, dass dies zu einem erheblichen Verbrauch von Credits (und entsprechenden Gebühren) führen kann, insbesondere bei größeren Warehouses.

Weitere Details dazu finden Sie unter Hinweise zu Warehouses.

AUTO_RESUME = { TRUE | FALSE }

Gibt an, ob ein Warehouse automatisch fortgesetzt werden soll, wenn ihm eine SQL-Anweisung (z. B. Abfrage) übermittelt wird. Bei FALSE startet das Warehouse erst wieder, wenn es mit ALTER WAREHOUSE oder über die Snowflake-Weboberfläche explizit fortgesetzt wird.

Gültige Werte:
  • TRUE: Das Warehouse wird fortgesetzt, wenn eine neue Abfrage gesendet wird.

  • FALSE: Das Warehouse startet erst wieder, wenn es mit ALTER WAREHOUSE oder über die Snowflake-Weboberfläche explizit fortgesetzt wird.

Standard:

TRUE (das Warehouse wird automatisch fortgesetzt, wenn eine SQL-Anweisung an das Warehouse übermittelt wird)

INITIALLY_SUSPENDED = { TRUE | FALSE }

Entfällt beim Ändern eines Warehouse

RESOURCE_MONITOR = monitor_name

Gibt den Bezeichner eines Ressourcenmonitors an, der dem Warehouse explizit zugeordnet ist. Wenn ein Ressourcenmonitor explizit einem Warehouse zugeordnet ist, steuert der Monitor die monatlichen Credits, die vom Warehouse (und allen anderen Warehouses, denen der Monitor zugeordnet ist) verbraucht werden.

Gültige Werte:

Beliebiger vorhandener Ressourcenmonitor.

Weitere Details dazu finden Sie unter Verwenden von Ressourcenmonitoren.

Standard:

Kein Wert (dem Warehouse ist kein Ressourcenmonitor zugeordnet)

Tipp

Verwenden Sie den Befehl SHOW RESOURCE MONITORS, um alle Ressourcenmonitore und ihre Bezeichner anzuzeigen.

COMMENT = 'string_literal'

Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für das Warehouse.

MAX_CONCURRENCY_LEVEL = num

Objektparameter, der den Parallelitätsgrad für SQL-Anweisungen (d. h. Abfragen und DML) angibt, die von einem Warehouse-Cluster ausgeführt werden. Wenn der Grad erreicht wird:

  • Bei einem Single-Cluster-Warehouse oder einem Multi-Cluster-Warehouse (im Modus „Maximiert“) werden zusätzliche Anweisungen in die Warteschlange gestellt, bis Ressourcen verfügbar sind.

  • Bei einem Multi-Cluster-Warehouse (im Modus „Automatische Skalierung“) werden zusätzliche Cluster gestartet.

Dieser Parameter kann zusammen mit STATEMENT_QUEUED_TIMEOUT_IN_SECONDS verwendet werden, um sicherzustellen, dass ein Warehouse niemals in Rückstand gerät.

Eine detaillierte Beschreibung dieses Parameters finden Sie unter MAX_CONCURRENCY_LEVEL.

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = num

Objektparameter, der die Zeit in Sekunden angibt, die eine SQL-Anweisung (Abfrage, DDL, DML usw.) in der Warteschlange eines Warehouses verbleiben kann, bevor sie vom System abgebrochen wird.

Dieser Parameter kann zusammen mit MAX_CONCURRENCY_LEVEL verwendet werden, um sicherzustellen, dass ein Warehouse niemals in Rückstand gerät.

Eine detaillierte Beschreibung dieses Parameters finden Sie unter STATEMENT_QUEUED_TIMEOUT_IN_SECONDS.

STATEMENT_TIMEOUT_IN_SECONDS = num

Objektparameter, der die Zeit in Sekunden angibt, nach der eine aktive SQL-Anweisung (Abfrage, DDL, DML usw.) vom System abgebrochen wird.

Eine detaillierte Beschreibung dieses Parameters finden Sie unter STATEMENT_TIMEOUT_IN_SECONDS.

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.

ENABLE_QUERY_ACCELERATION = { TRUE | FALSE }

Gibt an, ob der Abfragebeschleunigungsdienst für Abfragen aktiviert werden soll, die auf dieses Warehouse für Computeressourcen angewiesen sind.

Gültige Werte:
  • TRUE aktiviert Query Acceleration

  • FALSE deaktiviert Query Acceleration

Standard:

FALSE: Query Acceleration ist deaktiviert

QUERY_ACCELERATION_MAX_SCALE_FACTOR = num

Gibt den maximalen Skalierungsfaktor für das Mieten von Computeressourcen für die Abfragebeschleunigung an. Der Skalierungsfaktor wird als Multiplikator auf Basis der Warehouse-Größe verwendet.

Wenn QUERY_ACCELERATION_MAX_SCALE_FACTOR auf 0 gesetzt wird, entfällt dieses Limit und die Abfragen können so viele Ressourcen mieten, wie nötig und verfügbar sind, um die Abfrage zu bedienen.

Unabhängig vom Wert für QUERY_ACCELERATION_MAX_SCALE_FACTOR ist die Menge der verfügbaren Computeressourcen für die Abfragebeschleunigung durch die verfügbaren Ressourcen des Dienstes und die Anzahl der von weiteren gleichzeitigen Anforderungen begrenzt. Weitere Informationen dazu finden Sie unter Anpassen des Skalierungsfaktors.

Gültige Werte:

0 bis 100

Standard:

8

UNSET ...

Gibt eine (oder mehrere) Eigenschaften und/oder Parameter an, die für die Datenbank gelöscht werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden:

  • property_name

  • param_name

    • TAG tag_name [ , tag_name ... ]

Sie können mehrere Eigenschaften/Parameter mit einer einzigen ALTER-Anweisung zurücksetzen. Dabei müssen die einzelne Eigenschaften/Parameter aber durch ein Komma getrennt werden. Beim Zurücksetzen einer Eigenschaft/Parameter geben Sie nur den Namen an. Es wird kein Wert benötigt.

Bemerkung

UNSET kann zum Deaktivieren aller Eigenschaften und Parameter für ein Warehouse verwendet werden, mit Ausnahme von WAREHOUSE_SIZE, die nur mit SET geändert werden kann.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens eine der folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

APPLY

Tag

Ermöglicht das Setzen eines Tags auf ein Warehouse.

MODIFY

Warehouse

Ermöglicht das Ändern aller Eigenschaften eines Warehouse, einschließlich der Änderung seiner Größe. Erforderlich, um ein Warehouse einem Ressourcenmonitor zuzuweisen. Beachten Sie, dass Warehouses den Ressourcenmonitoren nur von der Rolle ACCOUNTADMIN zugewiesen werden können.

MONITOR

Warehouse

Ermöglicht das Anzeigen aktueller und vergangener Abfragen auf einem Warehouse sowie das Anzeigen von Nutzungsstatistiken zu diesem Warehouse.

OPERATE

Warehouse

Ermöglicht das Ändern des Status eines Warehouses (Stoppen, Starten, Anhalten, Fortsetzen) und ermöglicht außerdem das Anzeigen aktueller und früherer Abfragen auf einem Warehouse sowie das Abbrechen von aktuell ausgeführten Abfragen.

USAGE

Warehouse

Ermöglicht die Nutzung eines virtuellen Warehouses und damit das Ausführen von Abfragen auf dem Warehouse. Wenn das Warehouse so konfiguriert ist, dass es automatisch fortgesetzt wird, wenn ihm eine SQL-Anweisung (z. B. eine Abfrage) übermittelt wird, fährt das Warehouse automatisch fort und führt die Anweisung aus.

Tipp

Das Erteilen der globalen Berechtigung MANAGE WAREHOUSES ist gleichbedeutend mit dem Erteilen der Berechtigungen MODIFY, MONITOR und OPERATE für alle Warehouses eines Kontos. Sie können diese Berechtigung einer Rolle zuweisen, deren Zweck das Verwalten eines Warehouses ist, um die Verwaltung Ihrer Snowflake-Zugriffssteuerung zu vereinfachen.

Weitere Informationen dazu finden Sie unter Delegieren der Warehouse-Verwaltung.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einem bestimmten Satz von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Ein Warehouse muss nicht angehalten werden, um seine Eigenschaften festzulegen oder zu ändern, mit Ausnahme des Typs.

  • Um den Warehouse-Typ zu ändern, muss sich das Warehouse im Zustand suspended befinden. Führen Sie die folgende Anweisung aus, um ein Warehouse anzuhalten:

    ALTER WAREHOUSE mywh SUSPEND;
    
    Copy
  • Wenn die Warehouse-Größe geändert wird, hat die Änderung keine Auswirkungen auf Anweisungen, einschließlich Abfragen, die gerade ausgeführt werden. Nach Abschluss der Anweisungen und voller Bereitstellung der Computeressourcen wird die neue Größe für alle nachfolgenden Anweisungen verwendet.

  • Durch das Anhalten eines Warehouses werden keine Abfragen abgebrochen, die zum Zeitpunkt des Anhaltens vom Warehouse verarbeitet werden. Stattdessen schließt das Warehouse die Abfragen ab und fährt dann die Computeressourcen herunter, auf denen die Abfragen verarbeitet werden. Während dieser Zeitspanne befindet sich das Warehouse im Modus Stilllegen. Wenn alle Computeressourcen heruntergefahren sind, ändert sich der Status des Warehouses in „Angehalten“.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • Das Fortsetzen eines Snowpark-optimierten virtuellen Warehouses kann länger dauern als bei Standard-Warehouses.

  • Snowpark-optimierte Warehouses unterstützen keine Abfragebeschleunigung (Query Acceleration).

  • Snowpark-optimierte Warehouses werden bei den Warehouse-Größen XSMall, SMALL, X5LARGE und X6LARGE nicht unterstützt.

  • Die Verwendung der IF EXISTS-Klausel setzt voraus, dass die verwendete Rolle oder eine Rolle in der aktiven Rollenhierarchie über die erforderlichen Warehouse-Berechtigungen für das Warehouse verfügt.

Beispiele

Warehouse wh1 in wh2 umbenennen:

ALTER WAREHOUSE IF EXISTS wh1 RENAME TO wh2;
Copy

Setzen Sie ein Warehouse namens my_wh fort, und ändern Sie dann die Größe des aktiven Warehouses:

ALTER WAREHOUSE my_wh RESUME;

ALTER WAREHOUSE my_wh SET warehouse_size=MEDIUM;
Copy