Intermedio 2 min de lectura

Modelo de Precios de Snowflake

Entiende cómo cobra Snowflake: créditos de cómputo, almacenamiento, servicios serverless y transferencia de datos.

¿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ñoCréditos/horaEquivalente aprox.
X-Small1El más económico
Small2—
Medium4—
Large8—
X-Large16—
2X-Large32—
4X-Large128El 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ónPara quiénCaracterísticas clave
StandardEquipos pequeñosFuncionalidades básicas
EnterpriseMedianas empresasMulti-cluster, Time Travel 90 días
Business CriticalDatos sensiblesHIPAA, PCI-DSS, failover
Virtual PrivateMáxima seguridadVPC 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.

#finops #costos #creditos #pricing