사용자 지정 예산

사용자 지정 예산을 사용하면 오브젝트의 사용자 지정 그룹에 대한 컴퓨팅 비용을 모니터링할 수 있습니다. 다음 두 가지 방법으로 모니터링할 오브젝트를 지정할 수 있습니다.

  • 예산에 태그를 추가합니다. 지정된 태그/값 페어가 있는 모든 오브젝트는 예산으로 모니터링됩니다.

  • 예산에 각 오브젝트를 개별적으로 추가합니다.

동일한 예산은 개별적으로 추가되고 태그를 사용하여 추가된 오브젝트를 추적할 수 있습니다. 오브젝트가 두 가지 이상의 이유로 예산에 포함된 경우(예: 개별적으로 추가되고 지정된 태그/값 페어가 있는 경우) 해당 크레딧 사용은 예산의 지출 한도에 대해 한 번만 계산됩니다.

사용자 지정 예산에 오브젝트를 추가하면 예산은 백그라운드 유지 관리 작업 및 서버리스 기능을 포함하여 오브젝트의 모든 컴퓨팅 비용을 모니터링합니다. 예를 들어, 사용자 지정 예산에 테이블을 추가하고 해당 테이블에 자동 클러스터링이 활성화된 경우, 예산은 자동 클러스터링을 위한 백그라운드 유지 관리에 대한 크레딧 사용을 모니터링합니다.

태그를 사용하여 오브젝트 모니터링

태그</user-guide/object-tagging/introduction>`를 예산에 적용하여 계정 내의 논리 단위에 속한 오브젝트의 크레딧 사용을 모니터링할 수 있습니다. ``cost_center` 태그를 사용하여 조직 내의 비용 센터에서 발생한 비용을 추적한다고 가정해 보겠습니다. 태그/값 페어 ``cost_center = ‘sales’``를 사용하여 영업팀에 귀속된 모든 오브젝트에 태그를 지정할 수 있습니다. 영업팀이 사용하는 각 오브젝트를 예산에 개별적으로 추가하는 대신, 단순히 태그/값 페어 ``cost_center = ‘sales’``를 추가할 수 있습니다. 그러면 예산은 해당 태그/값 페어에 할당된 모든 오브젝트의 크레딧 사용을 자동으로 모니터링합니다.

태그 상속

예산에 태그를 추가하면 상위 오브젝트에서 태그를 상속한 오브젝트를 비롯하여 해당 태그가 있는 모든 오브젝트를 추적합니다. 예를 들어, 데이터베이스에 태그가 있는 경우 데이터베이스 내의 테이블은 태그를 상속하며 예산에 따라 추적됩니다. 예산은 태그/값 페어를 기반으로 사용량을 추적하므로, 테이블 수준에서 태그 값을 재정의하면 예산이 테이블과 연결된 사용량을 추적하는지 여부가 변경될 수 있습니다. 예를 들어, 태그 ``team = ‘eng’``가 있는 오브젝트를 추적하는 예산이 있다고 가정해 보겠습니다. 데이터베이스에 태그 ``team = ‘eng’``가 있지만 데이터베이스 내의 테이블에 태그 ``team = ‘IT’``가 있는 경우, 예산은 해당 테이블과 관련된 비용을 모니터링하지 않습니다.

예산의 맥락에서 계정 예산은 해당 사용 사례를 충족하기 위한 것이므로 태그는 계정에서 상속되지 않습니다.

태그 값을 재정의하는 방법을 포함한 자세한 내용은 태그 상속 섹션을 참조하세요.

여러 예산이 있는 오브젝트 추적

여러 예산은 동일한 태그/값 페어를 추가할 수 있습니다. 즉, 여러 예산에서 동일한 개체의 크레딧 사용을 추적할 수 있습니다. 예를 들어, 태그 cost_center = 'eng'``를 ``budget_1``과 ``budget_2 둘 다에 추가한다고 가정해 보겠습니다. 태그 cost_center = 'eng'``가 있는 웨어하우스는 크레딧을 사용하므로 ``budget_1``과 ``budget_2 모두의 크레딧 한도에 포함됩니다.

