Surveillance de l’utilisation du crédit à l’aide de Budgets

Budgets permet de surveiller et de notifier au niveau du compte l’utilisation du crédit Snowflake pour un groupe d’objets Snowflake spécifiques.

Vue d’ensemble de Budgets

Un budget définit une limite de dépenses mensuelles pour les coûts de calcul </user-guide/cost-understanding-compute> d’un compte Snowflake ou d’un groupe personnalisé d’objets Snowflake. Lorsqu’il est prévu que la limite de dépenses soit dépassée, une notification est envoyée. Vous pouvez configurer le budget pour qu’il envoie cette notification à une liste d’adresses e-mail, à une file d’attente fournie par un service Cloud (Amazon SNS, Azure Event Grid ou Google Cloud PubSub) ou à un webhook pour un système tiers (par exemple, Slack, Microsoft Teams ou PagerDuty).

Budget du compte et budgets personnalisés

Le budget du compte contrôle les dépenses pour tous les objets pris en charge par dans le compte.

Vous pouvez également créer un budget personnalisé pour surveiller les limites de dépenses d’un groupe spécifique d’objets pris en charge.

Pour les deux types de budgets, vous devez définir la limite de dépenses et spécifier comment vous souhaitez recevoir des notifications.

Pour commencer à utiliser les budgets dans Snowflake, activez le budget du compte.

Limite de dépenses et intervalle de temps

La limite de dépenses est exprimée en crédits Snowflake et n’est utilisée qu’à des fins d’alerte et de notification. La limite de dépenses est fixée pour un intervalle de temps d’un mois civil.

L’intervalle de temps commence à 12:00AM UTC le premier jour du mois et se termine à 11:59PM UTC le dernier jour du mois. Si un budget est créé après le premier jour du mois, le premier intervalle de suivi correspond à la période allant jusqu’au dernier jour du mois en cours, puis il est réinitialisé le premier du mois suivant.

Si vous activez votre budget de compte après le premier jour du mois, les données du début du mois sont rétablies et utilisées pour déterminer si vous allez dépasser votre limite de dépenses pour le mois.

Si vous créez un budget personnalisé après le premier jour du mois, les données historiques du mois ne sont pas remplies. Les prévisions de dépenses futures sont basées sur l’utilisation du crédit dans les jours qui suivent l’activation du budget.

Note

Si vous créez un budget personnalisé après le premier jour du mois, vous risquez de dépasser votre budget pour le premier mois. Dans un mois partiel, l’utilisation du crédit avant la création du budget n’est pas compensée pour les budgets personnalisés et peut entraîner des prévisions incorrectes. Les mois suivants permettront de prévoir correctement l’utilisation du crédit sur la base de l’historique des dépenses.

Objets pris en charge

Chaque objet de la liste des objets pris en charge contribue à la limite de dépenses pour le budget du compte. Pour un budget personnalisé, vous pouvez sélectionner un groupe d’objets spécifiques à surveiller. Lorsque vous ajoutez un objet à un budget personnalisé, le budget surveille tous les coûts de calcul pour l’objet, y compris les opérations de maintenance en arrière-plan et les fonctions sans serveur. Par exemple, si vous ajoutez une table à un budget personnalisé et que la table a activé le clustering automatique, le budget surveille l’utilisation du crédit pour la maintenance en arrière-plan du clustering automatique.

Un budget peut surveiller les objets Snowflake suivants :

Objet

Coûts surveillés

Alertes

Les alertes sans serveur sont surveillées par le budget du compte. Pour contrôler l’utilisation du crédit pour une alerte qui s’exécute à l’aide d’un entrepôt géré par l’utilisateur, vous devez ajouter l’entrepôt au budget. Pour de plus amples informations sur les coûts des alertes, voir Compréhension du coût des alertes.

Apps . (Snowflake Native Apps)

Lorsque vous ajoutez une Snowflake Native App à un budget, tous les objets qui consomment des crédits et qui sont créés et détenus par l’application sont automatiquement ajoutés au budget. Il s’agit notamment des entrepôts et des pools de calcul Snowpark Container Services qui appartiennent à l’app. Les entrepôts et les pools de calcul qui sont partagés ne sont pas suivis automatiquement par le budget, bien que vous puissiez les ajouter manuellement.

Vous ne pouvez pas ajouter des objets créés et détenus par une application à un budget distinct. Vous pouvez ajouter les entrepôts et les pools de calcul qui sont partagés à un budget séparé.

