snowflake 사용 요금 보는 방법 ( feat.SQL )

2024. 1. 26. 15:21it

반응형

 

 

 

snowflake 에서 비용을 확인하는 방법은 어려가지가 있다. 

 

그 중 자주쓰는 클라우드 서비스 비용 계산 쿼리를 공유하겠다. 

 

해당 쿼리는 sql 별로 비용을 계산하는 문법으로 스토리지 사이즈가 고정적인 사이트에서는 유용하다. 

 

0. 비용이 발생되는 기준 

Snowflake의 총 비용은 데이터 전송, 저장, 컴퓨팅 리소스 사용에 따라 결정됩니다. 이 비용은 크게 세 가지 컴퓨팅 리소스 사용 유형으로 나뉩니다:

가상 웨어하우스 컴퓨팅: 사용자가 관리하는 컴퓨팅 리소스로, 데이터 로딩, 쿼리 실행, DML 작업 등을 수행할 때 크레딧을 사용합니다. 웨어하우스가 활성화되는 순간부터 청구되며, 최소 청구 시간은 60초입니다.

서버리스 컴퓨팅: Snowflake가 관리하는 컴퓨팅 리소스로, 검색 최적화나 Snowpipe 같은 기능에 사용됩니다. 이 리소스는 자동으로 크기가 조정되어 비용을 최소화합니다.

클라우드 서비스 컴퓨팅: 인증, 메타데이터 관리, 액세스 제어와 같은 백그라운드 작업에 사용됩니다. 이 계층의 사용 요금은 일일 웨어하우스 사용량의 10%를 초과하는 경우에만 청구됩니다.

 

 

1. 쿼리 종류 별 비용

SELECT query_type,
  SUM(credits_used_cloud_services) AS cs_credits,
  COUNT(1) num_queries
FROM snowflake.account_usage.query_history
WHERE true
  AND start_time >= TIMESTAMPADD(day, -1, CURRENT_TIMESTAMP)
GROUP BY 1
ORDER BY 2 DESC

 

아래 쿼리를 날리면 아래와 같이 나온다. 

 

 

위 사진에서 보면 select 비용이 0.00017 이 나왔다. 그리고 다시 select 문을 날려보겠다. 

 

 

그럼 사용 요금이 0.000311 비용이 발생한걸 확인 할 수 있다. 이처럼 select 한 쿼리의 비용이 얼마인지 계산해 한달 사용 요금을 계산할 수 있다. 

 

 

2. 웨어 하우스별 비용

SELECT start_time,
  warehouse_name,
  credits_used_compute
FROM snowflake.account_usage.warehouse_metering_history
WHERE 1=1
  AND warehouse_id > 0  -- Skip pseudo-VWs such as "CLOUD_SERVICES_ONLY"
ORDER BY 1 DESC, 2;

 

그럼 아래와 같이 비용이 나온다. 

 

 

 

이상 snowflake sql 관련해서 정리를 끝내겠다. 

반응형