<budget_name>!SET_RESOURCE_TAGS¶
Fügt Tags zu einem kundenspezifischen Budget hinzu, sodass die Ressourcen, die mit den angegebenen Tag-Wert-Paaren getaggt sind, im Budget enthalten sind.
Sie können das Budget so konfigurieren, dass eine Ressource enthalten ist, wenn sie mit einem beliebigen Tag der angegebenen Tags (UNION) getaggt ist, oder konfigurieren Sie es so, dass eine Ressource nur enthalten ist, wenn sie mit allen Tags der angegebenen Tags getaggt ist (INTERSECTION).
Der Aufruf der Methode ersetzt alle vorhandenen Tags, die dem Budget hinzugefügt wurden.
Syntax¶
<budget_name>!SET_RESOURCE_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 Ressourcen-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.
Snowflake zeigt die Nutzung für die hinzugefügten Ressourcen erst an, wenn das Budget aktualisiert wurde, was bis zu sechs Stunden dauern kann. Wenn Sie die Nutzung früher anzeigen möchten, führen Sie die Methode REFRESH_USAGE aus.
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 alle Objekte zu verfolgen, die entweder mit der Tag-Wert-Kombination cost_center = 'sales' oder der Tag-Wert-Kombination team_tag = 'finance' getaggt sind.
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');
Verwenden Sie das Budget my_budget, um alle Objekte zu verfolgen, die mit beiden Tag-Wert-Kombinationen cost_center = 'sales' und team_tag = 'finance' getaggt sind.
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');