'Snowflake - Best Practices for separate warehouses for separate processes?

I was curious if anyone has separated out their warehouses per process in Snowflake or if there are any best practices out there for it? For example, creating a separate warehouse for elt/etl loading, development queries (to understand the data and model it) and reporting?

I understand you can scale-up/out as needed per workloads but wondering if separating out the warehouses will benefit in understanding the usage of each process and help with properly sizing for a distinct process.

I am planning having separate warehouses for environments (dev, qa, prod).

Example: If staging/loading only requires a xsmall size warehouse but reporting is requiring a medium size warehouse



Solution 1:[1]

Stack Overflow is not the best place for discussion of best practices, but you can start here:

Which includes an answer to your main question:

  • Separate Warehouse for Data Loading and Query Execution

As a performance point of view, it is always better to create a separate warehouse for your data loading and query execution. Start with smaller size and based on the performance, you can manually resize the warehouse.

You can also go to reddit for more of a conversation (https://reddit.com/r/snowflake), and come back to Stack Overflow with any specific questions for problems we can reproduce and solve.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Felipe Hoffa