오브젝트에 여러 태그가 있는 경우 2개 이상의 예산으로 오브젝트를 추적할 수도 있습니다. 예를 들어, 웨어하우스에 ``cost_center = ‘finance’````stage = ‘dev’``라는 2개의 태그가 있다고 가정해 보겠습니다. ``cost_center = ‘finance’``를 추적하는 하나의 예산과 ``stage = ‘dev’``를 추적하는 다른 예산을 만들 수 있습니다. 웨어하우스에서 사용한 크레딧은 두 예산의 크레딧 한도에 포함됩니다.

제한 사항 및 고려 사항

태그를 사용하여 오브젝트를 모니터링할 때 다음 사항에 유의하세요.

  • 오브젝트의 태그를 변경할 때 태그를 사용하는 예산에 변경 사항이 반영되는 데 최대 6시간이 걸릴 수 있습니다.

  • 현재는 태그로 경고를 모니터링할 수 없습니다. 이는 개별적으로 추가해야 합니다.

  • 해당 월의 처음 2일 이내에 태그를 변경하면 이전 달의 사용량에 반영됩니다.

사용자 지정 예산에 지원되는 오브젝트

사용자 지정 예산을 생성하여 다음 유형의 Snowflake 오브젝트를 모니터링할 수 있습니다.

오브젝트

모니터링된 비용

경고

서버리스 경고는 계정 예산으로 모니터링됩니다. 사용자 관리 웨어하우스를 사용하여 실행되는 경고의 크레딧 사용량을 모니터링하려면 해당 웨어하우스를 예산에 추가해야 합니다. 경고 비용에 대한 자세한 내용은 경고 비용 이해하기 섹션을 참조하십시오.

. (Snowflake Native Apps)

|native-app|이 생성하고 소유한 오브젝트에 대한 예산 동작은 앱을 직접 추가하는지 아니면 태그를 추가하여 앱을 추가하는지에 따라 다릅니다.

  • 태그를 사용하여 |native-app|을 예산에 추가하는 경우, 공유 여부와 관계없이 일치하는 태그/값 조합이 있는 웨어하우스만 자동으로 추적됩니다.

  • 예산에 |native-app|을 직접 추가하면 크레딧을 소비하고 앱에서 생성 및 소유하는 모든 오브젝트가 예산에 자동으로 추가됩니다. 여기에는 앱이 소유한 웨어하우스와 |spcs| 컴퓨팅 풀이 포함됩니다. 공유되는 웨어하우스 및 컴퓨팅 풀은 예산에서 자동으로 추적되지 않지만 수동으로 추가할 수 있습니다.

    앱에서 생성하고 소유한 오브젝트는 별도의 예산에 추가할 수 없습니다. 공유되는 웨어하우스와 컴퓨팅 풀을 별도의 예산에 추가할 수 있습니다.

    앱이 웨어하우스 또는 컴퓨팅 풀을 소유하고 있는지 확인하려면 다음을 확인하십시오.

    • 웨어하우스의 경우 SHOW WAREHOUSES 명령을 실행합니다. owner_role_type 열의 값이 APPLICATION 인 경우 해당 웨어하우스는 Snowflake Native App 에 의해 소유됩니다.

    • 컴퓨팅 풀의 경우 SHOW COMPUTE POOLS 명령을 실행합니다. application 열의 값이 NULL 이 아닌 경우 컴퓨팅 풀은 Snowflake Native App 에 의해 소유됩니다.

컴퓨팅 풀

Snowpark Container Services의 풀 사용량을 계산합니다. 자세한 내용은 컴퓨팅 풀 비용 섹션을 참조하십시오.

데이터베이스

예산에 데이터베이스를 추가하면 데이터베이스에 포함된 모든 지원되는 오브젝트도 자동으로 추가됩니다. 예산은 다음 오브젝트와 서버리스 기능에 대한 크레딧 사용을 모니터링합니다.

  • 위에 설명된 대로 지원되는 스키마 오브젝트입니다.

  • 보조(복제) 데이터베이스에 대한 복제입니다.

    참고

    복제 또는 장애 조치 그룹에 복제된 보조 데이터베이스의 복제 비용은 계정 예산을 통해서만 모니터링할 수 있습니다.

구체화된 뷰

