예산(Budget) 모니터링

예산(Budget) 모니터링

예산 지출을 모니터링하고 특정 리소스의 크레딧 사용량을 추적하는 예산을 식별하는 방법을 설명해요. 커스텀 역할을 만들어 비관리자 사용자가 예산을 모니터링하게 하는 것도 다뤄요.

출처: Snowflake 문서

본문

예산 모니터링을 위한 커스텀 역할 생성

비관리자 사용자가 예산을 모니터링하는 데 사용할 수 있는 커스텀 역할을 만들어 예산 모니터링을 위임할 수 있어요.

계정 예산 모니터링을 위한 커스텀 역할 생성

비계정 관리자 사용자가 계정 예산을 모니터링할 수 있게 하는 커스텀 역할을 만들 수 있어요. 계정 예산을 모니터링하려면 역할에 부여해야 하는 권한과 역할의 전체 목록은 예산 역할과 권한을 참고해요.

예시

참고(Note): 이 예시의 문장은 계정 관리자만 실행할 수 있어요.

예를 들어 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;

커스텀 예산 모니터링을 위한 커스텀 역할 생성

비계정 관리자 사용자가 커스텀 예산을 모니터링할 수 있게 하는 커스텀 역할을 만들 수 있어요. 커스텀 예산을 모니터링하려면 역할에 부여해야 하는 권한과 역할의 전체 목록은 예산 역할과 권한을 참고해요.

예시

참고(Note): 이 예시의 문장은 예산 소유자(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;

예산 모니터링

Snowsight 또는 SQL을 사용해 예산을 모니터링할 수 있어요.

Snowsight로 예산 모니터링

Snowsight의 Budgets 페이지를 사용해 현재 및 과거 예산 지출을 볼 수 있어요.

참고(Note): Snowsight로 예산을 모니터링할 수 있는 사람은 ACCOUNTADMIN 역할을 가진 사용자 또는 필요한 권한과 역할을 부여받은 역할뿐이에요.

  • Snowsight에 로그인해요.
  • 내비게이션 메뉴에서 Admin » Cost management를 선택해요.
  • Budgets를 선택해요.

예산의 Current Month 뷰에서 현재까지의 일별 크레딧 사용량을 검토할 수 있어요. 월 예산을 초과할지 여부를 확인할 수 있어요. 막대 그래프는 월 크레딧 사용량을 기반으로 한 예상 크레딧 사용량과 함께 월말까지 계속돼요. Spending limit 선은 예산 알림이 트리거되는 지출 한도를 나타내요.

(표시할 개월 수)를 선택해 Current Month 또는 더 긴 기간으로 뷰를 필터링할 수 있어요.

Spend(현재 크레딧 사용량)를 Interval(이번 달의 남은 시간)과 비교해 지출이 월간 예산을 앞지르고 있는지 확인할 수 있어요.

Budgets 또는 Resources를 선택해 뷰를 필터링할 수 있어요.

  • Budgets 뷰에서 특정 예산에 대한 세부정보를 보려면 커스텀 예산을 선택할 수 있어요.

참고(Note): 커스텀 예산의 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()
);

서비스 유형별로 지출 이력을 모니터링할 수 있어요. 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';

커스텀 예산을 모니터링하려면 필요한 권한이 있어야 해요. 자세한 내용은 커스텀 예산 모니터링을 위한 커스텀 역할 생성을 참고해요.

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()
);

서비스 유형별로 지출 이력을 모니터링할 수 있어요. 예를 들어 예산에 포함된 구체화된 뷰에 대해 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';

자세한 내용은 예산 메서드(Budget methods)를 참고해요.

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

어떤 예산이 리소스를 추적하는지 확인하려면 SYSTEM$SHOW_BUDGETS_FOR_RESOURCE 함수를 호출할 수 있어요.

예를 들어:

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

이 함수는 리소스가 추가된 예산을 반환해요. 다음 이유 중 하나로 리소스를 포함하는 예산도 함께 반환돼요.

  • 리소스가 예산에 직접 추가됨
  • 리소스가 예산에 추가된 태그/값 조합을 가짐
  • 리소스가 예산에 추가된 객체(예: 데이터베이스)에 속함

더 알아보기 (Learn more)