<budget_name>!SET_RESOURCE_TAGS

カスタム予算にタグを追加して、指定されたタグと値のペアでタグ付けされたリソースが予算に含まれるようにします。

指定されたタグの*いずれか*でタグ付けされたリソースを含めるように予算を構成できます(UNION)。または、指定されたタグが*すべて*付けられているリソースのみ含めるように構成することもできます(INTERSECTION)。

このメソッドを呼び出すと、予算に追加された既存のタグが置き換えられます。

構文

<budget_name>!SET_RESOURCE_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<get_budget_scope>`メソッドを呼び出します。

  • Snowflakeは、予算が更新されるまで追加されたリソースの使用状況を表示し始めません。これには最大6時間かかる可能性があります。使用状況をより早く表示したい場合は、 REFRESH_USAGE メソッドを実行してください。

  • このメソッドを呼び出しても、オブジェクトは返されません。このため、メソッドの連結を使って、このメソッドの戻り値で別のメソッドを呼び出すことはできません。換わりに、各メソッドを別々の SQL ステートメントで呼び出します。

``my_budget``予算を使用して、``cost_center = 'sales'``または``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');

``my_budget``予算を使用して、``cost_center = 'sales'``と``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');