구체화된 뷰에 대한 백그라운드 유지 관리입니다. 자세한 내용은 구체화된 뷰 비용 섹션을 참조하십시오.

스키마

예산에 스키마를 추가하면 스키마에 포함된 모든 지원되는 오브젝트도 자동으로 추가됩니다. 예산은 위에 설명된 대로 스키마 오브젝트에 대한 크레딧 사용을 모니터링합니다.

파이프

Snowpipe를 사용하여 데이터를 로드할 때의 리소스 소비. 자세한 내용은 Snowpipe 비용 섹션을 참조하십시오.

테이블

테이블에서 자동 클러스터링검색 최적화 가 활성화된 경우 백그라운드에서 유지 관리 작업을 수행합니다.

작업

서버리스 작업은 사용자 지정 예산에 의해 모니터링됩니다. 사용자 관리 웨어하우스를 사용하여 실행되는 작업에 대한 크레딧 사용을 모니터링하려면 예산에 웨어하우스를 추가해야 합니다. 자세한 내용은 작업 비용 섹션을 참조하십시오.

웨어하우스

쿼리 실행, 웹 인터페이스 및 기타 기능(가상 웨어하우스 크레딧 사용 참조), 서버리스 작업 및 클라우드 서비스 컴퓨팅 을 위한 컴퓨팅 리소스입니다.

자세한 내용은 사용자 지정 예산에서 태그 추가 또는 제거 섹션을 참조하십시오.

사용자 지정 예산 만들기

다음 섹션에서는 사용자 지정 예산을 만드는 방법에 대해 설명합니다.

|sf-web-interface|를 사용하거나 SQL 문을 실행하여 사용자 지정 예산을 만들 수 있습니다.

Budgets를 생성하기 위한 사용자 지정 역할 만들기

사용자 지정 역할을 사용하여 계정에서 예산을 생성할 수 있습니다. 사용자 지정 예산을 생성하기 위해 역할에 부여해야 하는 권한 및 역할의 전체 목록은 예산 역할 및 권한 섹션을 참조하십시오.

다음 예제에서는 budget_owner 역할을 만들고 스키마 budgets_db.budgets_schema 에서 사용자 지정 예산을 만드는 데 필요한 역할과 권한을 부여합니다. 이 예제는 ACCOUNTADMIN 역할을 사용하여 실행해야 합니다.

USE ROLE ACCOUNTADMIN;
   
CREATE ROLE budget_owner;
  
GRANT USAGE ON DATABASE budgets_db TO ROLE budget_owner;
GRANT USAGE ON SCHEMA budgets_db.budgets_schema TO ROLE budget_owner;

GRANT DATABASE ROLE SNOWFLAKE.BUDGET_CREATOR TO ROLE budget_owner;

GRANT CREATE SNOWFLAKE.CORE.BUDGET ON SCHEMA budgets_db.budgets_schema
  TO ROLE budget_owner;
Copy

예산 소유자가 아닌 다른 역할이 사용자 지정 예산 설정을 수정할 수 있도록 하려면 수정 권한이 있는 사용자 지정 역할을 만들 수 있습니다. 자세한 내용은 사용자 지정 예산을 관리하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

Snowsight 를 사용하여 사용자 지정 예산 만들기

참고

계정 예산이 활성화 되어 있지 않거나 비활성화되어 있는 경우 Snowsight 를 사용하여 사용자 지정 예산을 생성할 수 없습니다. 그러나 SQL을 사용하여 사용자 지정 예산을 생성 할 수 있습니다.

  1. Snowsight 에 로그인합니다.

  2. Admin » Cost Management 를 선택합니다.

  3. Budgets 를 선택합니다.

  4. |sf-plus-icon-button|(예산 추가)를 선택합니다.

  5. Budget name 을 입력합니다.

  6. 예산을 생성할 데이터베이스와 스키마를 선택합니다.

  7. Spending limit 을 입력합니다.

  8. 알림을 받을 이메일 주소를 입력합니다.

    참고

    예산 알림을 위해 추가한 각 이메일 주소는 확인 과정을 거쳐야 합니다. 목록에 있는 이메일 주소가 확인되지 않은 경우 알림 이메일 설정이 실패합니다.

  9. :ui:`+ Tag & resources`를 선택한 다음, 사용자 지정 예산에 추가하려는 태그와 리소스를 추가합니다.

    참고

    • 데이터베이스 또는 스키마를 선택하면 데이터베이스 또는 스키마 내에 포함된 모든 지원 오브젝트 (예: 테이블)도 예산에 추가됩니다.

    • 개별 오브젝트를 직접 추가하는 경우 하나의 사용자 지정 예산에만 오브젝트를 추가할 수 있습니다. 이 경우, 오브젝트가 현재 하나의 사용자 지정 예산에 포함되어 있는데 해당 오브젝트를 두 번째 사용자 지정 예산에 추가하면 Budgets는 경고 없이 첫 번째 사용자 지정 예산에서 해당 오브젝트를 제거합니다. 이 동작은 태그를 사용하여 예산에 오브젝트를 추가하는 경우에는 적용되지 않습니다. 태그를 사용하여 예산에 오브젝트를 추가하는 경우 하나 이상의 태그가 있는 오브젝트가 여러 사용자 지정 예산에 포함될 수 있습니다.

