<budget_name>!SET_RESOURCE_TAGS

지정된 태그-값 페어로 태그가 지정된 리소스가 예산에 포함되도록 사용자 지정 예산에 태그를 추가합니다.

지정된 태그 중 *하나*에 태그가 지정된 경우 리소스가 포함되도록 예산을 구성하거나(UNION) 지정된 태그 *모두*에 태그가 지정된 경우에만 리소스가 포함되도록 예산을 구성할 수 있습니다(INTERSECTION).

메서드를 호출하면 예산에 추가된 기존 태그가 대체됩니다.

구문

<budget_name>!SET_RESOURCE_TAGS( <tag-pairs>, <operation_mode> )

인자

tag_pairs

태그 참조 및 태그 값을 지정하는 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 권한.

자세한 내용은 예산 역할 및 권한 섹션을 참조하십시오.

사용법 노트

  • 사용자 지정 예산에만 태그를 설정할 수 있습니다.

  • 기본적으로 최대 20개의 리소스 태그를 예산에 추가할 수 있습니다. 이 한도를 늘리려면 Snowflake 지원 에 문의하십시오.

  • 메서드의 결과를 확인하려면 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');