<budget_name>!SET_USER_TAGS¶
Fügt Benutzer-Tags zu einem kundenspezifischen Budget hinzu. Der Verbrauch durch eine freigegebene Ressource wird nur dann auf das Ausgabenlimit des Budgets angerechnet, wenn die Ressource von einem Benutzenden mit den angegebenen Tag-Wert-Paaren genutzt wird. Weitere Informationen dazu finden Sie unter Verwenden von Budgets für AI-Features (freigegebene Ressourcen).
Sie können das Budget so konfigurieren, dass die Nutzung enthalten ist, wenn ein Benutzender mit einem der beliebigen angegebenen Tags (UNION) getaggt ist, oder konfigurieren Sie es so, dass die Nutzung nur enthalten ist, wenn der Benutzende mit allen angegebenen Tags (INTERSECTION) getaggt ist.
Der Aufruf der Methode ersetzt alle vorhandenen Benutzer-Tags, die dem Budget hinzugefügt wurden.
Syntax¶
<budget_name>!SET_USER_TAGS( <tag-pairs>, <operation_mode> )
Argumente¶
tag_pairsEin ARRAY-Wert, der Tag-Referenzen und Tag-Werte angibt.
Eine Tag-Referenz ist die Darstellung einer serialisierten Zeichenfolge, die in ein Tag aufgelöst wird. Diese Zeichenfolge ist die Ausgabe der Funktion SYSTEM$REFERENCE.
Jedes Element in dem Array sollte ein Array sein, das eine Tag-Referenz und einen Tag-Wert enthält. Beispiel:
[ [ 'ENT_REF_TAG_10382726315710_8A8626AE765E2' , 'finance' ], ... ]
operation_modeGibt die übereinstimmende Logik an, die für die angegebenen Tags verwendet werden soll. Sie können einen der folgenden Werte angeben:
'UNION': Die Nutzung durch einen Benutzenden ist im Budget enthalten, wenn der Benutzende mit einem beliebigen Tag-Wert-Paar der angegebenen Tag-Wert-Paare getaggt ist. Dies entspricht der OR-Logik.'INTERSECTION': Die Nutzung durch einen Benutzenden ist im Budget enthalten, wenn der Benutzende mit allen Tag-Wert-Paaren der angegebenen Tag-Wert-Paare getaggt ist. Dies entspricht der AND-Logik.
Rückgabewerte¶
Gibt einen VARCHAR-Wert zurück, der angibt, ob die Tags erfolgreich für das Budget festgelegt wurden oder nicht.
Wenn die Tags nicht für das Budget festgelegt werden konnten, gibt die Funktion eine Fehlermeldung zurück.
Anforderungen an die Zugriffssteuerung¶
Die folgenden Berechtigungen und Rollen sind erforderlich, um diese Methode für ein kundenspezifisches Budget aufzurufen:
ADMIN-Instanzrolle für die Budgetinstanz.
USAGE-Berechtigung für die Datenbank und das Schema, die die Budgetinstanz enthalten.
Die USAGE-Berechtigung für die Datenbank und das Schema, die jedes Tag enthalten.
APPLYBUDGET-Berechtigung für jedes hinzuzufügende Tag.
Weitere Informationen dazu finden Sie unter Rollen und Berechtigungen für Budgets.
Nutzungshinweise¶
Sie können Tags nur für kundenspezifische Budgets festlegen.
Standardmäßig können Sie dem Budget bis zu 20 Benutzer-Tags hinzufügen. Wenn Sie dieses Limit erhöhen möchten, wenden Sie sich an den Snowflake-Support.
Um die Ergebnisse der Methode zu überprüfen, rufen Sie die GET_BUDGET_SCOPE-Methode auf.
Wenn Sie diese Methode aufrufen, wird das Objekt nicht zurückgegeben. Aus diesem Grund können Sie keine Methodenverkettung verwenden, um eine andere Methode mit dem Rückgabewert dieser Methode aufzurufen. Rufen Sie jede Methode in einer separaten SQL-Anweisung auf.
Beispiele¶
Verwenden Sie das Budget my_budget, um den Verbrauch zu verfolgen, wenn auf freigegebene Ressourcen von Benutzenden zugegriffen wird, die entweder mit der Tag-Wert-Kombination cost_center = 'sales' oder mit der Tag-Wert-Kombination team_tag = 'finance' getaggt sind.
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');
Verwenden Sie das Budget my_budget, um den Verbrauch zu verfolgen, wenn auf freigegebene Ressourcen von Benutzenden zugegriffen wird, die*sowohl* mit cost_center = 'sales' als auch mit team_tag = 'finance' getaggt sind.
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');