사용자 지정 예산을 만들고 설정한 후에는 계정 관리자가 아닌 사용자 지정 역할을 만들어 예산 리소스와 사용량을 모니터링할 수 있습니다. 자세한 내용은 사용자 지정 예산을 모니터링하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

SQL 명령을 사용하여 사용자 지정 예산 만들기

사용자 지정 예산을 만든 다음 지출 한도와 알림 이메일 주소를 설정합니다.

참고

  1. 계정의 기존 예산을 검토합니다.

    참고

    다음 명령은 액세스 권한이 있는 예산을 반환합니다. ACCOUNTADMIN 역할이 있는 사용자만 계정의 모든 예산을 볼 수 있습니다.

    SELECT SYSTEM$SHOW_BUDGETS_IN_ACCOUNT();
    
    Copy
  2. CREATE BUDGET 명령을 사용하여 budgets_db.budgets_schema 에 예산 my_budget 을 생성합니다.

    USE SCHEMA budgets_db.budgets_schema;
    
    CREATE SNOWFLAKE.CORE.BUDGET my_budget();
    
    Copy
  3. 월별 지출 한도를 설정합니다. 예를 들어, 지출 한도를 매달 500크레딧으로 설정합니다.

    CALL my_budget!SET_SPENDING_LIMIT(500);
    
    Copy
  4. 크레딧 사용액이 지출 한도를 초과할 것으로 예상될 때 알림을 받도록 예산에 대한 알림을 설정하십시오.

    예산 알림 섹션을 참조하십시오.

사용자 지정 예산을 만들고 설정한 후에는 계정 관리자가 아닌 사용자 지정 역할을 만들어 예산 리소스와 사용량을 모니터링할 수 있습니다. 자세한 내용은 사용자 지정 예산을 모니터링하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

새 예산에 오브젝트를 추가하려면 사용자 지정 예산에 오브젝트 추가 또는 제거 섹션을 참조하십시오.

사용자 지정 예산을 관리하기 위한 사용자 지정 역할 만들기

사용자 지정 예산을 모니터링하고 수정하려면 사용자 지정 역할에 권한과 인스턴스 역할을 부여할 수 있습니다. 사용자 지정 예산을 수정하기 위해 역할에 부여해야 하는 권한 및 역할의 전체 목록은 예산 역할 및 권한 섹션을 참조하십시오.

사용자 지정 역할의 예

사용자 지정 역할 budget_admin 에 스키마 budgets_db.budgets_schema 에서 예산 my_budget 을 모니터링하거나 수정할 수 있는 권한을 부여합니다.

참고

