Kategorien:

DDL für Warehouses und Ressourcenmonitore

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, 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> UNSET { <property_name> | <param_name> } [ , ... ]

Wobei:

objectProperties ::=
  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>
  AUTO_RESUME = TRUE | FALSE
  RESOURCE_MONITOR = <monitor_name>
  COMMENT = '<string_literal>'
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 neuer_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 Eigenschafte bzw. Parameter an, die für das Warehouse festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder neue Zeilen):

WAREHOUSE_SIZE = Zeichenfolgenkonstante

Gibt die Größe des virtuellen Warehouses an. Die Größe bestimmt über die Anzahl der Computeressourcen in jedem Cluster im Warehouse und damit über 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

  • Um einen Wert zu verwenden, der einen Bindestrich enthält (z. B. '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.

  • Die größeren Warehouse-Größen 5X-Large und 6X-Large sind derzeit in der Vorschau und nur auf Amazon Web Services (AWS) verfügbar. In der Vorschau kann die Bereitstellung dieser größeren Warehouses etwas länger dauern.

WAIT_FOR_COMPLETION = FALSE | TRUE

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
  • FALSE: Der Befehl ALTER WAREHOUSE kehrt sofort zurück, bevor die Größenänderung des Warehouses abgeschlossen ist.

  • TRUE: Der Befehl ALTER WAREHOUSE wird blockiert, bis 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 = Zahl

Gibt die maximale Anzahl von Warehouses für ein Multi-Cluster-Warehouse an. Für ein einzelnes 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 (einzelnes 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 für den unwahrscheinlichen Fall sicherzustellen, dass ein einzelnes Warehouse ausfällt.

MIN_CLUSTER_COUNT = Zahl

Gibt die minimale Anzahl von Warehouses 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 Warehouses 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 = Zahl | NULL

Gibt die Anzahl der Sekunden von 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. Wenn 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 = RM-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 = 'Zeichenfolgenliteral'

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

MAX_CONCURRENCY_LEVEL = Zahl

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

  • Bei einem einzelnen 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 Warehouses 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 = Zahl

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 = Zahl

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.

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:

  • Eigenschaftsname

  • Parametername

Sie können mehrere Eigenschaften/Parameter mit einer einzigen ALTER-Anweisung zurücksetzen; jedoch müssen einzelne Eigenschaften/Parameter 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.

Nutzungshinweise

  • Ein Warehouse muss nicht angehalten werden, um seine Eigenschaften (einschließlich Größe) festzulegen oder zu ändern.

  • 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“.

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;