<budget_name>!SET_USER_TAGS¶
カスタム予算にユーザータグを追加します。共有リソースによる消費は、指定されたタグと値のペアを持つユーザーによってリソースがアクション化された場合にのみ、予算の支出制限にカウントされます。詳細については、 AI 機能(共有リソース)の予算の使用 をご参照ください。
ユーザーが指定されたタグの いずれか ( UNION )でタグ付けされている場合に使用量が含まれるように予算を構成したり、ユーザーが指定されたタグの すべて ( INTERSECTION )でタグ付けされている場合にのみ使用量が含まれるように構成したりすることができます。
このメソッドを呼び出すと、予算に追加された既存のユーザータグが置き換えられます。
構文¶
<budget_name>!SET_USER_TAGS( <tag-pairs>, <operation_mode> )
引数¶
tag_pairsタグ参照とタグ値を指定する:ref:`label-data_type_array`値。
タグ参照は、タグ</user-guide/object-tagging/introduction>`に解決されるシリアル化された文字列表現です。この文字列は :doc:/sql-reference/functions/system_reference` 関数の出力です。
この配列の各要素は、タグ参照とタグ値を含む配列である必要があります。例:
[ [ 'ENT_REF_TAG_10382726315710_8A8626AE765E2' , 'finance' ], ... ]
operation_mode指定されたタグに使用する照合ロジックを指定します。次の値のいずれかを指定できます。
'UNION':使用したユーザーが指定されたタグと値の*いずれか*のペアでタグ付けされていれば、予算に含められます。これはORロジックに対応します。'INTERSECTION':使用したユーザーが指定されたタグと値の*すべて*のペアでタグ付けされている場合にのみ、予算に含められます。これはANDロジックに対応します。
戻り値¶
予算に対してタグが正常に設定されたかどうかを示すVARCHAR値を返します。
予算にタグを設定できなかった場合、この関数はエラーメッセージを返します。
アクセス制御の要件¶
カスタム予算でこのメソッドを呼び出すには、以下の権限とロールが必要です。
予算インスタンスの ADMIN インスタンスロール。
予算インスタンスを含んでいるデータベースとスキーマに対する USAGE 権限。
各タグを含むデータベースとスキーマに対するUSAGE権限。
追加された各タグに対するAPPLYBUDGET権限。
詳細については、 Budgetのロールと権限 をご参照ください。
使用上の注意¶
タグは カスタム予算 にのみ設定できます。
デフォルトでは、予算に最大20個のユーザータグを追加できます。この制限を増やすには、 Snowflakeサポート にお問い合わせください。
このメソッドの結果を確認するには、:doc:`GET_BUDGET_SCOPE</sql-reference/classes/budget/methods/get_budget_scope>`メソッドを呼び出します。
このメソッドを呼び出しても、オブジェクトは返されません。このため、メソッドの連結を使って、このメソッドの戻り値で別のメソッドを呼び出すことはできません。換わりに、各メソッドを別々の SQL ステートメントで呼び出します。
例¶
my_budget 予算を使用して、タグ値の組み合わせ cost_center = 'sales' またはタグ値の組み合わせ 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');
my_budget 予算を使用して、 cost_center = 'sales' および 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');