Exploração do custo de computação¶
O custo total de computação consiste no uso geral de:
Warehouses virtuais (recursos de computação gerenciados pelo usuário)
Recursos sem servidor, como Clustering automático e Snowpipe que utilizam recursos de computação gerenciados por Snowflake
Camada de serviços de nuvem da arquitetura Snowflake
Este tópico descreve como obter uma visão dos custos históricos de computação usando Snowsight, ou escrevendo consultas cem exibições nos esquemas ACCOUNT_USAGE e ORGANIZATION_USAGE. A Snowsight permite obter informações de maneira rápida e fácil sobre custos a partir de um painel visual. Consultas em relação a exibições de uso permitem a pesquisa de dados de custos e podem ajudar a gerar relatórios e painéis personalizados.
Se você precisar de mais informações sobre como estes custos de computação são incorridos, consulte Explicação dos custos de computação.
Nota
A camada de serviços de nuvem consome créditos, mas nem todos esses créditos são realmente cobrados. O uso de serviços em nuvem será cobrado somente se o consumo diário de serviços de nuvem exceder 10% do uso diário de warehouses virtuais. Snowsight e a maioria das exibições mostram o número total de créditos consumidos por warehouses, recursos sem servidor e serviços de nuvem sem levar em conta esse ajuste diário aos serviços de nuvem. Para determinar quantos créditos foram realmente cobrados pelos custos de computação, execute consultas na exibição METERING_DAILY_HISTORY.
Visualização do uso de crédito¶
Todos os recursos de computação (warehouses virtuais, sem servidor, serviços de nuvem) consomem créditos do Snowflake. Os usuários podem usar a Snowsight para visualizar o custo total do uso de computação de qualquer dia, semana ou mês.
Para explorar os custos de computação:
Entre em Snowsight.
Mude para a função ACCOUNTADMIN. Se você não for o administrador da conta, mude para uma função com acesso a dados de custo e uso.
Navegue até Admin » Cost Management.
Selecione um warehouse a ser utilizado para visualizar os dados de uso. Snowflake recomenda o uso de um warehouse XS para este fim.
Selecione Consumption.
Selecione Compute no menu suspenso Tipo de uso.
Nota
Se um usuário tiver a função ACCOUNTADMIN, mas não tiver a função ORGADMIN, ele só poderá visualizar os custos da conta atual. O filtro Account que permitiria mudar para uma conta diferente não aparece.
Como filtrar por tag¶
Você pode usar tags para atribuir o custo do uso de recursos a uma unidade lógica dentro de sua organização. Uma tag é um objeto Snowflake que pode ter um ou mais valores associados a ele. Um usuário com os privilégios adequados aplica um par tag/valor a cada recurso que é usado por um centro de custo ou outra unidade lógica (por exemplo, o ambiente de desenvolvimento, uma unidade de negócios ou linha de negócios). Depois que os recursos forem marcados, você pode isolar os custos com base em um par específico de tag/valor, permitindo que você atribua este custo a uma unidade lógica específica.
Para filtrar o painel Consumption para mostrar os custos associados a uma combinação específica de tag/valor:
Em Snowsight, abra o painel Consumption.
No menu suspenso Tags, selecione a tag.
Selecione o valor da lista de valores da tag.
Selecione Apply.
Por exemplo, você pode usar o menu suspenso para selecionar a tag COST_CENTER
e o valor SALES
para mostrar o uso associado aos recursos marcados com COST_CENTER = SALES
enquanto exclui todos os outros usos do painel.
Você também pode exibir todos os recursos com uma tag, independentemente do valor dela. Use o menu suspenso para selecionar uma tag, depois escolha All em vez de um valor específico.
Visualização do consumo por tipo, serviço ou recurso¶
Ao visualizar o gráfico de barras que exibe o histórico de computação, você pode filtrar os dados By Type, By Service ou By Resource.
- Por tipo:
Separa o consumo de recursos em computação (warehouses virtuais e recursos sem servidor) e serviços de nuvem. Para o propósito deste filtro, os serviços de nuvem são separados dos outros tipos de recursos de computação.
- Por serviço:
Separa o consumo de recursos em consumo de warehouse e o consumo por cada recurso sem servidor. Por exemplo, WAREHOUSE_METERING representa créditos consumidos pelos warehouses enquanto PIPE representa créditos consumidos pelo recurso Snowpipe sem servidor. O cálculo dos serviços de nuvem está incluído no consumo do armazém.
- Por recurso:
Separa o consumo de recursos pelo objeto do Snowflake que consumiu créditos. Por exemplo, cada warehouse é representado, assim como todas as tabelas que incorreram em custos sem servidor.
Consulta de dados para custos de computação¶
Snowflake fornece dois esquemas, ORGANIZATION_USAGE e ACCOUNT_USAGE, que contêm dados relacionados ao uso e ao custo. O esquema ORGANIZATION_USAGE fornece informações de custos para todas as contas da organização enquanto o esquema ACCOUNT_USAGE fornece informações semelhantes para uma única conta. Exibições nestes esquemas fornecem dados de uso granulares e prontos para análise e crie relatórios ou painéis personalizados.
A maioria das exibições nos esquemas ORGANIZATION_USAGE e ACCOUNT_USAGE contém o custo de recursos de computação em termos de créditos consumidos. Para explorar o custo de computação na moeda, em vez de créditos, escreva as consultas em relação a Exibição USAGE_IN_CURRENCY_DAILY. Esta exibição converte os créditos consumidos em custo na moeda utilizando o preço diário de um crédito.
As seguintes exibições fornecem informações de uso e custo relacionadas ao custo de computação.
Exibição |
Recurso de computação |
Descrição |
Esquema |
---|---|---|---|
AUTOMATIC_CLUSTERING_HISTORY |
Sem servidor |
Créditos consumidos por clustering automático. |
|
DATABASE_REPLICATION_USAGE_ HISTORY |
Sem servidor |
Créditos consumidos para replicação de banco de dados. |
|
HYBRID_TABLE_USAGE_HISTORY |
Sem servidor |
Créditos consumidos para recursos de solicitações de tabela híbrida. |
|
LISTING_AUTO_FULFILLMENT_ REFRESH_DAILY |
Warehouses |
Créditos usados para atualizar dados preenchidos para outras regiões por preenchimento automático entre nuvens. |
|
LISTING_AUTO_FULFILLMENT_ USAGE_HISTORY |
Warehouses |
Uso estimado associado ao preenchimento de produtos de dados para outras regiões usando o preenchimento automático entre nuvens. Consulte o SERVICE_TYPE de REPLICATION. |
|
MATERIALIZED_VIEW_REFRESH_ HISTORY |
Sem servidor |
Créditos consumidos pela atualização das exibições materializadas. |
|
METERING_DAILY_HISTORY |
Warehouses Sem servidor Serviços de nuvem |
Créditos consumidos por todos os recursos de computação (warehouses, sem servidor e serviços de nuvem) em um determinado dia. Pode ser usado para determinar se os custos dos serviços de nuvem foram realmente faturados por um dia específico (ou seja, o consumo de crédito dos serviços de nuvem excedeu 10% do consumo do warehouse). |
|
METERING_HISTORY |
Warehouses Sem servidor Serviços de nuvem |
Créditos consumidos por warehouses e serviços de nuvem por hora. Para ver quantos créditos um warehouse individual está consumindo, consulte a exibição WAREHOUSE_METERING_HISTORY. |
|
PIPE_USAGE_HISTORY |
Sem servidor |
Créditos consumidos pelo Snowpipe. |
|
QUERY_ACCELERATION_HISTORY |
Sem servidor |
Créditos consumidos pelo Query Acceleration Service. |
|
REPLICATION_USAGE_HISTORY |
Sem servidor |
Créditos consumidos e número de bytes transferidos durante a replicação do banco de dados. Se possível, use a exibição DATABASE_REPLICATION_USAGE_HISTORY em vez disso. |
|
REPLICATION_GROUP_USAGE_ HISTORY |
Sem servidor |
Créditos consumidos e número de bytes transferidos durante a replicação para um grupo de replicação específico. |
|
SEARCH_OPTIMIZATION_HISTORY |
Sem servidor |
Créditos consumidos pelo serviço de otimização de pesquisa. |
|
SERVERLESS_TASK_HISTORY |
Sem servidor |
Créditos consumidos por tarefas. |
|
SNOWPIPE_STREAMING_FILE_ MIGRATION_HISTORY |
Sem servidor |
Créditos consumidos pela computação do Snowpipe Streaming (não inclui os custos do cliente). |
|
USAGE_IN_CURRENCY_DAILY |
Warehouses Sem servidor Serviços de nuvem |
O consumo diário de crédito por todos os recursos de computação junto com o custo desse uso na moeda da organização. |
|
WAREHOUSE_METERING_HISTORY |
Warehouses Serviços de nuvem |
Uso de crédito por hora de cada warehouse, incluindo o custo dos serviços de nuvem associados à utilização do warehouse. |
Nota
As exibições e funções de tabela do Snowflake Information Schema também fornecem dados de uso relacionados ao custo. Embora o esquema ACCOUNT_USAGE seja preferido, o Information Schema pode ser mais rápido em algumas circunstâncias.
Consultas de exemplo¶
As consultas a seguir se aprofundam nos dados das exibições ACCOUNT_USAGE para obter informações sobre os custos de computação.
Nota
As consultas executadas em exibições no esquema do Account Usage podem ser modificadas para obter uma visão do custo para toda a organização, utilizando a exibição correspondente no esquema de Organization Usage. Por exemplo, ambos os esquemas incluem uma exibição WAREHOUSE_METERING_HISTORY.
Clique no nome de uma consulta abaixo para ver o exemplo completo de SQL.
- Computação para warehouses:
- Computação para serviços de nuvem:
- Computação de Clustering automático:
- Computação para otimização de pesquisa:
- Computação para exibições materializadas:
- Computação por Query Acceleration Service:
- Computação para Snowpipe:
- Custos de computação e de cliente para Snowpipe Streaming:
- Computação por tarefas:
- Computação para replicação:
- Computação para ferramentas de parceiros:
- Computação para tabelas híbridas:
Computação para warehouses¶
- Consulta: Média por hora de gasto do Snowflake (em todos os warehouses) durante os últimos m dias
Esta consulta mostra o consumo total de crédito por hora para ajudar a entender as tendências de consumo (picos, vales) ao longo dos últimos m dias. Isto ajuda a identificar as horas do dia em que há picos no consumo.
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;
- Consulta: Consumo de crédito por warehouse durante um período específico
Esta consulta mostra o consumo total de crédito para cada warehouse durante um período específico. Isto ajuda a identificar os warehouses que estão consumindo mais créditos do que outros e warehouses específicos que estão consumindo mais créditos do que o previsto.
-- 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;
- Consulta: Uso do warehouse acima da média de m dias
Esta consulta retorna o consumo médio diário de crédito agrupado por semana e por warehouse. Ele pode ser usado para identificar anomalias no consumo de crédito para warehouses por semanas a partir do ano passado.
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;
Computação para serviços de nuvem¶
- Consulta: serviços de nuvem faturados
O uso de serviços de nuvem é cobrado somente se o consumo diário dos serviços de nuvem exceder 10% do uso diário de warehouses virtuais. Esta consulta retorna quanto do consumo de serviços de nuvem foi realmente cobrado em um determinado dia, ordenado pelo valor faturado mais alto.
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;
- Consulta: custo total dos serviços de nuvem por tipo de consulta
Esta consulta retorna o total de créditos consumidos para serviços de nuvem por um determinado tipo de consulta.
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;
- Consulta: custo dos serviços de nuvem para consultas de um determinado tipo
Esta consulta retorna o total de créditos consumidos para serviços de nuvem por todas as consultas de um tipo específico. Substitua
'COPY'
se você quiser se concentrar em um tipo diferente de consulta eday
se você quiser explorar um período mais longo ou mais curto.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;
- Consulta: Warehouses com alto uso de serviços de nuvem
Esta consulta mostra os warehouses que não estão usando tempo suficiente para cobrir a parte de computação dos serviços de nuvem. Isto proporciona um ponto de partida para investigações adicionais, isolando warehouses com uma alta taxa de uso de serviços de nuvem (>10% dos créditos totais). Os candidatos à investigação incluem problemas com clonagem, listagem de arquivos em S3, ferramentas de parceiros, definição de parâmetros de sessão etc.
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;
- Consulta: utilização de serviços de nuvem ordenados por parte do tempo de consulta
Esta consulta retorna todas as consultas executadas no último minuto e as ordena por partes do tempo total de execução da consulta (por exemplo, tempo de compilação vs. tempo de espera em fila).
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;
Computação de Clustering automático¶
- Consulta: Histórico de custos de Clustering automático (por dia, por objeto)
Esta consulta fornece uma lista de tabelas com Clustering automático e o volume de créditos consumidos através do serviço nos últimos 30 dias, separados por dia. Qualquer irregularidade no consumo do crédito ou consumo consistentemente alto são sinais para investigações adicionais.
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;
- Consulta: Histórico de Clustering automático e média de m dias
Esta consulta mostra a média de créditos diários consumidos pelo Clustering automático agrupados por semana durante o último ano. Ela pode ajudar a identificar anomalias nas médias diárias ao longo do ano, assim você pode investigar mais a fundo os picos ou mudanças inesperadas no consumo.
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;
Computação para otimização de pesquisa¶
- Consulta: Histórico de custos de otimização de pesquisa (por dia, por objeto)
Esta consulta fornece uma lista completa de tabelas com otimização de pesquisa e o volume de créditos consumidos através do serviço durante os últimos 30 dias, separados por dia. Qualquer irregularidade no consumo do crédito ou consumo consistentemente alto são sinais para investigações adicionais.
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;
- Consulta: Histórico de otimização de pesquisa e média de m dias
Esta consulta mostra a média de créditos diários consumidos pela otimização de pesquisa agrupados por semana durante o último ano. Ela pode ajudar a identificar anomalias nas médias diárias ao longo do ano, assim você pode investigar mais a fundo os picos ou mudanças inesperadas no consumo.
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;
Computação para exibições materializadas¶
- Consulta: Histórico de custos das exibições materializadas (por dia, por objeto)
Esta consulta fornece uma lista completa de exibições materializadas e o volume de créditos consumidos através do serviço durante os últimos 30 dias, separados por dia. Qualquer irregularidade no consumo do crédito ou consumo consistentemente alto são sinais para investigações adicionais.
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;
- Consulta: Histórico de exibições materializadas e média de m dias
Esta consulta mostra a média de créditos diários consumidos pelas exibições materializadas agrupados por semana durante o último ano. Ela pode ajudar a identificar anomalias nas médias diárias ao longo do ano, assim você pode investigar mais a fundo os picos ou mudanças inesperadas no consumo.
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;
Computação por Query Acceleration Service¶
- Consulta: Custo do Query Acceleration Service por warehouse
Esta consulta retorna o número total de créditos utilizados por cada warehouse em sua conta para o Query Acceleration Service (mês até a data):
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;
Computação para Snowpipe e Snowpipe Streaming¶
- Consulta: Uso cumulativo de entrada de dados (Snowpipe e “Cópia”)
Esta consulta retorna um resumo diário acumulado de todos os carregamentos para cada tabela no Snowflake mostrando o tamanho médio do arquivo, o total de linhas, o volume total e o método de ingestão (cópia ou Snowpipe). Se o tamanho do arquivo for muito pequeno ou grande para uma ingestão ideal, pode ser necessária uma investigação/otimização adicional. Ao mapear o volume para o consumo de crédito, é possível determinar quais tabelas estão consumindo mais créditos por TB carregado.
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;
- Consulta: Histórico de custo do Snowpipe (por dia, por objeto)
Esta consulta fornece uma lista completa de canais e o volume de créditos consumidos através do serviço durante os últimos 30 dias, separados por dia. Qualquer irregularidade no consumo do crédito ou consumo consistentemente alto são sinais para investigações adicionais.
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;
- Consulta: Histórico do Snowpipe e média de m dias
Esta consulta mostra a média de créditos diários consumidos pelo Snowpipe agrupados por semana durante o último ano. Ela pode ajudar a identificar anomalias nas médias diárias ao longo do ano, assim você pode investigar mais a fundo os picos ou mudanças inesperadas no consumo.
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;
- Consulta: Custo total do Snowpipe Streaming
Esta consulta lista o uso de crédito atual para o Snowpipe Streaming, incluindo custos de computação e de cliente do 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;
Computação para tarefas¶
- Consulta: Custo total da tarefa
Esta consulta lista o uso atual de crédito para todas as tarefas sem servidor:
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;
Computação para replicação¶
- Consulta: Custo da replicação da conta
Esta consulta lista os créditos usados por um grupo de replicação ou failover para replicação de conta no mês corrente:
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());
- Consulta: Histórico de custos de replicação de banco de dados (por dia, por objeto)
Esta consulta fornece uma lista completa de bancos de dados replicados e o volume de créditos consumidos através do serviço de replicação nos últimos 30 dias, separados por dia. Qualquer irregularidade no consumo do crédito ou consumo consistentemente alto são sinais para investigações adicionais.
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;
- Consulta: Histórico da replicação de banco de dados e média de m dias
Esta consulta mostra a média de créditos diários consumidos pela replicação agrupados por semana durante o último ano. Isto ajuda a identificar quaisquer anomalias na média diária, de maneira que você pode investigar quaisquer picos ou mudanças no consumo.
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;
Computação para ferramentas de parceiros¶
- Consulta: Consumo de crédito por ferramentas de parceiros
Esta consulta identifica quais das ferramentas/soluções do parceiro do Snowflake (por exemplo, BI, ETL etc.) estão consumindo o maior número de créditos. Isto pode ajudar a identificar soluções de parceiros que estão consumindo mais créditos do que o previsto, o que pode ser um ponto de partida para investigações adicionais.
-- 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;
Computação para tabelas híbridas¶
- Consulta: consumo de crédito por tabela híbrida em um determinado período
Esta consulta mostra o consumo total de crédito para cada tabela híbrida durante um período específico. Isto ajuda a identificar as tabelas híbridas que estão consumindo mais créditos do que outras e tabelas híbridas específicas que estão consumindo mais créditos do que o previsto.
-- 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;