<budget_name> !SET_USER_TAGS

Ajoute des balises d’utilisateur à un budget personnalisé. La consommation par une ressource partagée n’est prise en compte dans la limite de dépenses du budget que si la ressource est exploitée par un utilisateur ayant les paires balise-valeur spécifiées. Pour plus d’informations, voir Utilisation des budgets pour les fonctionnalités d’AI (ressources partagées).

Vous pouvez configurer le budget de manière à ce que l’utilisation soit incluse si un utilisateur est balisé avec l’une des balises spécifiées (UNION) ou le configurer pour qu’une utilisation ne soit incluse que si elle est balisée avec toutes les balises spécifiées (INTERSECTION).

L’appel de la méthode remplace toutes les balises existantes qui ont été ajoutées au budget.

Syntaxe

<budget_name>!SET_USER_TAGS( <tag-pairs>, <operation_mode> )

Arguments

tag_pairs

Une valeur ARRAY qui spécifie les références des balises et les valeurs des balises.

Une référence de balise est une représentation sérialisée sous forme de chaîne qui se résout en une balise. Cette chaîne est la sortie de la fonction SYSTEM$REFERENCE.

Chaque élément du tableau doit être un tableau contenant une référence de balise et une valeur de balise. Par exemple :

[
  [ 'ENT_REF_TAG_10382726315710_8A8626AE765E2' , 'finance' ],
  ...
]
operation_mode

Spécifie la logique de correspondance à utiliser pour les balises spécifiées. Vous pouvez spécifier l’une des valeurs suivantes :

  • 'UNION' : L’utilisation par un utilisateur est incluse dans le budget si l’utilisateur est balisé avec n’importe quelle des paires balise-valeur spécifiées. Cela correspond à la logique OR.

  • 'INTERSECTION' : L’utilisation d’un utilisateur n’est incluse dans le budget que si l’utilisateur est balisé avec toutes les paires balise-valeur spécifiées. Cela correspond à la logique AND.

Renvoie

Renvoie une valeur VARCHAR qui indique si les balises ont été définies avec succès ou non sur le budget.

Si les balises n’ont pas pu être définies sur le budget, la fonction renvoie un message d’erreur.

Exigences en matière de contrôle d’accès

Les privilèges et rôles suivants sont nécessaires pour appeler cette méthode pour un budget personnalisé :

  • Rôle d’instance ADMIN <label-budgets_instance_roles> pour l’instance de budget.

  • Privilège USAGE sur la base de données et le schéma contenant l’instance de budget.

  • Privilège USAGE sur la base de données et le schéma contenant chaque balise.

  • Privilège APPLYBUDGET sur chaque balise ajoutée.

Pour plus d’informations, voir Rôles et privilèges Budgets.

Notes sur l’utilisation

  • Vous ne pouvez définir des balises que sur des budgets personnalisés.

  • Par défaut, vous pouvez ajouter jusqu’à 20 balises utilisateur au budget. Pour augmenter cette limite, contactez le support Snowflake.

  • Pour vérifier les résultats de la méthode, appelez la méthode GET_BUDGET_SCOPE.

  • Le fait d’appeler cette méthode ne renvoie pas l’objet. Pour cette raison, vous ne pouvez pas utiliser le chaînage de méthodes pour appeler une autre méthode sur la valeur de retour de cette méthode. Au lieu de cela, appelez chaque méthode dans une instruction SQL distincte.

Exemples

Utilisez le budget my_budget pour suivre la consommation lorsque les ressources partagées sont mises en œuvre par des utilisateurs balisés avec l’une ou l’autre des deux combinaisons suivantes : la combinaison balise-valeur cost_center = 'sales' ou la combinaison balise-valeur team_tag = 'finance'.

CALL budget_db.budget_schema.my_budget!SET_USER_TAGS(
  [
      [(SELECT SYSTEM$REFERENCE('TAG', 'cost_mgmt_db.tags.cost_center', 'SESSION', 'APPLYBUDGET')), 'sales'],
      [(SELECT SYSTEM$REFERENCE('TAG', 'cost_mgmt_db.tags.team_tag', 'SESSION', 'APPLYBUDGET')), 'finance']
  ],
  'UNION');

Utilisez le budget my_budget pour suivre la consommation lorsque les ressources partagées sont mises en œuvre par des utilisateurs avec les deux balises suivantes : cost_center = 'sales' et team_tag = 'finance'.

CALL budget_db.budget_schema.my_budget!SET_USER_TAGS(
  [
      [(SELECT SYSTEM$REFERENCE('TAG', 'cost_mgmt_db.tags.cost_center', 'SESSION', 'APPLYBUDGET')), 'sales'],
      [(SELECT SYSTEM$REFERENCE('TAG', 'cost_mgmt_db.tags.team_tag', 'SESSION', 'APPLYBUDGET')), 'finance']
  ],
  'INTERSECTION');