CREATE WAREHOUSE

Erstellt ein neues virtuelles Warehouse im System.

Die anfängliche Erstellung eines Warehouse kann einige Zeit in Anspruch nehmen, um die Computeressourcen bereitzustellen, es sei denn, das Warehouse wird so eingestellt, dass es zunächst in einem SUSPENDED-Status erstellt wird.

Siehe auch:

ALTER WAREHOUSE, DESCRIBE WAREHOUSE, DROP WAREHOUSE, SHOW WAREHOUSES

Syntax

CREATE [ OR REPLACE ] WAREHOUSE [ IF NOT EXISTS ] <name>
       [ [ WITH ] objectProperties ]
       [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
       [ objectParams ]
Copy

Wobei:

objectProperties ::=
  WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }
  WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }
  RESOURCE_CONSTRAINT = { MEMORY_1X | MEMORY_1X_x86 | MEMORY_16X | MEMORY_16X_x86 | MEMORY_64X | MEMORY_64X_x86 }
  MAX_CLUSTER_COUNT = <num>
  MIN_CLUSTER_COUNT = <num>
  SCALING_POLICY = { STANDARD | ECONOMY }
  AUTO_SUSPEND = { <num> | NULL }
  AUTO_RESUME = { TRUE | FALSE }
  INITIALLY_SUSPENDED = { 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

Erforderliche Parameter

name

Bezeichner für das virtuelle Warehouse. Dieser muss für Ihr Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Eigenschaften (objectProperties)

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 = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }

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

Gültige Werte:

Unterstützte -Werte

Synonyme

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:

XSMALL

Bemerkung

  • Die Größen 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.

  • Die größeren Warehouse-Größen 5X-Large und 6X-Large sind generell in allen Amazon Web Services (AWS)- und Microsoft Azure-Regionen verfügbar.

    Größere Warehouse-Größen befinden sich in Regionen für US-Regierungsbehörden in der Vorschau (erfordert FIPS-Unterstützung auf ARM).

RESOURCE_CONSTRAINT = { MEMORY_1X | MEMORY_1X_x86 | MEMORY_16X | MEMORY_16X_x86 | MEMORY_64X | MEMORY_64X_x86 }

Gibt die Speicher- und CPU-Architektur für Snowpark-optimierte Warehouses an. Die folgende Tabelle enthält die gültigen Werte für die Eigenschaft, den verfügbaren Speicher, die CPU-Architektur und die Mindestgröße des Warehouses, die für die Einstellung resource_constraint erforderlich sind:

Gültige Werte:

Wert

Speicher (bis zu)

CPU-Architektur

Erforderliche Warehouse-Mindestgröße

Maximale Warehouse-Größe

MEMORY_1X

16 GB

Standard

XSMALL

X4LARGE

MEMORY_1X_x86

16 GB

x86

XSMALL

X4LARGE

MEMORY_16X

256 GB

Standard

MEDIUM

X6LARGE

MEMORY_16X_x86

256 GB

x86

MEDIUM

X4LARGE

MEMORY_64X

1 TB [1]

Standard

LARGE

X4LARGE

MEMORY_64X_x86

1 TB [1]

x86

LARGE

X4LARGE

Standardwert:

MEMORY_16X

Diese Eigenschaft kann nur festgelegt werden, wenn der WAREHOUSE_TYPE 'SNOWPARK-OPTIMIZED' ist.

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, stets einen Wert größer als 1 festzulegen, um die Hochverfügbarkeit und optimale Leistung eines 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 (gilt nur für Multi-Cluster-Warehouses).

Gültige Werte:

1 bis 10

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

  • 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 }

Legt die Richtlinie für das automatische Starten und Herunterfahren von Clustern in einem Multi-Cluster-Warehouse fest, das im Modus „Automatische Skalierung“ ausgeführt wird.

Gültige Werte:
  • STANDARD: Minimiert Warteschlangen durch Starten von Clustern.

  • ECONOMY: Spart Credits, indem vorzugsweise dafür gesorgt wird, dass aktive Cluster voll ausgelastet bleiben.

Eine ausführlichere Beschreibung finden Sie unter Einstellen der Skalierungsrichtlinie für ein Multi-Cluster-Warehouse.

Standard:

STANDARD

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:

  • Der Hintergrundprozess, der ein Warehouse anhält, wird etwa alle 30 Sekunden ausgeführt. Daher ist die Einstellung dieser Eigenschaft nicht dazu gedacht, eine genaue Kontrolle über das Anhalten von Warehouses zu ermöglichen.

  • Die Einstellung eines Wertes unter 30 oder eines Wertes, der kein Vielfaches von 30 ist, ist zwar zulässig, führt aber aufgrund des 30-Sekunden-Abfrageintervalls für das Anhalten von Warehouses möglicherweise nicht zu dem erwarteten Verhalten.

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

