예산 모니터링

이 항목에서는 예산 지출을 모니터링하고 특정 리소스의 크레딧 사용을 추적하는 예산을 식별하는 방법을 설명합니다.

예산을 모니터링하기 위한 사용자 지정 역할 만들기

관리자가 아닌 사용자가 예산을 모니터링하는 데 사용할 수 있는 사용자 지정 역할을 만들어 예산 모니터링을 위임할 수 있습니다.

계정 예산을 모니터링하기 위한 사용자 지정 역할 만들기

계정 관리자가 아닌 사용자가 계정 예산을 모니터링할 수 있도록 사용자 지정 역할을 만들 수 있습니다. 계정 예산을 모니터링하는 역할에 부여해야 하는 권한 및 역할의 전체 목록은 예산 역할 및 권한 섹션을 참조하십시오.

참고

이 예제의 명령은 계정 관리자만 실행할 수 있습니다.

예를 들어, account_budget_monitor 역할을 생성하고 해당 역할에 계정 예산의 크레딧 사용을 볼 수 있는 권한을 부여합니다.

USE ROLE ACCOUNTADMIN;

CREATE ROLE account_budget_monitor;
 
GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_VIEWER TO ROLE account_budget_monitor;

GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE account_budget_monitor;
Copy

사용자 지정 예산을 모니터링하기 위한 사용자 지정 역할 만들기

사용자 지정 예산을 모니터링할 수 있도록 계정 관리자가 아닌 사용자 지정 역할을 만들 수 있습니다. 사용자 지정 예산을 모니터링하는 역할에 부여해야 하는 권한 및 역할의 전체 목록은 예산 역할 및 권한 섹션을 참조하십시오.

참고

예산 소유자(OWNERSHIP 권한이 있는 역할)만 이 예제의 문을 실행할 수 있습니다.

예산 소유자 역할을 사용하여 사용자 지정 역할 budget_monitor 에 스키마 budgets_db.budgets_schema 에서 예산 my_budget 을 모니터링할 수 있는 기능을 부여합니다.

USE ROLE custom_budget_owner;

GRANT USAGE ON DATABASE budgets_db TO ROLE budget_monitor;

GRANT USAGE ON SCHEMA budget_db.budgets_schema TO ROLE budget_monitor;

GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!VIEWER
  TO ROLE budget_monitor;

GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_monitor;
Copy

예산 모니터링

Snowsight 또는 SQL을 사용하여 예산을 모니터링할 수 있습니다.

Snowsight 를 사용하여 예산 모니터링

Snowsight 에서 Budgets 페이지를 사용하여 현재 및 과거 예산 지출을 볼 수 있습니다.

참고

ACCOUNTADMIN 역할이 있는 사용자 또는 필수 권한과 역할이 부여된 사용자만 Snowsight 를 사용하여 예산을 모니터링할 수 있습니다.

  1. Snowsight 에 로그인합니다.

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

  3. Budgets 를 선택합니다.

예산의 Current Month 뷰에서는 현재 날짜까지 일일 크레딧 사용을 검토할 수 있습니다. 해당 월의 예산을 초과할 수도 있을지 여부를 확인할 수 있습니다. 막대그래프는 해당 월의 실제 크레딧 사용을 기준으로 월말까지의 예상 크레딧 사용을 계속 표시합니다. Spending limit 선은 예산 알림이 트리거되는 지출 한도를 나타냅니다.

Current Month 이상의 기간을 기준으로 뷰를 필터링하려면 시계 아이콘 (표시할 개월 수)을 선택하십시오.

Spend (현재 크레딧 사용)를 Interval (당월 남은 시간)과 비교하여 지출이 월간 예산을 초과하는지 확인할 수 있습니다.

