
Com o avanço dos ambientes multicloud e a demanda por soluções de data warehouse na nuvem que sejam escaláveis, flexíveis e potentes, o Snowflake se firmou como a força dominante do mercado, com uma fatia maior até do que soluções nativas da nuvem como Amazon Redshift e Google BigQuery — e quase o dobro do concorrente terceiro mais próximo.
Mas, como em qualquer serviço de nuvem, uma boa gestão de custos é fundamental para extrair o máximo do investimento. Sem o monitoramento adequado, os custos do Snowflake podem disparar de uma hora para outra, gerando estouros de orçamento e falta de transparência financeira. Nesse aspecto, os dados de custo e uso do Snowflake não são diferentes dos demais provedores de nuvem.
Conforme sua empresa cresce e os custos de nuvem aumentam junto, o data warehousing pode representar uma parcela considerável do gasto em nuvem (algo entre 10% e 50%), principalmente em empresas com demandas pesadas de processamento e analytics. Diante desse impacto sobre o orçamento de TI e operacional, fica evidente a importância de aplicar uma gestão eficaz de custos e uso em todos os principais drivers do seu gasto em nuvem.
Visibilidade total de custos com o Snowflake Lens
Essa necessidade de uma visão única e centralizada foi o que motivou a criação do Snowflake Lens no DoiT Cloud Intelligence™, um dashboard pronto para uso que entrega recursos avançados de analytics e governança para o uso e os custos do Snowflake.
Dashboard do Snowflake Lens
Reunir os custos do Snowflake junto com os dos seus outros provedores de nuvem dá uma visão completa do gasto total. Esse panorama unificado ajuda a identificar como os recursos estão sendo distribuídos entre os diversos serviços (compute, armazenamento, rede e data warehousing) e traz insights mais aprofundados sobre o impacto financeiro de toda a sua infraestrutura na nuvem. Entender como o data warehousing se encaixa no contexto mais amplo do gasto em nuvem também permite decisões melhores sobre alocação de recursos, planejamento orçamentário e identificação de oportunidades de economia.
Depois de conectar sua conta Snowflake ao DoiT Cloud Intelligence — um processo que leva poucos minutos — e fazer a ingestão dos dados, o dashboard é preenchido automaticamente, sem nenhuma configuração extra. São seis widgets de relatório que formam o conteúdo do dashboard:
- Custo mensal por serviço
- Custo mensal por região
- Warehouses mensais por custo
- Custo mensal por tipo de uso
- Top 10 bancos de dados por custo de armazenamento
- Top 10 consultas por usuário
Com o Lens ativo, cada um desses widgets pode ser aberto em um relatório completo do Cloud Analytics, no qual você ajusta o período, adiciona filtros ou agrupamentos e gera análises de tendência para apoiar previsões e orçamentos.
Uma vez ingeridos, os dados também ficam disponíveis em outros recursos do DoiT Cloud Intelligence incluídos na sua assinatura, como Dashboards, Attributions, Anomaly Detection e Alerts. Isso ajuda não só a contextualizar e monitorar os custos do Snowflake, mas também a garantir que você seja avisado (no console ou via integração com Slack/e-mail) sempre que houver um pico de custo fora do esperado.
Otimizando seus custos do Snowflake
Como em qualquer gasto de TI ou nuvem, tirar o máximo do investimento feito no Snowflake depende de manter os custos alinhados ao orçamento — e, quando não estiverem, garantir que eles estejam servindo aos objetivos do negócio. Em outras palavras, nem sempre se trata de cortar custos a qualquer preço, mas de garantir que o dinheiro investido não esteja sendo desperdiçado.
Dito isso, como vários especialistas do time DoiT Cloud Solve podem confirmar, é muito comum encontrar diversas oportunidades de otimização logo nas primeiras auditorias de uso do Snowflake. Então, seja por conta própria ou com a ajuda do nosso time interno de serviços, vale ter em mente algumas estratégias comuns ao revisar esses custos.
Economia em compute
- Faça o right-sizing dos virtual warehouses
Uma das formas mais eficazes de reduzir os custos de compute do Snowflake é garantir que seus virtual warehouses estejam dimensionados de acordo com seus workloads. Warehouses grandes tendem a sair mais caro e, em muitos casos, um menor entrega desempenho parecido para workloads de rotina. Por isso, o ideal é começar pequeno e escalar conforme a necessidade: comece com tamanhos menores, acompanhe a performance e só escale para cima se as consultas precisarem rodar mais rápido. Boa parte dos nossos clientes percebe que os workloads rodam bem em um warehouse x-small na maior parte do tempo, então começar por aí e escalar verticalmente quando preciso costuma ser o melhor caminho.
- Consolide virtual warehouses
Manter vários virtual warehouses para workloads parecidos eleva os custos sem necessidade. Ao consolidar warehouses, principalmente entre times ou áreas com demandas semelhantes de processamento, você reduz o tempo ocioso e aproveita melhor os recursos. Algumas estratégias-chave:
- Pooling de recursos: junte warehouses pequenos e subutilizados em um único warehouse maior, capaz de lidar com várias tarefas em paralelo, melhorando a eficiência dos recursos.
- Auto-scaling: ao usar um virtual warehouse compartilhado com auto-scaling habilitado, o Snowflake ajusta os recursos automaticamente nos picos de demanda, evitando provisionamento excessivo e cortando custos nos períodos ociosos.
- Defina guardrails para consultas
Consultas demoradas ou ineficientes podem consumir muito recurso de compute e fazer os custos dispararem.
- Definir timeouts de consulta: timeouts evitam que consultas descontroladas monopolizem os recursos do warehouse. Configure limites para encerrar consultas que ultrapassem um tempo razoável de execução, economizando recursos e estimulando os usuários a otimizar consultas ineficientes.
- Auto-suspend e Auto-resume: vale também considerar as opções de Auto-suspend e Auto-resume do warehouse — a boa prática é configurar para cerca de 5 minutos (ou menos, em warehouses mais movimentados). Assim você não paga por warehouses ligados sem uso.
- Otimize as Clustering Keys: usar clustering keys no Snowflake pode reduzir bastante o compute necessário nas consultas, já que melhora a eficiência de acesso aos dados e diminui o volume que precisa ser escaneado. Para extrair o máximo das clustering keys, escolha as colunas mais usadas em filtros de consulta (cláusulas "WHERE"), condições de "JOIN" ou operações de ordenação. Assim, o Snowflake organiza os dados de forma a deixar essas consultas mais eficientes.
- Refatore e otimize consultas
Também é importante revisar e otimizar consultas com regularidade para garantir que estejam pensadas em performance e custo-benefício. Indexação adequada, evitar varreduras desnecessárias e reduzir joins ajudam a melhorar o desempenho e a baixar os custos.
Economia em armazenamento
- Remova tabelas e dados sem uso
Com o tempo, os warehouses do Snowflake acumulam tabelas sem uso, dados desatualizados e backups desnecessários — e tudo isso pesa no custo de armazenamento. Identificar e remover tabelas inutilizadas com regularidade ajuda a economizar. Uma fonte comum são as tabelas de staging usadas em jobs de ETL e que nunca foram apagadas, inflando os custos sem necessidade. Você também pode automatizar a remoção dessas tabelas após a conclusão dos jobs para que isso não se repita.
- Otimize a compressão de dados
O Snowflake comprime os dados automaticamente para reduzir o armazenamento, mas otimizar como você armazena os dados pode aumentar ainda mais a eficiência da compressão. Por isso, escolha formatos altamente comprimíveis como Parquet ou ORC, que comprimem melhor do que formatos como CSV. Esses formatos ajudam a reduzir o footprint dos dados sem comprometer a performance.
- Otimize as configurações de retenção de dados
Os recursos Time Travel e Fail-safe do Snowflake permitem acessar dados históricos por um determinado período, mas também geram custos de armazenamento. Ajustar as configurações de retenção ajuda a economizar — por exemplo, encurtando o período de retenção do Time Travel ou limitando o do Fail-safe. O Fail-safe oferece uma janela de recuperação de 7 dias após o vencimento do Time Travel, mas esse armazenamento extra pode sair caro. Usar o Fail-safe só quando realmente necessário evita grandes picos de custo lá na frente.
- Use tabelas temporárias ou transitórias
Usar tabelas temporárias e transitórias no Snowflake é uma forma eficaz de reduzir custos de armazenamento, principalmente para dados de curta duração ou resultados intermediários que não precisam ficar guardados a longo prazo.
- Tabelas temporárias são ideais para guardar dados intermediários ou específicos de uma sessão durante processos de ETL, consultas complexas ou transformações de dados. Como existem só dentro da sessão em que foram criadas e são apagadas automaticamente ao final dela, ajudam a evitar custos desnecessários de armazenamento de longo prazo.
- Tabelas transitórias são úteis para dados que precisam persistir entre várias sessões, mas só por um curto período. Diferente das permanentes, as transitórias não têm Fail-safe (a janela de recuperação de 7 dias do Snowflake), o que ajuda a reduzir custos. Elas têm Time Travel, mas você pode definir um período de retenção mais curto para minimizar os custos de armazenamento.
Sua central única e em expansão para economia em nuvem
O Snowflake Lens no DoiT Cloud Intelligence faz parte do nosso esforço contínuo para entregar aos clientes DoiT todas as ferramentas e a expertise que eles precisam para gerenciar e controlar com eficácia o ambiente de nuvem em todos os principais drivers de custo. Daqui para frente, virão novos provedores de serviço e integrações que vão permitir trazer todo o seu gasto relevante de TI para a visão única e centralizada do DoiT Cloud Intelligence, reduzindo ainda mais o atrito na sua prática de FinOps em crescimento.
Para saber mais sobre o Snowflake Lens e como ele funciona, clique na imagem abaixo e faça um tour completo no seu ritmo, ou fale com um especialista DoiT.