다음 예제를 실행하려면 사용자 지정 예산에 대한 OWNERSHIP 권한이 필요합니다.

  • 스키마 ``budgets_db.budgets_schema``의 예산 ``my_budget``에 대해 필요한 권한과 인스턴스 역할을 사용자 지정 역할 ``budget_admin``에 부여합니다.

    GRANT USAGE ON DATABASE budgets_db TO ROLE budget_admin;
    
    GRANT USAGE ON SCHEMA budget_db.budgets_schema TO ROLE budget_admin;
    
    GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!ADMIN
       TO ROLE budget_admin;
    
    GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_admin;
    
    Copy
  • 사용자 지정 예산에서 추가하거나 제거할 오브젝트와 태그에 APPLYBUDGET 권한을 부여합니다. 이 단계는 각 오브젝트 또는 태그를 추가하거나 제거하는 데 필요합니다.

    예를 들어, budget_admin 역할이 사용자 지정 예산 my_budget 에 데이터베이스 db1 을 추가하도록 하려면 다음 문을 실행합니다.

    GRANT USAGE ON DATABASE db1 TO ROLE budget_admin;
    
    GRANT APPLYBUDGET ON DATABASE db1 TO ROLE budget_admin;
    
    Copy

사용자 지정 예산에서 태그 추가 또는 제거

Snowsight 또는 SQL을 사용하여 사용자 지정 예산에서 태그를 추가하거나 제거할 수 있습니다. 예산에 추가된 각 태그에는 태그에 대한 하나 이상의 값이 포함됩니다.

참고

사용자 지정 예산에 태그를 추가하거나 제거하려면 예산 및 태그에 대한 필요한 권한이 있는 역할을 사용해야 합니다. 자세한 내용은 사용자 지정 예산을 관리하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

|sf-web-interface|를 사용하여 사용자 지정 예산에서 태그 추가 또는 제거

  1. Snowsight 에 로그인합니다.

  2. Admin » Cost Management 를 선택합니다.

  3. Budgets 를 선택합니다.

  4. 편집할 예산을 선택합니다.

  5. 대시보드에서 |sf-pencil-icon|(편집 아이콘)을 선택합니다.

  6. + Tags & resources 을 선택합니다.

  7. :ui:`Tags`를 펼치고 추가하려는 태그로 이동합니다.

  8. 다음 중 하나를 수행하십시오.

    • 태그에 :ref:`허용되는 값 목록<label-object_tagging_specify_tag_values>`이 있는 경우, 값 중 하나 이상을 선택합니다.

    • 태그를 임의의 값으로 설정할 수 있는 경우 값을 지정합니다.

  9. Done 를 선택합니다.

참고

|sf-web-interface|에서 예산에 태그를 추가할 때 다음 사항에 유의하세요.

  • 하나 이상의 오브젝트에 태그를 적용해야 이를 예산에 추가할 수 있습니다.

  • 태그를 오브젝트에 추가한 후 태그가 표시되려면 최대 2시간이 걸릴 수 있습니다.

SQL 명령을 사용하여 사용자 지정 예산에서 태그 추가 또는 제거

예산에서 태그를 추가하거나 제거하는 데 사용되는 역할에는 해당 태그에 대한 APPLYBUDGET 권한이 있어야 합니다. 자세한 내용은 사용자 지정 예산을 관리하기 위한 사용자 지정 역할 만들기 섹션의 예제를 참조하십시오.

사용자 지정 예산에 이미 있는 태그 목록을 검토하려면 예산의 <budget_name>!GET_LINKED_TAGS 메서드를 호출합니다. 예를 들어, budgets_db.budgets_schema 스키마에서 예산 :code:`my_budget`의 태그 목록을 보려면 다음 문을 실행합니다.

CALL budgets_db.budgets_schema.my_budget!GET_LINKED_TAGS();
Copy

