예산(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)
- 예산(Budgets) 개요 — 예산 기능과 역할·권한
- 예산 비용 — 예산 사용 비용
- 예산 메서드 — 예산 클래스 메서드