Pour déterminer si un entrepôt ou un pool de calcul appartient à une app, vérifiez les points suivants :

  • Pour les entrepôts, exécutez la commande SHOW WAREHOUSES. Si la valeur de la colonne owner_role_type est APPLICATION, l’entrepôt appartient à une Snowflake Native App.

  • Pour les pools de calcul, exécutez la commande SHOW COMPUTE POOLS. Si la valeur de la colonne application n’est pas NULL, le pool de calcul appartient à une Snowflake Native App.

Pool de calcul

Utilisation du pool de calcul pour Snowpark Container Services Pour plus d’informations, voir Calculer le coût du pool de calcul.

Bases de données

Lorsque vous ajoutez une base de données à un budget, tous les objets pris en charge que la base de données contient sont également ajoutés automatiquement. Le budget surveille l’utilisation du crédit pour les objets et les fonctions sans serveur suivants :

  • Objets de schéma pris en charge, tels que décrits ci-dessus.

  • Réplication pour les bases de données secondaires (répliques).

    Note

    Les coûts de réplication des bases de données secondaires qui sont répliquées dans un groupe de réplication ou de basculement ne peuvent être contrôlés que par le budget de compte.

Vues matérialisées

Maintenance en arrière-plan de la vue matérialisée. Pour plus d’informations, voir Coût des vues matérialisées.

Schémas

Lorsque vous ajoutez un schéma à un budget, tous les objets pris en charge que le schéma contient sont également ajoutés automatiquement. Le budget surveille l’utilisation du crédit pour les objets de schéma comme décrit ci-dessus.

Canaux

Consommation de ressources pour le chargement de données à l’aide de Snowpipe. Pour plus d’informations, voir Coûts Snowpipe.

Tables

Opérations de maintenance en arrière-plan pour le clustering automatique et l’optimisation de la recherche si elles sont activées sur la table.

Tâches

Les tâches sans serveur sont surveillées par un budget personnalisé. Pour surveiller l’utilisation du crédit pour une tâche qui s’exécute à l’aide d’un entrepôt géré par l’utilisateur, vous devez ajouter l’entrepôt au budget. Pour plus d’informations, voir Coûts des tâches.

Entrepôts virtuels

Ressources de calcul pour l’exécution de requêtes, l’interface Web et d’autres fonctions (voir Utilisation du crédit d’entrepôt virtuel), les tâches sans serveur et le calcul des services Cloud.

Fonctionnalités sans serveur prises en charge

La fonction Budgets surveille l’utilisation du crédit par des fonctionnalités sans serveur pour les objets pris en charge contenus dans un budget. Le tableau suivant répertorie les fonctions sans serveur et la prise en charge des comptes et des budgets personnalisés pour la surveillance de l’utilisation des crédits.

Note

La prise en charge du budget de compte pour les fonctions sans serveur dépend de la disponibilité des types de service dans la vue Account Usage Vue METERING_HISTORY.

Fonctionnalité sans serveur

Budget du compte

Budget personnalisé

Objet

AI_SERVICES

AUTO_CLUSTERING

Table

COPY_FILES

DATA_QUALITY_MONITORING

Table

HYBRID_TABLE_REQUESTS

MATERIALIZED_VIEW

Vue matérialisée

PIPE

Canal

QUERY_ACCELERATION

QUERY_ACCELERATION_READER

REPLICATION

Base de données

SEARCH_OPTIMIZATION

Table

SERVERLESS_ALERTS

Alerte

SERVERLESS_TASK

Tâche

SNOWPARK_CONTAINER_SERVICES

Pool de calcul

SNOWPIPE_STREAMING

Table

WAREHOUSE_METERING

Entrepôt

WAREHOUSE_METERING_READER

Entrepôt

Notifications Budgets

Un budget envoie une notification d’alerte quotidienne lorsque les dépenses courantes sont en passe de dépasser la limite de dépenses, sur la base de prévisions chronologiques. Les notifications commencent lorsque les dépenses prévues dépassent de plus de 10 % la limite de dépenses.

Voici un exemple de notification envoyée par e-mail :

Exemple d'e-mail de notification de budgets

Note

Les notifications par e-mail sont traitées par les déploiements de Snowflake sur Amazon Web Services (AWS), à l’aide de AWS Simple Email Service (SES). Le contenu d’un e-mail envoyé à l’aide d’AWS peut être conservé par Snowflake pendant un maximum de trente jours afin de gérer la livraison du message. Après cette période, le contenu du message est supprimé.

Pour recevoir des notifications d’alerte automatiques, vous devez effectuer les opérations suivantes, dans le cadre de l’activation du budget du compte et de la création d’un budget personnalisé :

  • Fixer une limite de dépenses pour le budget.

  • Indiquez comment recevoir des notifications concernant le budget.

Rôles et privilèges Budgets