태그는 :doc:`참조</sql-reference/references>`를 통해 예산에 추가하거나 예산에서 제거해야 합니다.

  1. 다음 단계에 따라 예산 :code:`my_budget`에 태그 ``cost_mgmt_db.tags.cost_center``를 추가할 수 있습니다

    1. 다음 문을 실행하여 태그에 대한 APPLYBUDGET 권한을 역할 :code:`budget_admin`에 부여합니다.

      GRANT APPLYBUDGET ON TAG cost_center TO ROLE budget_admin;
      
      Copy
    2. 다음 문을 실행하여 태그 ``cost_center``에 대한 참조를 ADD_TAG 인스턴스 메서드로 전달합니다. 태그의 값이 ``finance``로 설정됩니다.

      CALL budgets_db.budgets_schema.my_budget!ADD_TAG(
         SELECT SYSTEM$REFERENCE('TAG',
            'cost_mgmt_db.tags.cost_center',
            'SESSION',
            'applybudget'),
            'finance');
      
      Copy

      SYSTEM$REFERENCE 함수는 태그에 부여된 APPLYBUDGET 권한으로 태그 ``cost_center``에 대한 참조를 생성합니다. 이를 통해 예산은 계정에 지정된 태그/값 페어가 있는 계정의 오브젝트를 모니터링할 수 있습니다. 함수의 세 번째 매개 변수는 참조 범위를 지정하는데, 이 경우 ‘SESSION’은 세션 범위를 사용하여 참조를 생성합니다. 예산에 대한 ADD_TAG 메서드에 전달된 참조는 일시적 참조 범위로 생성할 수 있습니다(즉, 세 번째 매개 변수가 ‘SESSION’ 또는 ‘CALL’일 수 있음).

  2. 다음 단계에 따라 예산 :code:`my_budget`에서 태그 `cost_center`를 제거할 수 있습니다.

    1. 다음 문을 실행하여 데이터베이스에 대한 budget_admin 권한을 역할 APPLYBUDGET에 부여합니다.

      GRANT APPLYBUDGET ON TAG cost_center TO ROLE budget_admin;
      
      Copy
    2. REMOVE_TAG 인스턴스 메서드에 참조를 전달하여 태그를 제거합니다.

      CALL budgets_db.budgets_schema.my_budget!REMOVE_TAG(
         SELECT SYSTEM$REFERENCE('TAG',
            'cost_mgmt_db.tags.cost_center',
            'SESSION',
            'applybudget'),
            'finance');
      
      Copy

사용자 지정 예산에 오브젝트 추가 또는 제거

Snowsight 또는 SQL을 사용하여 사용자 지정 예산에서 오브젝트를 추가하거나 제거할 수 있습니다.

참고

사용자 지정 예산에 오브젝트를 추가하거나 제거하려면 예산 및 오브젝트에 대한 필요한 권한이 있는 역할을 사용해야 합니다. 자세한 내용은 사용자 지정 예산을 관리하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

Snowsight 를 사용하여 사용자 지정 예산에서 오브젝트를 추가하거나 제거합니다.

  1. Snowsight 에 로그인합니다.

  2. Admin » Cost Management 를 선택합니다.

  3. Budgets 를 선택합니다.

  4. 편집할 예산을 선택합니다.

  5. 대시보드에서 |sf-pencil-icon|(편집 아이콘)을 선택합니다.

  6. :ui:`+ Tags & resources`를 선택한 다음, 사용자 지정 예산에 추가할 오브젝트를 선택합니다.

    참고

    • 데이터베이스 또는 스키마를 선택하면 데이터베이스 또는 스키마 내에 포함된 모든 지원 오브젝트 (예: 테이블)도 예산에 추가됩니다.

    • 개별 오브젝트를 직접 추가하는 경우 하나의 사용자 지정 예산에만 오브젝트를 추가할 수 있습니다. 이 경우, 오브젝트가 현재 하나의 사용자 지정 예산에 포함되어 있는데 해당 오브젝트를 두 번째 사용자 지정 예산에 추가하면 Budgets는 경고 없이 첫 번째 사용자 지정 예산에서 해당 오브젝트를 제거합니다. 이 동작은 태그를 사용하여 예산에 오브젝트를 추가하는 경우에는 적용되지 않습니다. 태그를 사용하여 예산에 오브젝트를 추가하는 경우 하나 이상의 태그가 있는 오브젝트가 여러 사용자 지정 예산에 포함될 수 있습니다.

  7. Done 를 선택합니다.

SQL 명령을 사용하여 사용자 지정 예산에서 오브젝트를 추가하거나 제거합니다.

예산에서 오브젝트를 추가하거나 제거하는 데 사용되는 역할에는 해당 오브젝트에 대한 APPLYBUDGET 권한이 있어야 합니다. 자세한 내용은 사용자 지정 예산을 관리하기 위한 사용자 지정 역할 만들기 섹션의 예제를 참조하십시오.

사용자 지정 예산에 이미 있는 오브젝트 목록을 검토하려면 예산의 <budget_name>!GET_LINKED_RESOURCES 메서드를 호출합니다. 예를 들어, budgets_db.budgets_schema 스키마에서 my_budget 예산의 오브젝트 목록을 보려면 다음 문을 실행합니다.

