컴퓨팅 비용 살펴보기¶
총 컴퓨팅 비용은 다음의 전체 사용 비용으로 구성됩니다.
가상 웨어하우스(사용자 관리 컴퓨팅 리소스)
Snowflake 관리 컴퓨팅 리소스를 사용하는 자동 클러스터링 및 Snowpipe와 같은 서버리스 기능
Snowflake 아키텍처의 클라우드 서비스 계층
이 항목에서는 Snowsight 를 사용하거나 ACCOUNT_USAGE 및 ORGANIZATION_USAGE 스키마의 뷰에 대한 쿼리를 작성하여 과거 컴퓨팅 비용에 대한 인사이트를 얻는 방법을 설명합니다. Snowsight 를 사용하면 시각적 대시보드에서 비용에 대한 정보를 빠르고 쉽게 얻을 수 있습니다. 비용 데이터를 드릴다운할 수 있는 사용량 뷰에 대한 쿼리는 사용자 지정 보고서와 대시보드를 생성하는 데 도움이 될 수 있습니다.
컴퓨팅 비용이 어떻게 발생하는지에 대한 자세한 정보가 필요하면 컴퓨팅 비용 이해하기 섹션을 참조하십시오.
참고
클라우드 서비스 계층은 크레딧을 소비하지만 해당 크레딧이 전부 실제로 청구되는 것은 아닙니다. 클라우드 서비스 사용량은 클라우드 서비스 일일 소비량이 가상 웨어하우스 일일 사용량의 10%를 초과하는 경우에만 청구됩니다. Snowsight 및 대다수 뷰에는 클라우드 서비스에 대한 이런 일일 조정을 고려하지 않고 웨어하우스, 서버리스 기능, 클라우드 서비스에서 소비한 총 크레딧 수가 표시됩니다. 컴퓨팅 비용에 대해 실제로 청구된 크레딧 수를 확인하려면 METERING_DAILY_HISTORY 뷰 에 대해 쿼리를 실행하십시오.
크레딧 사용 보기¶
모든 컴퓨팅 리소스(가상 웨어하우스, 서버리스, 클라우드 서비스)는 Snowflake 크레딧을 사용합니다. 사용자는 Snowsight 를 사용하여 지정된 일, 주 또는 월의 전체 컴퓨팅 사용 비용을 볼 수 있습니다.
컴퓨팅 비용을 탐색하는 방법:
Snowsight 에 로그인합니다.
ACCOUNTADMIN 역할로 전환합니다. 계정 관리자가 아닌 경우 비용 및 사용량 데이터 액세스 권한 을 가진 역할로 전환하십시오.
Admin » Cost Management 으로 이동합니다.
사용 데이터를 보기 위해 사용할 웨어하우스를 선택합니다. 이를 위해 XS 웨어하우스를 사용하는 것이 좋습니다.
Consumption 을 선택합니다.
사용 유형 드롭다운에서 Compute 를 선택합니다.
참고
사용자에게 ACCOUNTADMIN 역할이 있지만 ORGADMIN 역할이 없는 경우 현재 계정의 비용만 볼 수 있습니다. 다른 계정으로 전환할 수 있는 Account 필터가 표시되지 않습니다.
태그로 필터링하기¶
태그를 사용하여 조직 내 논리 단위에 리소스를 사용하는 비용의 출처를 밝힐 수 있습니다. 태그는 하나 이상의 값이 연결되어 있을 수 있는 Snowflake 오브젝트입니다. 적절한 권한이 있는 사용자는 비용 센터 또는 기타 논리 단위(예: 개발 환경, 사업부 또는 사업 분야)에서 사용되는 각 리소스에 태그/값 페어를 적용합니다. 리소스에 태그가 지정되면 특정 태그/값 페어를 기준으로 비용을 분리하여 이 비용을 특정 논리 단위에 귀속할 수 있습니다.
특정 태그/값 조합과 관련된 비용을 표시하도록 Consumption 대시보드를 필터링하는 방법:
Snowsight 에서 Consumption 대시보드를 엽니다.
Tags 드롭다운에서 태그를 선택합니다.
태그 값 목록에서 값을 선택합니다.
Apply 를 선택합니다.
예를 들어 드롭다운을 사용하여 COST_CENTER
태그와 SALES
값을 선택하여 COST_CENTER = SALES
로 태그가 지정된 리소스와 관련된 사용량을 표시하면서 다른 모든 사용량은 대시보드에서 제외할 수 있습니다.
태그 값에 관계없이 태그가 있는 모든 리소스를 표시할 수도 있습니다. 드롭다운을 사용하여 태그를 선택한 다음, 특정 값 대신 All 을 선택합니다.
유형, 서비스 또는 리소스별 사용량 보기¶
컴퓨팅 기록을 표시하는 막대그래프를 볼 때 데이터를 By Type, By Service 또는 By Resource 로 필터링할 수 있습니다.
- By Type:
리소스 사용을 컴퓨팅(가상 웨어하우스 및 서버리스 리소스)과 클라우드 서비스로 구분합니다. 이 필터의 목적상, 클라우드 서비스는 다른 유형의 컴퓨팅 리소스와는 구분됩니다.
- By Service:
리소스 사용을 웨어하우스 사용과 각 서버리스 기능에 의한 사용으로 구분합니다. 예를 들어 WAREHOUSE_METERING은 웨어하우스에서 사용한 크레딧을 나타내는 반면, PIPE는 서버리스 Snowpipe 기능에서 사용한 크레딧을 나타냅니다. 클라우드 서비스 컴퓨팅은 웨어하우스 사용에 포함됩니다.
- By Resource:
크레딧을 사용한 Snowflake 오브젝트별로 리소스 사용을 구분합니다. 예를 들어 서버리스 비용이 발생한 모든 테이블과 마찬가지로 각 웨어하우스가 표시됩니다.
컴퓨팅 비용 데이터 쿼리하기¶
Snowflake는 사용량 및 비용과 관련된 데이터가 포함된 ORGANIZATION_USAGE 및 ACCOUNT_USAGE 의 두 가지 스키마를 제공합니다. ORGANIZATION_USAGE 스키마는 조직의 모든 계정에 대한 비용 정보를 제공하는 반면, ACCOUNT_USAGE 스키마는 단일 계정에 대해 그와 유사한 정보를 제공합니다. 이러한 스키마의 뷰는 사용자 지정 보고서 또는 대시보드를 만들 수 있도록 바로 분석할 수 있는 세분화된 사용량 데이터를 제공합니다.
ORGANIZATION_USAGE 및 ACCOUNT_USAGE 스키마에서 대부분의 뷰는 사용된 크레딧 측면에서의 컴퓨팅 리소스 비용을 포함합니다. 크레딧이 아닌 통화로 컴퓨팅 비용을 탐색하려면 USAGE_IN_CURRENCY_DAILY 뷰 에 대한 쿼리를 작성하십시오. 이 뷰에서는 크레딧의 일일 가격을 사용하여 사용된 크레딧을 통화 단위의 비용으로 변환합니다.
다음 뷰는 컴퓨팅 비용과 관련된 사용량 및 비용 정보를 제공합니다.
뷰 |
컴퓨팅 리소스 |
설명 |
스키마 |
---|---|---|---|
AUTOMATIC_CLUSTERING_HISTORY |
서버리스 |
자동 클러스터링에 사용된 크레딧. |
|
DATABASE_REPLICATION_USAGE_ HISTORY |
서버리스 |
데이터베이스 복제에 사용된 크레딧. |
|
HYBRID_TABLE_USAGE_HISTORY |
서버리스 |
하이브리드 테이블 요청 리소스에 사용된 크레딧. |
|
LISTING_AUTO_FULFILLMENT_ REFRESH_DAILY |
웨어하우스 |
클라우드 간 자동 복제에 의해 다른 리전으로 복제된 데이터를 새로 고치는 데 사용되는 크레딧. |
|
LISTING_AUTO_FULFILLMENT_ USAGE_HISTORY |
웨어하우스 |
클라우드 간 자동 복제를 사용하여 다른 리전으로 데이터 제품을 복제하는 것과 관련된 예상 사용량입니다. REPLICATION의 SERVICE_TYPE을 참조하십시오. |
|
MATERIALIZED_VIEW_REFRESH_ HISTORY |
서버리스 |
구체화된 뷰의 새로 고침에 사용된 크레딧. |
|
METERING_DAILY_HISTORY |
웨어하우스 서버리스 클라우드 서비스 |
지정된 날짜에 모든 컴퓨팅 리소스(웨어하우스, 서버리스 및 클라우드 서비스)에서 사용한 크레딧. 특정 날짜에 대해 클라우드 서비스 컴퓨팅 비용이 실제로 청구되었는지(즉, 클라우드 서비스 크레딧 사용량이 웨어하우스 사용량의 10% 초과) 여부를 확인하는 데 사용할 수 있습니다. |
|
METERING_HISTORY |
웨어하우스 서버리스 클라우드 서비스 |
웨어하우스 및 클라우드 서비스에서 시간당 사용한 크레딧. 개별 웨어하우스가 사용 중인 크레딧을 보려면 WAREHOUSE_METERING_HISTORY 뷰를 쿼리하십시오. |
|
PIPE_USAGE_HISTORY |
서버리스 |
Snowpipe에서 사용된 크레딧. |
|
QUERY_ACCELERATION_HISTORY |
서버리스 |
Query Acceleration Service에서 사용된 크레딧. |
|
REPLICATION_USAGE_HISTORY |
서버리스 |
데이터베이스 복제 중에 사용된 크레딧과 전송된 바이트 수. 가능하면 DATABASE_REPLICATION_USAGE_HISTORY 뷰 를 대신 사용하십시오. |
|
REPLICATION_GROUP_USAGE_ HISTORY |
서버리스 |
특정 복제 그룹에 대한 복제 중 사용된 크레딧과 전송된 바이트 수. |
|
SEARCH_OPTIMIZATION_HISTORY |
서버리스 |
검색 최적화 서비스에서 사용된 크레딧. |
|
SERVERLESS_TASK_HISTORY |
서버리스 |
작업에서 사용된 크레딧. |
|
SNOWPIPE_STREAMING_FILE_ MIGRATION_HISTORY |
서버리스 |
Snowpipe Streaming 컴퓨팅에서 사용하는 크레딧(클라이언트 비용은 포함하지 않음). |
|
USAGE_IN_CURRENCY_DAILY |
웨어하우스 서버리스 클라우드 서비스 |
모든 컴퓨팅 리소스의 일일 크레딧 사용량과 조직의 통화로 표시된 해당 사용량의 비용. |
|
WAREHOUSE_METERING_HISTORY |
웨어하우스 클라우드 서비스 |
웨어하우스 사용과 관련된 클라우드 서비스 비용을 포함하여, 각 웨어하우스의 시간당 크레딧 사용. |
참고
Snowflake Information Schema 의 뷰 및 테이블 함수는 비용과 관련된 사용량 데이터도 제공합니다. ACCOUNT_USAGE 스키마가 선호되지만, 상황에 따라서는 Information Schema가 더 빠를 수 있습니다.
예제 쿼리¶
다음 쿼리는 ACCOUNT_USAGE 뷰의 데이터를 드릴다운하여 컴퓨팅 비용에 대한 인사이트를 얻습니다.
참고
Account Usage 스키마의 뷰에 대해 실행된 쿼리를 수정하면 Organization Usage 스키마의 해당 뷰를 사용하여 전체 조직의 비용에 대한 인사이트를 얻을 수 있습니다. 예를 들어 두 스키마 모두 WAREHOUSE_METERING_HISTORY 뷰를 포함합니다.
전체 SQL 예제를 보려면 아래 쿼리의 이름을 클릭하십시오.
- 웨어하우스에 대한 계산:
- 클라우드 서비스에 대한 계산:
- 자동 클러스터링에 대한 계산:
- 검색 최적화에 대한 계산:
- 구체화된 뷰에 대한 계산:
- Query Acceleration Service 요금 계산:
- Snowpipe에 대한 계산:
- Snowpipe Streaming의 컴퓨팅 및 클라이언트 비용:
- 작업 요금 계산:
- 복제에 대한 계산:
- 파트너 도구에 대한 계산:
- 하이브리드 테이블에 대한 계산:
웨어하우스에 대한 계산¶
- 쿼리: 지난 m일 동안 (모든 웨어하우스에서 발생한) 평균 시간당 Snowflake 지출
이 쿼리는 지난 m일 동안의 사용 추세(피크, 밸리) 이해에 도움이 되는 시간당 총 크레딧 사용을 보여줍니다. 이 쿼리는 하루 중 사용이 급증하는 시간을 파악하는 데 도움이 됩니다.
SELECT start_time, warehouse_name, credits_used_compute FROM snowflake.account_usage.warehouse_metering_history WHERE start_time >= DATEADD(day, -m, CURRENT_TIMESTAMP()) AND warehouse_id > 0 -- Skip pseudo-VWs such as "CLOUD_SERVICES_ONLY" ORDER BY 1 DESC, 2; -- by hour SELECT DATE_PART('HOUR', start_time) AS start_hour, warehouse_name, AVG(credits_used_compute) AS credits_used_compute_avg FROM snowflake.account_usage.warehouse_metering_history WHERE start_time >= DATEADD(day, -m, CURRENT_TIMESTAMP()) AND warehouse_id > 0 -- Skip pseudo-VWs such as "CLOUD_SERVICES_ONLY" GROUP BY 1, 2 ORDER BY 1, 2;
- 쿼리: 특정 기간에 걸친 웨어하우스별 크레딧 사용
이 쿼리는 특정 기간에 각 웨어하우스의 총 크레딧 사용을 보여줍니다. 이는 다른 웨어하우스보다 많은 크레딧을 사용 중인 웨어하우스와 예상보다 많은 크레딧을 사용 중인 특정 웨어하우스의 식별에 도움이 됩니다.
-- Credits used (all time = past year) SELECT warehouse_name, SUM(credits_used_compute) AS credits_used_compute_sum FROM snowflake.account_usage.warehouse_metering_history GROUP BY 1 ORDER BY 2 DESC; -- Credits used (past N days/weeks/months) SELECT warehouse_name, SUM(credits_used_compute) AS credits_used_compute_sum FROM snowflake.account_usage.warehouse_metering_history WHERE start_time >= DATEADD(day, -m, CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC;
- 쿼리: m일 평균에 대한 웨어하우스 사용량
이 쿼리는 주별 및 웨어하우스별로 분류된 일일 평균 크레딧 사용을 반환합니다. 작년부터 주별로 웨어하우스의 크레딧 사용 데이터에서 이상을 식별하는 데 사용할 수 있습니다.
WITH cte_date_wh AS ( SELECT TO_DATE(start_time) AS start_date, warehouse_name, SUM(credits_used) AS credits_used_date_wh FROM snowflake.account_usage.warehouse_metering_history GROUP BY start_date, warehouse_name ) SELECT start_date, warehouse_name, credits_used_date_wh, AVG(credits_used_date_wh) OVER (PARTITION BY warehouse_name ORDER BY start_date ROWS m PRECEDING) AS credits_used_m_day_avg, 100.0*((credits_used_date_wh / credits_used_m_day_avg) - 1) AS pct_over_to_m_day_average FROM cte_date_wh QUALIFY credits_used_date_wh > 100 -- Minimum N=100 credits AND pct_over_to_m_day_average >= 0.5 -- Minimum 50% increase over past m day average ORDER BY pct_over_to_m_day_average DESC;
클라우드 서비스에 대한 계산¶
- 쿼리: 청구된 클라우드 서비스
클라우드 서비스의 사용 요금 은 클라우드 서비스의 일일 사용량이 가상 웨어하우스 일일 사용량의 10%를 초과하는 경우에만 청구됩니다. 이 쿼리는 특정 날짜에 실제로 청구된 클라우드 서비스 소비량을 가장 높은 청구 금액 순으로 반환합니다.
SELECT usage_date, credits_used_cloud_services, credits_adjustment_cloud_services, credits_used_cloud_services + credits_adjustment_cloud_services AS billed_cloud_services FROM snowflake.account_usage.metering_daily_history WHERE usage_date >= DATEADD(month,-1,CURRENT_TIMESTAMP()) AND credits_used_cloud_services > 0 ORDER BY 4 DESC;
- 쿼리: 쿼리 유형별 총 클라우드 서비스 비용
이 쿼리는 특정 유형의 쿼리에서 클라우드 서비스에 사용한 총 크레딧을 반환합니다.
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 LIMIT 10;
- 쿼리: 특정 유형의 쿼리에 대한 클라우드 서비스 비용
이 쿼리는 특정 유형의 모든 쿼리에서 클라우드 서비스에 사용한 총 크레딧을 반환합니다. 다른 유형의 쿼리에 집중하려면
'COPY'
를, 더 길거나 더 짧은 기간을 탐색하려면day
를 바꾸십시오.SELECT * FROM snowflake.account_usage.query_history WHERE true AND start_time >= TIMESTAMPADD(day, -1, CURRENT_TIMESTAMP) AND query_type = 'COPY' ORDER BY credits_used_cloud_services DESC LIMIT 10;
- 쿼리: 클라우드 서비스 사용량이 많은 웨어하우스
이 쿼리는 컴퓨팅의 클라우드 서비스 부분을 다루기에 충분한 웨어하우스 시간을 사용하지 않는 웨어하우스를 보여줍니다. 이 쿼리는 클라우드 서비스 사용 비율이 높은(전체 크레딧의 10% 이상) 웨어하우스를 분리하여 추가 조사를 위한 출발점을 제공합니다. 복제, S3의 파일 나열, 파트너 도구, 세션 매개 변수 설정 등과 관련된 문제가 조사 대상에 포함됩니다.
SELECT warehouse_name, SUM(credits_used) AS credits_used, SUM(credits_used_cloud_services) AS credits_used_cloud_services, SUM(credits_used_cloud_services)/SUM(credits_used) AS percent_cloud_services FROM snowflake.account_usage.warehouse_metering_history WHERE TO_DATE(start_time) >= DATEADD(month,-1,CURRENT_TIMESTAMP()) AND credits_used_cloud_services > 0 GROUP BY 1 ORDER BY 4 DESC;
- 쿼리: 쿼리 시간에서 부분별로 정렬된 클라우드 서비스 사용량
이 쿼리는 지난 1분 이내에 실행된 모든 쿼리를 반환하고 총 쿼리 실행 시간의 일부(예: 컴파일 시간 대 큐 시간)를 기준으로 이들 쿼리를 정렬합니다.
SELECT * FROM snowflake.account_usage.query_history WHERE true AND start_time >= TIMESTAMPADD(minute, -60, CURRENT_TIMESTAMP) ORDER BY compilation_time DESC, execution_time DESC, list_external_files_time DESC, queued_overload_time DESC, credits_used_cloud_services DESC LIMIT 10;
자동 클러스터링에 대한 계산¶
- 쿼리: 자동 클러스터링 비용 기록(일별, 오브젝트별)
이 쿼리는 자동 클러스터링과 지난 30일간 하루 단위로 나누어 이 서비스를 통해 사용된 크레딧 볼륨이 포함된 테이블의 목록을 제공합니다. 크레딧 사용의 불규칙성 또는 지속적으로 높은 사용량은 추가로 조사해봐야 할 대상입니다.
SELECT TO_DATE(start_time) AS date, database_name, schema_name, table_name, SUM(credits_used) AS credits_used FROM snowflake.account_usage.automatic_clustering_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2,3,4 ORDER BY 5 DESC;
- 쿼리: 자동 클러스터링 기록 및 m일 평균
이 쿼리는 작년에 자동 클러스터링에서 사용된 평균 일일 크레딧을 주 단위로 나누어 보여줍니다. 이는 그 해의 일일 평균 이상을 식별하는 데 도움이 될 수 있으므로 사용량의 급증이나 예상치 못한 변화를 조사할 수 있습니다.
WITH credits_by_day AS ( SELECT TO_DATE(start_time) AS date, SUM(credits_used) AS credits_used FROM snowflake.account_usage.automatic_clustering_history WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC ) SELECT DATE_TRUNC('week',date), AVG(credits_used) AS avg_daily_credits FROM credits_by_day GROUP BY 1 ORDER BY 1;
검색 최적화에 대한 계산¶
- 쿼리: 검색 최적화 비용 기록(일별, 오브젝트별)
이 쿼리는 검색 최적화와 지난 30일간 하루 단위로 나누어 이 서비스를 통해 사용된 크레딧 볼륨이 포함된 테이블의 전체 목록을 제공합니다. 크레딧 사용의 불규칙성 또는 지속적으로 높은 사용량은 추가로 조사해봐야 할 대상입니다.
SELECT TO_DATE(start_time) AS date, database_name, schema_name, table_name, SUM(credits_used) AS credits_used FROM snowflake.account_usage.search_optimization_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2,3,4 ORDER BY 5 DESC;
- 쿼리: 검색 최적화 기록 및 m일 평균
이 쿼리는 작년에 검색 최적화에서 사용된 평균 일일 크레딧을 주 단위로 나누어 보여줍니다. 이는 그 해의 일일 평균 이상을 식별하는 데 도움이 될 수 있으므로 사용량의 급증이나 예상치 못한 변화를 조사할 수 있습니다.
WITH credits_by_day AS ( SELECT TO_DATE(start_time) AS date, SUM(credits_used) AS credits_used FROM snowflake.account_usage.search_optimization_history WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC ) SELECT DATE_TRUNC('week', date), AVG(credits_used) as avg_daily_credits FROM credits_by_day GROUP BY 1 ORDER BY 1;
구체화된 뷰에 대한 계산¶
- 쿼리: 구체화된 뷰 비용 기록(일별, 오브젝트별)
이 쿼리는 구체화된 뷰와 지난 30일간 하루 단위로 나누어 이 서비스를 통해 사용된 크레딧 볼륨의 전체 목록을 제공합니다. 크레딧 사용의 불규칙성 또는 지속적으로 높은 사용량은 추가로 조사해봐야 할 대상입니다.
SELECT TO_DATE(start_time) AS date, database_name, schema_name, table_name, SUM(credits_used) AS credits_used FROM snowflake.account_usage.materialized_view_refresh_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2,3,4 ORDER BY 5 DESC;
- 쿼리: 구체화된 뷰 기록 및 m일 평균
이 쿼리는 작년에 구체화된 뷰에서 사용된 평균 일일 크레딧을 주 단위로 나누어 보여줍니다. 이는 그 해의 일일 평균 이상을 식별하는 데 도움이 될 수 있으므로 사용량의 급증이나 예상치 못한 변화를 조사할 수 있습니다.
WITH credits_by_day AS ( SELECT TO_DATE(start_time) AS date, SUM(credits_used) AS credits_used FROM snowflake.account_usage.materialized_view_refresh_history WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC ) SELECT DATE_TRUNC('week',date), AVG(credits_used) AS avg_daily_credits FROM credits_by_day GROUP BY 1 ORDER BY 1;
Query Acceleration Service 요금 계산¶
- 쿼리: 웨어하우스별 Query Acceleration Service 비용
이 쿼리는 Query Acceleration Service에 대해 계정의 각 웨어하우스에서 사용한 크레딧(당월 합계)의 총수를 반환합니다.
SELECT warehouse_name, SUM(credits_used) AS total_credits_used FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_HISTORY WHERE start_time >= DATE_TRUNC(month, CURRENT_DATE) GROUP BY 1 ORDER BY 2 DESC;
Snowpipe 및 Snowpipe Streaming을 위한 컴퓨팅¶
- 쿼리: 데이터 수집의 누적 사용량(Snowpipe 및 “복사”)
이 쿼리는 평균 파일 크기, 전체 행 수, 전체 볼륨, 수집 방법(복사 또는 Snowpipe)을 보여주는 Snowflake의 각 테이블에 대한 모든 로드의 집계된 일일 요약 정보를 반환합니다. 파일 크기가 최적의 수집에는 너무 작거나 큰 경우 추가적인 조사/최적화가 필요할 수 있습니다. 볼륨을 크레딧 사용에 매핑하여 로딩된 TB당 더 많은 크레딧을 사용하는 테이블을 확인할 수 있습니다.
SELECT TO_DATE(last_load_time) AS load_date, status, table_catalog_name AS database_name, table_schema_name AS schema_name, table_name, CASE WHEN pipe_name IS NULL THEN 'COPY' ELSE 'SNOWPIPE' END AS ingest_method, SUM(row_count) AS row_count, SUM(row_parsed) AS rows_parsed, AVG(file_size) AS avg_file_size_bytes, SUM(file_size) AS total_file_size_bytes, SUM(file_size)/POWER(1024,1) AS total_file_size_kb, SUM(file_size)/POWER(1024,2) AS total_file_size_mb, SUM(file_size)/POWER(1024,3) AS total_file_size_gb, SUM(file_size)/POWER(1024,4) AS total_file_size_tb FROM snowflake.account_usage.copy_history GROUP BY 1,2,3,4,5,6 ORDER BY 3,4,5,1,2;
- 쿼리: Snowpipe 비용 기록(일별, 오브젝트별)
이 쿼리는 파이프와 지난 30일간 하루 단위로 나누어 이 서비스를 통해 사용된 크레딧 볼륨의 전체 목록을 제공합니다. 크레딧 사용의 불규칙성 또는 지속적으로 높은 사용량은 추가로 조사해봐야 할 대상입니다.
SELECT TO_DATE(start_time) AS date, pipe_name, SUM(credits_used) AS credits_used FROM snowflake.account_usage.pipe_usage_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2 ORDER BY 3 DESC;
- 쿼리: Snowpipe 기록 및 m일 평균
이 쿼리는 작년에 Snowpipe에서 사용된 평균 일일 크레딧을 주 단위로 나누어 보여줍니다. 이는 그 해의 일일 평균 이상을 식별하는 데 도움이 될 수 있으므로 사용량의 급증이나 예상치 못한 변화를 조사할 수 있습니다.
WITH credits_by_day AS ( SELECT TO_DATE(start_time) AS date, SUM(credits_used) AS credits_used FROM snowflake.account_usage.pipe_usage_history WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC ) SELECT DATE_TRUNC('week',date), AVG(credits_used) AS avg_daily_credits FROM credits_by_day GROUP BY 1 ORDER BY 1;
- 쿼리: 총 Snowpipe Streaming 비용
이 쿼리를 실행하면 Snowpipe Streaming 컴퓨팅 비용과 클라이언트 비용을 모두 포함하여 Snowpipe Streaming의 현재 크레딧 사용 내역이 나열됩니다.
SELECT start_time, end_time, SUM(credits_used) AS total_credits, name, IFF(CONTAINS(name,':'),'streaming client cost', 'streaming compute cost') AS streaming_cost_type FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_HISTORY WHERE service_type ='SNOWPIPE_STREAMING' GROUP BY ALL;
작업 요금 계산¶
- 쿼리: 총 작업 비용
다음 쿼리는 모든 서버리스 작업의 현재 크레딧 사용 정보를 나열합니다.
SELECT start_time, end_time, task_id, task_name, credits_used, schema_id, schema_name, database_id, database_name FROM snowflake.account_usage.serverless_task_history ORDER BY start_time, task_id;
복제에 대한 계산¶
- 쿼리: 계정 복제 비용
이 쿼리를 실행하면 이번 달의 계정 복제에 대해 복제 또는 장애 조치 그룹에서 사용하는 크레딧이 나열됩니다.
SELECT start_time, end_time, replication_group_name, credits_used, bytes_transferred FROM snowflake.account_usage.replication_group_usage_history WHERE start_time >= DATE_TRUNC('month', CURRENT_DATE());
- 쿼리: 데이터베이스 복제 비용 기록(일별, 오브젝트별)
이 쿼리는 복제 데이터베이스와 지난 30일간 하루 단위로 나누어 복제 서비스를 통해 사용된 크레딧 볼륨의 전체 목록을 제공합니다. 크레딧 사용의 불규칙성 또는 지속적으로 높은 사용량은 추가로 조사해봐야 할 대상입니다.
SELECT TO_DATE(start_time) AS date, database_name, SUM(credits_used) AS credits_used FROM snowflake.account_usage.database_replication_usage_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2 ORDER BY 3 DESC;
- 쿼리: 데이터베이스 복제 기록 및 m일 평균
이 쿼리는 작년에 복제에서 사용된 평균 일일 크레딧을 주 단위로 나누어 보여줍니다. 이 쿼리는 일일 평균의 이상을 파악하는 데 도움이 되므로 사용의 급증 또는 변화를 조사할 수 있습니다.
WITH credits_by_day AS ( SELECT TO_DATE(start_time) AS date, SUM(credits_used) AS credits_used FROM snowflake.account_usage.database_replication_usage_history WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC ) SELECT DATE_TRUNC('week',date), AVG(credits_used) AS avg_daily_credits FROM credits_by_day GROUP BY 1 ORDER BY 1;
파트너 도구에 대한 계산¶
- 쿼리: 파트너 도구별 크레딧 사용
이 쿼리는 Snowflake의 어떤 파트너 도구/솔루션(예: BI, ETL 등)이 가장 많은 크레딧을 사용 중인지 식별합니다. 이 쿼리는 예상보다 많은 크레딧을 사용 중인 파트너 솔루션을 식별하는 데 도움이 될 수 있으며, 이는 추가 조사를 위한 출발점이 될 수 있습니다.
-- This Is Approximate Credit Consumption By Client Application WITH client_hour_execution_cte AS ( SELECT CASE WHEN client_application_id LIKE 'Go %' THEN 'Go' WHEN client_application_id LIKE 'Snowflake UI %' THEN 'Snowflake UI' WHEN client_application_id LIKE 'SnowSQL %' THEN 'SnowSQL' WHEN client_application_id LIKE 'JDBC %' THEN 'JDBC' WHEN client_application_id LIKE 'PythonConnector %' THEN 'Python' WHEN client_application_id LIKE 'ODBC %' THEN 'ODBC' ELSE 'NOT YET MAPPED: ' || CLIENT_APPLICATION_ID END AS client_application_name, warehouse_name, DATE_TRUNC('hour',start_time) AS start_time_hour, SUM(execution_time) AS client_hour_execution_time FROM snowflake.account_usage.query_history qh JOIN snowflake.account_usage.sessions se ON se.session_id = qh.session_id WHERE warehouse_name IS NOT NULL AND execution_time > 0 AND start_time > DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2,3 ), hour_execution_cte AS ( SELECT start_time_hour, warehouse_name, SUM(client_hour_execution_time) AS hour_execution_time FROM client_hour_execution_cte GROUP BY 1,2 ), approximate_credits AS ( SELECT A.client_application_name, C.warehouse_name, (A.client_hour_execution_time/B.hour_execution_time)*C.credits_used AS approximate_credits_used FROM client_hour_execution_cte A JOIN hour_execution_cte B ON A.start_time_hour = B.start_time_hour and B.warehouse_name = A.warehouse_name JOIN snowflake.account_usage.warehouse_metering_history C ON C.warehouse_name = A.warehouse_name AND C.start_time = A.start_time_hour ) SELECT client_application_name, warehouse_name, SUM(approximate_credits_used) AS approximate_credits_used FROM approximate_credits GROUP BY 1,2 ORDER BY 3 DESC;
하이브리드 테이블에 대한 계산¶
- 쿼리: 특정 기간 동안 하이브리드 테이블의 크레딧 소비
이 쿼리는 특정 기간 동안 각 하이브리드 테이블의 총 크레딧 소비를 보여줍니다. 이는 다른 하이브리드 테이블보다 많은 크레딧을 사용 중인 하이브리드 테이블과 예상보다 많은 크레딧을 사용 중인 특정 하이브리드 테이블의 식별에 도움이 됩니다.
-- Credits used (all time = past year) SELECT object_name, SUM(credits_used) AS total_credits FROM snowflake.account_usage.hybrid_table_usage_history GROUP BY 1 ORDER BY 2 DESC; -- Credits used (past N days/weeks/months) SELECT object_name, SUM(credits_used) AS total_credits FROM snowflake.account_usage.hybrid_table_usage_history WHERE start_time >= DATEADD(day, -m, CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC;