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;
Copy

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;
Copy

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.

  1. Connectez-vous à Snowsight.

  2. Sélectionnez Admin » Cost Management.

  3. 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 Icône d'horloge (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 Icône Budgets Budgets ou Icône Ressources 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()
);
Copy

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';
Copy

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()
);
Copy

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';
Copy

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');
Copy
+-----------------------------------------------------------------------+
| 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.