CALL budgets_db.budgets_schema.my_budget!GET_LINKED_RESOURCES();
Copy

이 문은 다음과 같은 출력을 반환합니다.

+-------------+-----------------+-----------+-------------+---------------+
| RESOURCE_ID | NAME            | DOMAIN    | SCHEMA_NAME | DATABASE_NAME |
|-------------+-----------------+-----------+-------------+---------------|
|         326 | DB1             | DATABASE  | NULL        | NULL          |
|         157 | MY_WH           | WAREHOUSE | NULL        | NULL          |
+-------------+-----------------+-----------+-------------+---------------+

참고

목록에는 다음이 포함되지 않습니다.

  • 자동으로 추가된 오브젝트(예: |native-app|이 생성하고 소유한 컴퓨팅 풀 및 웨어하우스).

  • 태그가 예산에 추가될 때 추가된 오브젝트.

오브젝트는 참조 를 통해 예산에 추가하거나 예산에서 제거해야 합니다.

  1. 다음 단계에 따라 my_budget 예산에 t1 테이블을 추가할 수 있습니다

    1. 다음 문을 실행하여 테이블에 대한 budget_admin 권한을 역할 APPLYBUDGET에 부여합니다.

      GRANT APPLYBUDGET ON TABLE t1 TO ROLE budget_admin;
      
      Copy
    2. 다음 문을 실행하여 테이블 t1 에 대한 참조를 ADD_RESOURCE 인스턴스 메서드로 전달합니다.

      CALL budgets_db.budgets_schema.my_budget!ADD_RESOURCE(
         SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'applybudget'));
      
      Copy

      SYSTEM$REFERENCE 함수는 테이블에 부여된 TABLE 권한으로 t1 오브젝트 APPLYBUDGET 에 대한 참조를 생성합니다. 이를 통해 예산은 계정의 지정된 오브젝트를 모니터링할 수 있습니다. 함수의 세 번째 매개 변수는 참조 범위를 지정하는데, 이 경우 ‘SESSION’은 세션 범위를 사용하여 참조를 생성합니다. 예산에 대한 ADD_RESOURCE 메서드에 전달된 참조는 일시적 참조 범위로 생성할 수 있습니다(즉, 세 번째 매개 변수가 ‘SESSION’ 또는 ‘CALL’일 수 있음).

      참고

      예산에 Snowflake Native App 을 추가하려면 SYSTEM$REFERENCE 를 호출할 때 object_type 인자에 'APPLICATION' 이 아닌 'DATABASE' 를 지정하십시오.

      오브젝트 및 권한의 전체 목록은 참조의 지원 오브젝트 유형과 권한 섹션을 참조하십시오.

      참고

      개별 오브젝트를 직접 추가하는 경우 하나의 사용자 지정 예산에만 오브젝트를 추가할 수 있습니다. 이 경우, 오브젝트가 현재 하나의 사용자 지정 예산에 포함되어 있는데 해당 오브젝트를 두 번째 사용자 지정 예산에 추가하면 Budgets는 경고 없이 첫 번째 사용자 지정 예산에서 해당 오브젝트를 제거합니다. 이 동작은 태그를 사용하여 예산에 오브젝트를 추가하는 경우에는 적용되지 않습니다. 태그를 사용하여 예산에 오브젝트를 추가하는 경우 하나 이상의 태그가 있는 오브젝트가 여러 사용자 지정 예산에 포함될 수 있습니다.

  2. 다음 단계에 따라 my_budget 예산에서 db1 데이터베이스를 제거할 수 있습니다.

    1. 다음 문을 실행하여 데이터베이스에 대한 budget_admin 권한을 역할 APPLYBUDGET에 부여합니다.

      GRANT APPLYBUDGET ON DATABASE db1 TO ROLE budget_admin;
      
      Copy
    2. REMOVE_RESOURCE 인스턴스 메서드에 참조를 전달하여 데이터베이스를 제거합니다.

      CALL budgets_db.budgets_schema.my_budget!REMOVE_RESOURCE(
         SELECT SYSTEM$REFERENCE('DATABASE', 'db1', 'SESSION', 'applybudget'));
      
      Copy