AUTO_RESUME = { TRUE | FALSE }

Gibt an, ob ein Warehouse automatisch fortgesetzt werden soll, wenn ihm eine SQL-Anweisung (z. B. Abfrage) übermittelt 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 }

Gibt an, ob das Warehouse anfangs im Status „Angehalten“ erstellt wird.

Gültige Werte:
  • TRUE: Das Warehouse wird erstellt, aber angehalten.

  • FALSE: Das Warehouse wird ausgeführt, nachdem es erstellt wird.

Standard:

FALSE

RESOURCE_MONITOR = monitor_name

Gibt den Namen 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'

Gibt einen Kommentar für das Warehouse an.

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.

Eigenschaften der Abfragebeschleunigung

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

Optionale Parameter (objectParams)

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.

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.

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.

Anforderungen an die Zugriffssteuerung

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

Berechtigung

Objekt

Anmerkungen

CREATE WAREHOUSE

Konto

Only the SYSADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.

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

  • Durch das Erstellen eines virtuellen Warehouses wird es automatisch als das Warehouse festgelegt, das von der aktuellen Sitzung verwendet wird (entspricht der Verwendung des Befehls USE WAREHOUSE für das Warehouse).

    Um das für die aktuelle Sitzung verwendete Warehouse zu ändern, führen Sie nach der CREATE WAREHOUSE-Anweisung eine explizite USE WAREHOUSE-Anweisung aus. Erstellen Sie z. B. das Warehouse my_wh, aber verwenden Sie weiterhin das aktuelle Warehouse, nicht my_wh, um zusätzliche Anweisungen auszuführen:

    SET current_wh_name = (SELECT CURRENT_WAREHOUSE());
    
    CREATE OR REPLACE WAREHOUSE my_wh
      WAREHOUSE_SIZE = 'XSMALL';
    
    USE WAREHOUSE IDENTIFIER($current_wh_name);
    
    Copy
  • 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.

  • Die Verwendung von OR REPLACE ist gleichbedeutend mit der Verwendung von DROP WAREHOUSE auf dem vorhandenen Warehouse und dem anschließenden Erstellen eines neuen Warehouses mit demselben Namen.

    CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

    Alle Abfragen, die gerade auf dem gelöschten Warehouse ausgeführt werden, werden abgebrochen.

  • Das erstmalige Erstellen und das Fortsetzen eines Snowpark-optimierten virtuellen Warehouses können länger dauern als bei Standard-Warehouses.

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

Abrechnung und Preise

Die folgende Tabelle zeigt die Snowflake Credits, die pro Stunde für Snowpark-optimierte Warehouses berechnet werden.

Credits pro Stunde

Ressourceneinschränkung

XS

S

M

L

XL

2XL

3XL

4XL

5XL

6XL

MEMORY_1X

1,00

2,00

4,00

8,00

16,00

32,00

64,00

128,00

MEMORY_1X_X86

1,10

2,20

4,40

8,80

17,60

35,20

70,40

140,80

MEMORY_16X

6,00

12,00

24,00

48,00

96,00

192,00

384,00

768,00

MEMORY_16X_X86

6,25

12,50

25,00

50,00

100,00

200,00

MEMORY_64X

15,00

30,00

60,00

120,00

240,00

MEMORY_64X_x86

16,00

32,00

64,00

128,00

256,00

Beispiele

Erstellen Sie ein extra großes Warehouse:

CREATE OR REPLACE WAREHOUSE my_wh WITH WAREHOUSE_SIZE='X-LARGE';
Copy

Erstellen Sie ein großes Warehouse im angehaltenen Status:

CREATE OR REPLACE WAREHOUSE my_wh WAREHOUSE_SIZE=LARGE INITIALLY_SUSPENDED=TRUE;
Copy

Erstellen Sie ein Snowpark-optimiertes X-Large-Warehouse mit dem Namen so_warehouse mit 256-GB-Speicher für Snowpark-Workloads, die x86 Python erfordern:

CREATE WAREHOUSE so_warehouse WITH
  WAREHOUSE_TYPE = 'SNOWPARK-OPTIMIZED'
  WAREHOUSE_SIZE = xlarge
  RESOURCE_CONSTRAINT = 'MEMORY_16X_x86';
Copy