Surveiller les budgets¶
Cette rubrique décrit comment surveiller les dépenses budgétaires et identifier le budget qui suit l’utilisation du crédit d’une ressource spécifique.
Création d’un rôle personnalisé pour le suivi des budgets¶
Vous pouvez déléguer la surveillance des budgets en créant un rôle personnalisé qui peut être utilisé par des utilisateurs non administrateurs pour surveiller les budgets.
Créer un rôle personnalisé pour surveiller le budget du compte¶
Vous pouvez créer un rôle personnalisé pour permettre aux utilisateurs qui ne sont pas administrateurs du compte de surveiller le budget du compte. Pour obtenir la liste complète des privilèges et des rôles qui doivent être accordés à un rôle pour contrôler le budget du compte, voir Rôles et privilèges Budgets.
Exemple¶
Note
Seul un administrateur de compte peut exécuter les instructions de cet exemple.
Par exemple, créez le rôle account_budget_monitor
et donnez-lui la possibilité de voir l’utilisation du crédit pour le budget du compte :
USE ROLE ACCOUNTADMIN;
CREATE ROLE account_budget_monitor;
GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_VIEWER TO ROLE account_budget_monitor;
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE account_budget_monitor;
Créer un rôle personnalisé pour surveiller un budget personnalisé¶
Vous pouvez créer un rôle personnalisé pour permettre aux utilisateurs qui ne sont pas administrateurs de comptes de contrôler les budgets personnalisés. Pour obtenir la liste complète des privilèges et des rôles qui doivent être accordés à un rôle pour assurer le suivi d’un budget personnalisé, voir Rôles et privilèges Budgets.
Exemple¶
Note
Seul un propriétaire de budget (un rôle avec le privilège OWNERSHIP) peut exécuter les instructions dans cet exemple.
Utilisez le rôle de propriétaire du budget pour accorder au rôle personnalisé budget_monitor
la possibilité de contrôler le budget my_budget
dans le schéma budgets_db.budgets_schema
:
USE ROLE custom_budget_owner;
GRANT USAGE ON DATABASE budgets_db TO ROLE budget_monitor;
GRANT USAGE ON SCHEMA budget_db.budgets_schema TO ROLE budget_monitor;
GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!VIEWER
TO ROLE budget_monitor;
GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_monitor;
Surveillance des budgets¶
Vous pouvez surveiller des budgets en utilisant Snowsight ou SQL.
Utiliser l”Snowsight pour contrôler les budgets¶
Vous pouvez visualiser les dépenses budgétaires actuelles et historiques en utilisant la page Budgets dans Snowsight.
Note
Seul un utilisateur ayant le rôle ACCOUNTADMIN ou un utilisateur auquel ont été accordés les privilèges et le rôle requis peut contrôler les budgets à l’aide de Snowsight.
Pour plus d’informations sur l’utilisation d’un rôle de compte personnalisé pour surveiller le budget du compte, voir Créer un rôle personnalisé pour surveiller le budget du compte.
Pour plus d’informations sur l’utilisation d’un rôle de compte personnalisé pour contrôler les budgets personnalisés, voir Créer un rôle personnalisé pour surveiller un budget personnalisé.
Connectez-vous à Snowsight.
Sélectionnez Admin » Cost Management.
Sélectionnez Budgets.
Dans la vue Current Month d’un budget, vous pouvez examiner l’utilisation du crédit par jour jusqu’au jour en cours. Vous pouvez voir si vous risquez de dépasser votre budget pour le mois. Le graphique à barres continue jusqu’à la fin du mois avec votre utilisation du crédit projetée basée sur votre utilisation du crédit réelle pour le mois. La ligne Spending limit indique la limite de dépenses à partir de laquelle une notification de budget est déclenchée.
Sélectionnez (mois à afficher) pour filtrer la vue par Current Month ou des périodes plus longues.
Vous pouvez comparer Spend (utilisation actuelle du crédit) à Interval (temps restant dans le mois en cours) pour voir si vos dépenses dépassent votre budget mensuel.
Vous pouvez filtrer la vue en sélectionnant Budgets ou
Resources :
Vous pouvez sélectionner un budget personnalisé dans la vue Budgets pour obtenir des détails sur un budget spécifique.
Note
La liste Service Type pour un budget personnalisé comprend un type Unused Resources. Ce type de service est affiché lorsqu’un objet dans un budget n’a pas de données d’utilisation du crédit à afficher. Cela peut se produire si l’objet n’a pas d’utilisation du crédit pour les coûts de calcul, ou si vous avez récemment ajouté un objet à un budget et que la tâche d’arrière-plan sans serveur n’a pas encore été exécutée.
Dans la vue Resources, vous pouvez filtrer et trier par Service Type, objet Name et Credit Usage.
Utiliser les commandes SQL pour contrôler les budgets¶
Pour surveiller le budget du compte, vous devez disposer des privilèges requis. Pour plus d’informations, voir Créer un rôle personnalisé pour surveiller le budget du compte.
Utilisez le rôle account_budget_monitor
pour voir l’historique des dépenses pour le budget du compte :
USE ROLE account_budget_monitor;
CALL snowflake.local.account_root_budget!GET_SPENDING_HISTORY(
TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Vous pouvez surveiller l’historique des dépenses par type de service. Pour voir l’historique des dépenses de la fonctionnalité d’optimisation de la recherche sans serveur pour le budget du compte au cours d’une période de huit mois, exécutez les instructions suivantes :
USE ROLE account_budget_monitor;
SELECT *
FROM table(snowflake.local.account_root_budget!GET_SERVICE_TYPE_USAGE_V2(
'2025-05', '2025-12'))
WHERE service_type = 'SEARCH_OPTIMIZATION';
Pour surveiller un budget personnalisé, vous devez disposer des privilèges requis. Pour plus d’informations, voir Créer un rôle personnalisé pour surveiller un budget personnalisé.
Utilisez le rôle budget_monitor
pour voir l’historique des dépenses pour un budget personnalisé. Par exemple, pour voir l’historique des dépenses du budget personnalisé na_finance_budget
dans le schéma budgets_db.budgets_schema
, exécutez les instructions suivantes :
USE ROLE budget_monitor;
CALL budgets_db.budgets_schema.na_finance_budget!GET_SPENDING_HISTORY(
TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Vous pouvez surveiller l’historique des dépenses par type de service. Par exemple, pour consulter l’historique des dépenses pour les vues matérialisées pour une période de un an incluses dans le budget, exécutez les instructions suivantes :
USE ROLE budget_monitor;
SELECT *
FROM table(budgets_db.budgets_schema.na_finance_budget!GET_SERVICE_TYPE_USAGE_V2(
'2025-05', '2025-12'))
WHERE service_type = 'MATERIALIZED_VIEW';
Pour plus d’informations, voir Méthodes Budgets.
Identification des budgets qui suivent une ressource¶
Si vous souhaitez déterminer quels budgets suivent une ressource, vous pouvez appeler la fonction SYSTEM$SHOW_BUDGETS_FOR_RESOURCE.
Par exemple :
SELECT SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'my_db.my_schema.my_table');
+-----------------------------------------------------------------------+
| SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'MY_DB.MY_SCHEMA.MY_TABLE') |
|-----------------------------------------------------------------------|
| [BUDGETS_DB.BUDGETS_SCHEMA.MY_BUDGET] |
+-----------------------------------------------------------------------+
La fonction renvoie le budget auquel la ressource a été ajoutée. Elle inclut les budgets qui incluent la ressource pour l’une des raisons suivantes :
La ressource a été ajoutée directement au budget.
La ressource possède la combinaison balise/valeur qui a été ajoutée au budget.
La ressource appartient à un objet (par exemple, une base de données) qui a été ajouté au budget.