<budget_name> !SET_RESOURCE_TAGS

Ajoute des balises à un budget personnalisé afin que les ressources qui sont balisées avec les paires balises-valeurs spécifiées soient incluses dans le budget.

Vous pouvez configurer le budget de manière à ce qu’une ressource soit incluse si elle est balisée avec l’une des balises spécifiées (UNION) ou la configurer pour qu’une ressource 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_RESOURCE_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 de ressources 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.

  • Snowflake ne commence pas à afficher l’utilisation des ressources ajoutées tant que le budget n’est pas actualisé, ce qui peut prendre jusqu’à six heures. Si vous souhaitez voir l’utilisation plus tôt, exécutez la méthode REFRESH_USAGE.

  • 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

Utiliser le budget my_budget pour suivre tous les objets qui sont balisés avec la combinaison balise-valeur``cost_center = “sales”`` ou la combinaison balise-valeur``team_tag = “finance”``.

CALL budget_db.budget_schema.my_budget!SET_RESOURCE_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');

Utiliser le budget my_budget pour suivre tous les objets qui sont balisés à la fois avec cost_center = 'sales' et``team_tag = “finance”``.

CALL budget_db.budget_schema.my_budget!SET_RESOURCE_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');