예산(Budget) 비용 이해하기

예산(Budget) 비용 이해하기

예산을 사용하면 다음과 같은 비용이 발생해요.

  • 컴퓨팅 비용(Compute costs) — Snowflake가 계정 예산과 사용자 지정 예산(account/custom budget)의 크레딧 사용량 데이터를 수집하는 서버리스 백그라운드 태스크(_MEASUREMENT_TASK, _BACKFILL_TASK)를 실행해요. 이 태스크에 사용된 컴퓨팅 리소스는 계정에 청구돼요.
  • 스토리지 비용(Storage costs) — Snowflake가 계정의 Budgets에 대한 메타데이터를 저장해요. 이 메타데이터의 스토리지는 계정에 청구돼요.

출처: Snowflake 문서

본문

컴퓨팅 비용 알아보기

서버리스 태스크의 비용은 Snowsight나 Account Usage의 SERVERLESS_TASK_HISTORY 뷰를 사용해 확인할 수 있어요.

참고(Note): _MEASUREMENT_TASK 태스크는 객체 태그를 추가하거나 제거할 때 실행되며, 태스크 실행에 필요한 서버리스 컴퓨팅 비용이 발생해요.

예시: 모든 예산의 컴퓨팅 비용

다음 예시는 지난 28일 동안 측정 태스크(measure task)의 크레딧 사용량을 합산해서 예산 사용의 총 컴퓨팅 비용을 파악하는 데 도움을 줘요.

SELECT SUM(credits_used)
   FROM snowflake.account_usage.serverless_task_history
   WHERE task_name = '_MEASUREMENT_TASK'
     AND start_time >= DATEADD('day', -28, current_timestamp());

예시: 개별 예산의 컴퓨팅 비용

다음 예시는 지정된 기간 동안 계정의 예산과 각 예산과 관련된 컴퓨팅 비용을 나열해요.

WITH costs AS (
  SELECT instance_id, SUM(credits_used) AS sum_credits
    FROM snowflake.account_usage.serverless_task_history
    WHERE start_time >= DATE_TRUNC('month',  CURRENT_TIMESTAMP())
      AND instance_id IS NOT NULL
   GROUP BY 1)
SELECT ci.name, ci.schema_name, ci.database_name, costs.sum_credits
FROM snowflake.account_usage.class_instances ci
  JOIN costs
    ON costs.instance_id = ci.id
WHERE class_name = 'BUDGET' AND class_database_name = 'SNOWFLAKE' AND deleted IS NULL;

스토리지 비용 알아보기

예산에 필요한 데이터와 메타데이터는 다음 내부 테이블에 저장돼요.

  • _CONFIGURATION_TABLE
  • _MEASUREMENT_TABLE
  • _NOTIFICATION_TABLE
  • _BUDGET_HOT_USAGE_DATA
  • _BUDGET_COLD_USAGE_DATA
  • _BUDGET_CUSTOM_ACTIONS

이 테이블과 관련된 비용을 확인하려면 Account Usage 또는 Organization Usage 스키마의 TABLES 뷰를 쿼리해 테이블에 사용 중인 스토리지 양을 반환하면 돼요.

다음 예시는 현재 계정에서 예산과 관련된 내부 테이블에 사용 중인 스토리지 합계를 반환해요.

SELECT SUM(bytes)
   FROM snowflake.account_usage.tables
   WHERE table_name IN (
      '_CONFIGURATION_TABLE',
      '_MEASUREMENT_TABLE',
      '_NOTIFICATION_TABLE',
      '_BUDGET_HOT_USAGE_DATA',
      '_BUDGET_COLD_USAGE_DATA');

더 알아보기 (Learn more)