Snowflake Warehouses
Depot Snowflake Executors are used to carry out operations in Depot Locations backed by Snowflake. Behind each Executor is a Snowflake Warehouse. A "depot managed" warehouse created on a Snowflake Executor will be automatically created/updated by Depot when your service stack is deployed. (You define a depot-managed warehouse using the SnowflakeWarehouse.depotManaged() function).
You can customise most properties when creating a depot-managed warehouse. Some of the most important configuration will be related to the warehouse size, type, clustering, and query timeout settings. See: SnowflakeWarehouseProps.
Here is an example depot-managed Snowflake type Executor:
const sfkExecutor = new Executor.Snowflake(this, "SnowflakeExecutor", {
environment: depotEnvironment,
name: "sfk-executor",
credentials: {
credentialsSecretArn: "arn:aws:secretsmanager:eu-west-1:123456789012:secret:secret/path/snowflake-connection-VqnxtV",
accountId: "AB12345",
region: "eu-west-1"
},
warehouse: SnowflakeWarehouse.depotManaged({
name: "MY_SERVICE_WAREHOUSE_NAME",
size: "MEDIUM",
maxClusterCount: 2,
autoSuspend: 300,
warehouseType: "STANDARD"
})
});
Keep in mind Snowflake compute credit costs for different Warehouse sizes when designing, testing, and deploying your service. Also note that Snowflake Warehouses can be configured as either STANDARD or SNOWPARK-OPTIMIZED types (use the Depot property warehouseType). SNOWPARK-OPTIMIZED type Warehouses have much higher than STANDARD memory configurations.
Here is some background information direct from Snowflake which gives some insight into how the memory configurations work:
Warehouses double in CPU core counts, memory, and local storage for every increase in size. We don't commit to specific specs b/c we change out the underlying hardware as we see good opportunities to do so... But, generally speaking I think of a xsmall as 16 GB of memory, and then a doubling in size each time you size up.
Snowpark-optimized warehouse are essentially higher memory warehouses. They start at Medium and I believe the medium is roughly 256 GB of memory (compared to ~64 GB for a standard medium warehouse). And then you can size up from there too.