예산 아이콘 Budgets 또는 리소스 아이콘 Resources 를 선택하여 뷰를 필터링할 수 있습니다.

  • Budgets 뷰에서 사용자 지정 예산을 선택하면 특정 예산에 대한 세부 정보를 볼 수 있습니다.

    참고

    사용자 지정 예산의 Service Type 목록에는 Unused Resources 유형이 포함됩니다. 이 서비스 유형은 예산에 있는 오브젝트에 표시할 크레딧 사용 데이터가 없을 때 표시됩니다. 이는 오브젝트에 컴퓨팅 비용에 대한 크레딧 사용량이 없거나 최근에 예산에 오브젝트를 추가했는데 서버리스 백그라운드 작업 이 아직 실행되지 않은 경우에 발생할 수 있습니다.

  • Resources 뷰에서는 Service Type, 오브젝트 Name, Credit Usage 를 기준으로 필터링하고 정렬할 수 있습니다.

SQL 명령을 사용하여 예산 모니터링

계정 예산을 모니터링하려면 필요한 권한이 있어야 합니다. 자세한 내용은 계정 예산을 모니터링하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

계정 예산의 지출 기록을 보려면 account_budget_monitor 역할을 사용합니다.

USE ROLE account_budget_monitor;

CALL snowflake.local.account_root_budget!GET_SPENDING_HISTORY(
  TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
  TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Copy

서비스 유형별로 지출 기록을 모니터링할 수 있습니다. 8개월 기간의 계정 예산에 대한 검색 최적화 서버리스 기능에 대한 지출 기록을 보려면 다음 명령을 실행합니다.

USE ROLE account_budget_monitor;

SELECT *
   FROM table(snowflake.local.account_root_budget!GET_SERVICE_TYPE_USAGE_V2(
         '2025-05', '2025-12'))
   WHERE service_type = 'SEARCH_OPTIMIZATION';
Copy

사용자 지정 예산을 모니터링하려면 필요한 권한이 있어야 합니다. 자세한 내용은 사용자 지정 예산을 모니터링하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

budget_monitor 역할을 사용하여 사용자 지정 예산의 지출 기록을 확인합니다. 예를 들어, 스키마 budgets_db.budgets_schema 에서 사용자 지정 예산 na_finance_budget 에 대한 지출 기록을 보려면 다음 문을 실행합니다.

USE ROLE budget_monitor;

CALL budgets_db.budgets_schema.na_finance_budget!GET_SPENDING_HISTORY(
  TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
  TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Copy

서비스 유형별로 지출 기록을 모니터링할 수 있습니다. 예를 들어, 예산에 포함된 구체화된 뷰에 대한 1년 기간의 지출 기록을 보려면 다음 명령을 실행합니다.

USE ROLE budget_monitor;

SELECT *
   FROM table(budgets_db.budgets_schema.na_finance_budget!GET_SERVICE_TYPE_USAGE_V2(
         '2025-05', '2025-12'))
   WHERE service_type = 'MATERIALIZED_VIEW';
Copy

자세한 내용은 Budget 메서드 섹션을 참조하십시오.

리소스를 추적하는 예산 식별

리소스를 추적하는 예산을 확인하려면 SYSTEM$SHOW_BUDGETS_FOR_RESOURCE 함수를 호출할 수 있습니다.

예:

SELECT SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'my_db.my_schema.my_table');
Copy
+-----------------------------------------------------------------------+
| SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'MY_DB.MY_SCHEMA.MY_TABLE') |
|-----------------------------------------------------------------------|
| [BUDGETS_DB.BUDGETS_SCHEMA.MY_BUDGET]                                 |
+-----------------------------------------------------------------------+

이 함수는 리소스가 추가된 예산을 반환합니다. 여기에는 다음과 같은 이유로 인해 리소스가 포함된 예산이 포함됩니다.

  • 리소스가 예산에 직접 추가되었습니다.

  • 리소스에 예산에 추가된 태그/값 조합이 있습니다.

  • 리소스가 예산에 추가된 오브젝트(예: 데이터베이스)에 속합니다.