¿Cómo cobra Snowflake?
Snowflake tiene un modelo de precios basado en tres dimensiones independientes:
1. Cómputo (Virtual Warehouses)
Se cobra en créditos de Snowflake por segundo de uso activo. Los créditos tienen un precio en USD que depende de la edición y la región.
| Tamaño | Créditos/hora | Equivalente aprox. |
|---|---|---|
| X-Small | 1 | El más económico |
| Small | 2 | — |
| Medium | 4 | — |
| Large | 8 | — |
| X-Large | 16 | — |
| 2X-Large | 32 | — |
| 4X-Large | 128 | El más costoso |
Regla de oro: Un warehouse activo gasta 1 crédito por hora por cada nodo. Con AUTO_SUSPEND = 60, el warehouse se apaga a los 60 segundos de inactividad.
-- Crear un warehouse optimizado para costos
CREATE WAREHOUSE mi_wh
WAREHOUSE_SIZE = 'SMALL'
AUTO_SUSPEND = 60 -- apaga en 60 segundos
AUTO_RESUME = TRUE
INITIALLY_SUSPENDED = TRUE;
2. Almacenamiento
Se cobra mensualmente por TB almacenado. El precio varía por región y tipo de almacenamiento:
- On-Demand Storage: Pago por lo que usas
- Capacity Storage: Precio más bajo con compromiso anual
Considera también:
- Time Travel: datos históricos ocupan espacio adicional
- Fail-safe: copia adicional de 7 días (solo Enterprise+)
3. Servicios Serverless
Servicios que cobran créditos sin necesidad de un warehouse:
- Snowpipe: ingesta continua de datos
- Automatic Clustering: mantenimiento de clustering keys
- Materialized Views: refresh automático
- Search Optimization: mantenimiento de índices
- Tasks con Serverless: ejecutar tareas sin warehouse
Ediciones de Snowflake
| Edición | Para quién | Características clave |
|---|---|---|
| Standard | Equipos pequeños | Funcionalidades básicas |
| Enterprise | Medianas empresas | Multi-cluster, Time Travel 90 días |
| Business Critical | Datos sensibles | HIPAA, PCI-DSS, failover |
| Virtual Private | Máxima seguridad | VPC dedicado |
Calculadora de costos
Snowflake ofrece una calculadora en su sitio, pero la forma más precisa es usar ACCOUNT_USAGE:
-- Costo aproximado del último mes (asumiendo $3 USD/crédito)
SELECT
DATE_TRUNC('day', start_time) AS dia,
ROUND(SUM(credits_used) * 3, 2) AS costo_usd_aprox
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE start_time >= DATEADD('month', -1, CURRENT_TIMESTAMP())
GROUP BY 1
ORDER BY 1;
Próximos pasos
En la siguiente lección aprenderemos a configurar Resource Monitors para controlar el gasto.