Snowflake Data Cloud budgets are used for monitoring and notification of Snowflake credit usage for specific objects e.g. virtual warehouses, databases, and tables. This also means that they are more granular than Resource Monitors in terms of what is tracked.

  • Budgets can be configured using Snowsight or via SQL. In addition to custom budget configuration, an account level budget can be configured
  • The account budget monitors spending for all supported objects in a given Snowflake account
  • Each budget itself will incur costs, including the running of serverless background tasks (_MEASUREMENT_TASK & _BACKFILL_TASK).
  • Unlike customised budgets, the account level budget can’t be dropped. This means that while running it will incur credit usage.
  • Interestingly budgets come with a variety of methods, and one such method is the DEACTIVATE() method. So if the account level budget is not being used, to avoid incurring the above overheads, we can deactivate the account level budget using:
CALL snowflake.local.account_root_budget!DEACTIVATE();

The status of the account budget can also be checked using the GET_CONFIG method:

CALL snowflake.local.account_root_budget!GET_CONFIG();

If the account budget is deactivated, the resultset will show an IS_ACTIVE value of FALSE.

Checking the status of the Account Budget. Credit: Dan Galavan.

So while the account level budget can be used to monitor the entire account, if it’s not being used, we can deactivate it to save some credits.

Happy budgeting!

© Dan Galavan 2024