Pour permettre à un rôle personnalisé de votre compte de travailler avec des budgets, vous pouvez lui accorder les rôles et privilèges suivants.

Rôles d’application pour gérer le budget du compte

Vous pouvez attribuer les rôles d’application suivants à un rôle personnalisé dans votre compte pour surveiller ou gérer le budget du compte :

Rôle de l’application

Description

BUDGET_VIEWER

Permet à un rôle de voir les données d’utilisation du budget et de dresser la liste des ressources dans le budget.

BUDGET_ADMIN

Permet à un rôle d’activer ou de désactiver le budget du compte et de modifier les propriétés d’un budget, y compris la limite de dépenses, les intégrations de notification à utiliser, la liste des adresses e-mail destinataires des notifications et le paramètre de mise en sourdine des notifications.

Outre le rôle d’application, d’autres privilèges doivent être accordés pour permettre à un rôle personnalisé de surveiller ou de gérer le budget de compte. Pour plus d’informations, voir Rôles et privilèges requis.

Rôles d’instance pour gérer les budgets personnalisés

Chaque budget personnalisé a des rôles d’instance que vous pouvez accorder à d’autres rôles pour voir ou modifier le budget :

Rôle de l’instance

Description

VIEWER

Permet à un rôle de consulter les données relatives à l’utilisation du budget.

ADMIN

Permet à un rôle de modifier les propriétés d’un budget, notamment la limite de dépenses, les intégrations de notification à utiliser, la liste des adresses e-mail devant recevoir des notifications, le paramètre de mise en sourdine des notifications et les objets du groupe.

Outre le rôle d’instance, d’autres privilèges doivent être accordés pour permettre à un rôle personnalisé de créer, surveiller ou modifier un budget personnalisé. Pour plus d’informations, voir Rôles et privilèges requis.

Rôles et privilèges requis

Outre les rôles d’application ou d’instance, les privilèges suivants doivent être accordés à un rôle personnalisé pour surveiller ou gérer les budgets :

Privilège ou rôle

Type de budget

Créer

Gérer

Moniteur

Remarques

USAGE_VIEWER

Les deux

Accordez le rôle de la base de données Snowflake USAGE_VIEWER au rôle personnalisé.

USAGE

Personnalisés

Attribuez le privilège USAGE sur la base de données qui contient le budget personnalisé.

USAGE

Personnalisés

Attribuez le privilège USAGE au schéma qui contient le budget personnalisé.

SNOWFLAKE.BUDGET_CREATOR

Personnalisés

Attribuez ce rôle de base de données au rôle personnalisé pour lui permettre de créer des budgets personnalisés.

CREATE SNOWFLAKE.CORE.BUDGET

Personnalisés

Attribuez ce privilège au schéma qui contiendra le budget personnalisé.

APPLYBUDGET

Personnalisés

Doit être attribué pour chaque objet à ajouter ou à retirer d’un budget personnalisé.

USAGE

Personnalisés

Pour ajouter ou supprimer des objets de schéma d’un budget personnalisé, ce privilège doit être accordé sur la base de données et le schéma qui contient l’objet.

Pour plus d’informations et d’exemples, consultez les sections suivantes :

Limitations

Les limitations suivantes s’appliquent à Budgets :

  • Les instances de la classe BUDGET ne peuvent pas être répliquées dans les comptes cibles.

  • Un compte peut contenir un maximum de 100 budgets personnalisés.

  • Actuellement, Budgets ne prend pas en charge les coûts de surveillance pour Tables hybrides.

  • Les paramètres de niveau compte suivants doivent être désactivés ou définis sur leur valeur par défaut :

    • AUTOCOMMIT doit être non défini ou défini sur TRUE.

      Si ce paramètre est défini sur FALSE, l’activation d’un budget peut échouer ou l’utilisation peut ne pas être suivie correctement.

    • TIMESTAMP_INPUT_FORMAT doit être non défini ou défini sur AUTO.

      Si ce paramètre n’est pas défini sur AUTO, l’utilisation peut ne pas être suivie correctement.

    Avant d’activer les budgets, vérifiez les valeurs de ces paramètres en exécutant la commande SHOW PARAMETERS :

    SHOW PARAMETERS LIKE 'AUTOCOMMIT' IN ACCOUNT;
    
    Copy
    SHOW PARAMETERS LIKE 'TIMESTAMP_INPUT_FORMAT' IN ACCOUNT;
    
    Copy

    Note

    Ces paramètres doivent être définis au niveau du compte. La définition des paramètres à un niveau inférieur (par exemple, au niveau de la session) n’a pas d’effet sur l’activation des budgets ou le suivi de l’utilisation.