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> } [ , ... ]
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>objectParams ::= MAX_CONCURRENCY_LEVEL = <num> STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num> STATEMENT_TIMEOUT_IN_SECONDS = <num>
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
bis10
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
bis10
Beachten Sie, dass
MIN_CLUSTER_COUNT
gleich oder kleiner alsMAX_CLUSTER_COUNT
sein muss:Wenn beide Parameter gleich sind, wird das Warehouse im Modus Maximiert ausgeführt.
Wenn
MIN_CLUSTER_COUNT
kleiner alsMAX_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, oderNULL
: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
oderNULL
festlegen, wird das Warehouse niemals angehalten.
- Standard:
600
(das Warehouse wird nach 10 Minuten Inaktivität automatisch angehalten)
Wichtig
Das Einstellen von
AUTO_SUSPEND
auf0
oderNULL
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 AccelerationFALSE
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
bis100
- 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 vonWAREHOUSE_SIZE
, die nur mitSET
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;
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
undX6LARGE
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;
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;