Credit: https://www.istockphoto.com/nl/portfolio/frentusha?mediatype=photography

Cost control using Snowflake Budgets — Part 2

Ramesh Sanap
clouddataplatform
Published in
3 min readOct 12, 2023

--

In Part 1 of Snowflake Budget series blog, I tried to cover different budget scenarios and use case applicable to create Budget Object. In the part 2 of series I will explain more about budget admin / viewer roles and centralized vs decentralized approach and at end, comparing Resource Monitors vs Budget features and what is best fit per use cases. please refer to Part 1 blog here -> https://medium.com/@rameshsanap/cost-control-using-snowflake-budgets-d8140ef43a2f

Budget Allocation and Management

  1. Centralized Approach
  2. Decentralized Approach

Centralized Approach: In centralized approach, the custom budget management is done by single role across all project and environments as shown in below diagram

Centralized Custom Budget Approach

Decentralized Approach: In this approach, each business function in an enterprise manage their own budget allocation and notifications. There is Budget Admin role created having required privileges on APPLY BUDGET only to specific Snowflake resources they own. Consider following diagram

Decentralized Custom Budget Approach

As shown in above diagram, the decentralized approach budget management is divided to roles managing budget independently for own units. here ROLE admin_budget_sales is granted privileges to manage budget only for SALES related projects across environments if all environments are managed within same snowflake account. admin_budget_sales creates two budgets for each project and it is possible that compute is shared between these two projects having storage different and vice-versa. in the scenario, compute and storage are different for each environment as shown.

similarly budget admin role is created for HR and FINANCE functions. The Budget Database and Schema may be created as separate database or schema within each projects database based on approach that is taken.

There approach to manage budget was initially based on Parent Budget -> Child Budget -> Resource Groups -> Resources which is changed to Budget -> Resources to make the management more simplified. However setting alerts at different thresholds and taking action based on quota consumption is not directly available for e.g. SUSPENDING warehouse when reaching 100% consumption which is possible with Resource Monitors. Lets talk about Differences between Budget and Resource Monitors now

Resource Monitor vs Budget

Links used in above table and other reference

References

Summary: Resource Monitor and Budget are entirely different and can help cost controlling and management however it is important to factor the other several performance optimization recommendations suggested by Snowflake. Resource Monitor and Budget can only ensure the credit usage is not going beyond the limit set in these services. Thank you for reading out Part 1 and Part 2 of this series. Stay tuned for more blogs.

--

--