# WAREHOUSE

Config path: `/warehouse.yaml`

Example:

```yaml
task_wh:
  size: XSMALL
  auto_suspend: 60
```

```yaml
multi_custer_wh:
  size: SMALL
  generation: 2
  min_cluster_count: 1
  max_cluster_count: 4
  auto_suspend: 60
```

## Schema

* *{key} (ident) -* warehouse name
* {value} (dict)
  * <mark style="background-color:red;">**size**</mark> (str) - warehouse size
  * **type** (str) - warehouse [type](https://docs.snowflake.com/en/user-guide/warehouses.html)
  * **generation** (str) - (default: "1")
  * **min\_cluster\_count** (int) - (default: 1)
  * **max\_cluster\_count** (int) - (default: 1)
  * **scaling\_policy** (str) - (default: STANDARD)
  * **auto\_suspend** (int) - number of idle seconds before warehouse is automatically suspended (default: 60)
  * **resource\_monitor** (ident) - name of resource monitor managed by [SnowDDL config](https://docs.snowddl.com/basic/yaml-configs/resource-monitor)
  * **global\_resource\_monitor** (ident) - name of resource monitor created externally
  * **enable\_query\_acceleration** (bool) - enable [query acceleration service](https://docs.snowflake.com/en/user-guide/query-acceleration-service.html)
  * **query\_acceleration\_max\_scale\_factor** (int) - (default: 8)
  * **resource\_constraint** (str) - (default `MEMORY_X16`  for Snowpark-optimized warehouses)
  * **warehouse\_params** (dict)
    * *{key}* (ident) - warehouse param name
    * *{value}* (bool, float, int, str) - warehouse param value
  * **comment** (str)

## Usage notes

1. Values for `size` are available in [CREATE WAREHOUSE](https://docs.snowflake.com/en/sql-reference/sql/create-warehouse.html#optional-properties-objectproperties) documentation.
2. Scaling policy and multi-cluster warehouses require [Enterprise Edition or higher](https://docs.snowflake.com/en/user-guide/intro-editions.html).
3. `resource_monitor` can only be applied by user with `ACCOUNTADMIN` role.
4. All warehouses are created with `INITIALLY_SUSPENDED` and `AUTO_RESUME` enabled.
5. When creating Snowpark-optimized warehouse, please pay attention to `resource_constraint` values depending on warehouse size. Default is `MEMORY_16X`, which requires at least `MEDIUM` warehouse size. For small warehouse sizes you should set `MEMORY_1X` or similar constraint explicitly.

## Links

* [CREATE WAREHOUSE](https://docs.snowflake.com/en/sql-reference/sql/create-warehouse.html)
* [ALTER WAREHOUSE](https://docs.snowflake.com/en/sql-reference/sql/alter-warehouse.html)
* [SHOW WAREHOUSES](https://docs.snowflake.com/en/sql-reference/sql/show-warehouses.html)
* [Parser & JSON Schema (GitHub)](https://github.com/littleK0i/SnowDDL/blob/master/snowddl/parser/warehouse.py)
