Cost control using Snowflake Budgets — Part 2
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
- Centralized Approach
- 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
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
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
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.