Estás en el blog de Nicolau Roca
Snowflake Gen1 vs Gen2 Warehouses: análisis técnico en profundidad
Comparativa técnica entre warehouses Gen1 y Gen2 de Snowflake: hardware, rendimiento, coste, migración, workloads recomendados y criterios prácticos de adopción.

Desde el 5 de mayo de 2025, Snowflake ha puesto en disponibilidad general sus Generation-2 Standard Warehouses, o Gen2, posicionándolos oficialmente como la nueva generación de cómputo para cargas analíticas.
La diferencia entre Gen1 y Gen2 sigue siendo importante porque no se trata solo de un cambio de nombre. Gen2 combina nuevo hardware con optimizaciones inteligentes del motor de ejecución, lo que puede traducirse en mejoras relevantes de rendimiento para operaciones DML, escaneos amplios de tablas, cargas con alta concurrencia y agregaciones pesadas, sin requerir cambios en el código SQL.
Gen2 no debe evaluarse únicamente por su coste por crédito. La pregunta correcta es si termina el trabajo lo bastante rápido como para compensar su mayor tarifa.
Aunque Gen2 tiene una tarifa de créditos superior —aproximadamente 1,35 veces en AWS y 1,25 veces en Azure frente a Gen1—, muchas cargas reales terminan antes. Esto significa que, en determinados escenarios, se puede reducir el tamaño del warehouse, mantener o incluso reducir el coste total y ganar rendimiento.
Algunos benchmarks iniciales muestran mejoras del 30% al 40% en tiempo de ejecución usando warehouses del mismo tamaño, con algunas consultas hasta un 70% más rápidas.
1. Por qué sigue importando comparar Gen1 y Gen2
La comparación entre Snowflake Gen1 y Gen2 sigue siendo relevante por tres motivos principales:
- Rendimiento: Gen2 puede acelerar cargas analíticas intensivas, operaciones DML y consultas con alta concurrencia.
- Coste: aunque la tarifa por crédito es mayor, el menor tiempo de ejecución puede compensar esa diferencia.
- Arquitectura operativa: no todos los workloads se benefician igual, por lo que conviene decidir con datos reales y no solo por la promesa de rendimiento.
La conclusión práctica es clara: Gen2 no es automáticamente mejor ni automáticamente más caro. Su valor depende del tipo de carga, del patrón de llegada de las consultas, de la concurrencia, del tamaño del warehouse y del equilibrio entre CPU, memoria e I/O.
2. Diferencias técnicas principales entre Gen1 y Gen2
La siguiente tabla resume las diferencias más importantes entre los warehouses estándar Gen1 y Gen2.
| Dimensión | Gen1 Standard Warehouse | Gen2 Standard Warehouse |
|---|---|---|
| Hardware subyacente | Instancias basadas en AWS Graviton2 | AWS Graviton3, C7g.2xlarge, aproximadamente 8 vCPUs por nodo y unos 15 GB de RAM |
| SIMD y arquitectura CPU | SIMD NEON de 128 bits, aproximadamente 1 MiB de caché L2 por núcleo | SIMD SVE de 256 bits, aproximadamente 2 MiB de caché L2 por núcleo y mayor IPC |
| Memoria | Basada en DDR4, con menor ancho de banda | DDR5, con aproximadamente un 50% más de ancho de banda |
| Comportamiento del motor de consultas | Framework de ejecución base | Scheduler más inteligente, mayor paralelización y optimización de DML como MERGE, UPDATE y DELETE, además de escaneos de tabla |
| Ganancia típica de rendimiento | Rendimiento estándar | Entre un 30% y un 40% más rápido en cargas analíticas pesadas; ocasionalmente hasta un 70% |
| Concurrencia | Moderada | Mejor gestión de consultas concurrentes gracias a un scheduling más agresivo |
| Multiplicador de facturación | Tarifa base de créditos | Aproximadamente 1,35x en AWS y 1,25x en Azure frente a Gen1 del mismo tamaño |
| Tamaño máximo soportado | Hasta 6X-Large, incluyendo 5XL y 6XL | Hasta 4X-Large; 5XL y 6XL no están soportados todavía |
| Creación y migración | CREATE o ALTER estándar; suele ser el valor por defecto si no se indica RESOURCE_CONSTRAINT | Debe indicarse explícitamente RESOURCE_CONSTRAINT = STANDARD_GEN_2 al crear o modificar el warehouse, salvo condiciones específicas de región y fecha de creación de la organización |
| Soporte en interfaz | Soportado en Snowsight y consola clásica | No soportado todavía en UI; debe gestionarse mediante SQL |
| Soporte por proveedor cloud y región | AWS, Azure y GCP ampliamente soportados | Disponible solo en regiones seleccionadas de AWS y Azure; GCP no soportado todavía |
3. Impacto en coste y rendimiento
Resultados de benchmark oficiales
Según pruebas de Snowflake usando datos de muestra TPC-DS con warehouses de tamaño LARGE, los warehouses Gen2 en AWS completaron consultas idénticas en unos 46 segundos, frente a 87 segundos en Gen1. Esto representa una mejora aproximada del 47% en operaciones analíticas intensivas en escaneo.
Las mejoras globales típicas en cargas diversas se sitúan entre el 30% y el 40%, con algunos escenarios analíticos alcanzando aceleraciones de hasta 2,1x.
Comparativa de créditos por hora en AWS y Azure
Según la tabla de consumo de servicios de Snowflake, el consumo de créditos por hora queda aproximadamente así:
| Tamaño del warehouse | Gen1 créditos/hora | Gen2 AWS, aprox. 1,35x | Gen2 Azure, aprox. 1,25x |
|---|---|---|---|
| X-Small | 1 | 1,35 | 1,25 |
| Small | 2 | 2,70 | 2,50 |
| Medium | 4 | 5,40 | 5,00 |
| Large | 8 | 10,80 | 10,00 |
| X-Large | 16 | 21,60 | 20,00 |
| 2XL | 32 | 43,20 | 40,00 |
| 3XL | 64 | 86,40 | 80,00 |
| 4XL | 128 | 172,80 | 160,00 |
| 5XL / 6XL | 256 / 512 | No disponible en Gen2 | No disponible en Gen2 |
Gen2 no se ofrece para tamaños 5XL o 6XL. La facturación sigue siendo por segundo, con un mínimo redondeado de 60 segundos.
Ejemplo real con warehouse Small
En una prueba con una carga real usando warehouses de tamaño SMALL:
- Gen1_SMALL completó los trabajos en aproximadamente 21 minutos y 55 segundos, unos 0,365 horas.
- Gen2_SMALL tardó aproximadamente 16 minutos y 24 segundos, unos 0,273 horas, con una mejora de runtime cercana al 25%.
El coste total fue prácticamente igual:
- Gen1: aproximadamente 1,46 dólares.
- Gen2: aproximadamente 1,48 dólares.
Este ejemplo muestra cómo las mejoras de rendimiento pueden compensar la tarifa superior por segundo, haciendo que Gen2 sea neutral en coste o incluso favorable en muchos workloads.
Consideraciones estratégicas: eficiencia de coste frente a patrón de trabajo
El beneficio real de Gen2 depende del patrón de uso:
- Cargas batch CPU-bound: Gen2 suele destacar porque las consultas terminan dentro de una ventana de ahorro clara.
- Cargas con ráfagas o consultas distribuidas en el tiempo: en dashboards o queries interactivas espaciadas, la tarifa superior puede pesar más que la mejora de rendimiento.
- Patrón de llegada: 100 consultas lanzadas a la vez pueden terminar antes, pero si llegan repartidas durante mucho tiempo, el warehouse puede permanecer activo más tiempo y costar más.
- Memoria y caché: el comportamiento de L2 local y ancho de banda DDR5 también influye. Las cargas con buen aprovechamiento de caché pueden beneficiarse más.
Resumen del impacto en coste y rendimiento
- Gen2 puede ejecutar cargas analíticas pesadas entre un 30% y un 40% más rápido que Gen1, y en algunos casos hasta 2x.
- Gen2 cuesta aproximadamente un 35% más en AWS y un 25% más en Azure, dependiendo de la región.
- En muchos casos reales, sobre todo en workloads small y medium, la ejecución más rápida compensa o reduce el coste total.
- La decisión debe basarse en patrón de llegada, concurrencia y equilibrio entre CPU e I/O, no solo en la mejora teórica de rendimiento.
4. Cómo saber si sigues usando Gen1 y qué hacer
Paso 1: identificar el tipo de warehouse mediante SQL
Para comprobar si tus virtual warehouses actuales son Gen1 o Gen2, puedes ejecutar:
SHOW WAREHOUSES;
En el resultado, revisa la columna RESOURCE_CONSTRAINT. Los valores posibles son:
STANDARD: warehouse Gen1, valor por defecto en la mayoría de organizaciones creadas antes de 2025.STANDARD_GEN_2: warehouse Gen2, creado o modificado explícitamente.
Si la columna RESOURCE_CONSTRAINT aparece vacía o NULL, normalmente se trata de un warehouse legacy Gen1.
Para listar solo warehouses Gen1:
SELECT *
FROM TABLE(SNOWFLAKE.INFORMATION_SCHEMA.WAREHOUSES())
WHERE RESOURCE_CONSTRAINT IS NULL
OR RESOURCE_CONSTRAINT = 'STANDARD';
Paso 2: comprobar región y elegibilidad de la cuenta
A julio de 2025, los warehouses Gen2 están disponibles solo en determinadas regiones y proveedores cloud:
| Cloud | Regiones disponibles a julio de 2025 |
|---|---|
| AWS | us-west-2, eu-central-1, con más regiones esperadas próximamente |
| Azure | East US 2, West Europe |
| GCP | No soportado todavía |
Si tu región no está soportada, no podrás crear warehouses Gen2 hasta que Snowflake amplíe el despliegue.
Paso 3: crear un warehouse Gen2
Para crear explícitamente un warehouse Gen2, incluye la cláusula RESOURCE_CONSTRAINT = 'STANDARD_GEN_2':
CREATE OR REPLACE WAREHOUSE my_gen2_wh
WITH WAREHOUSE_SIZE = 'MEDIUM'
AUTO_SUSPEND = 60
AUTO_RESUME = TRUE
RESOURCE_CONSTRAINT = 'STANDARD_GEN_2';
También puedes convertir un warehouse Gen1 existente a Gen2:
ALTER WAREHOUSE my_old_wh
SET RESOURCE_CONSTRAINT = 'STANDARD_GEN_2';
Si tu región no soporta Gen2, este comando devolverá un error.
Paso 4: actualizar automatizaciones y plantillas
Si creas warehouses mediante Terraform, dbt o scripts de automatización, debes actualizar las plantillas para incluir RESOURCE_CONSTRAINT = 'STANDARD_GEN_2'.
Ejemplo en Terraform usando el provider de Snowflake:
resource "snowflake_warehouse" "gen2_example" {
name = "GEN2_EXAMPLE"
warehouse_size = "MEDIUM"
auto_suspend = 60
auto_resume = true
resource_constraint = "STANDARD_GEN_2"
}
5. Malentendidos y errores comunes
Aunque Snowflake Gen2 se está convirtiendo en el nuevo estándar, muchos equipos siguen funcionando con supuestos desactualizados. Estos son los errores más comunes al evaluar o migrar a Gen2.
Malentendido 1: “Gen2 siempre es más caro”
Realidad: los warehouses Gen2 tienen una tarifa por segundo superior, normalmente entre 1,25x y 1,35x frente a Gen1, pero terminan las cargas más rápido gracias a mejoras arquitectónicas.
En muchos benchmarks, los trabajos finalizan entre un 25% y un 50% antes, lo que puede compensar por completo o incluso reducir el coste total.
Ejemplo: un warehouse Gen2 con una tarifa un 35% superior que ejecuta una carga un 40% más rápido puede acabar siendo más barato en coste total.
Malentendido 2: “XS o S son siempre los tamaños más eficientes”
Realidad: usar warehouses demasiado pequeños, especialmente XS, en cargas con alta concurrencia o escaneos pesados puede provocar:
- Colas de ejecución.
- Consultas lentas.
- Tiempo desperdiciado por query.
En muchos casos, un warehouse Medium o Large Gen2 termina el trabajo tan rápido que el tiempo total de cómputo es menor y, por tanto, puede resultar más barato aunque consuma más créditos por hora.
La recomendación es combinar sizing del warehouse con WAREHOUSE_METERING_HISTORY para encontrar el punto real de eficiencia.
Malentendido 3: “Auto-suspend ya no importa con Gen2”
Realidad: los parámetros de auto-suspend y auto-resume siguen siendo críticos para controlar costes.
Con Gen2 puedes terminar los trabajos antes, pero si dejas el warehouse encendido varios minutos después, seguirás pagando innecesariamente.
Recomendaciones:
- Configurar
AUTO_SUSPENDa 60 segundos o menos. - Asegurar
AUTO_RESUME = TRUEpara reinicios transparentes. - Considerar warehouses multi-cluster con auto-scaling para cargas con picos.
Malentendido 4: “Todos los workloads se benefician igual de Gen2”
Realidad: las mejoras de Gen2 no son uniformes.
| Tipo de workload | Potencial beneficio con Gen2 |
|---|---|
| DML intensivo, como MERGE, UPDATE o DELETE | Mejora muy alta |
| Escaneos completos de tablas | Ganancias significativas |
| Alta concurrencia | Mejor gestión de threads |
| Consultas cortas y ligeras | Diferencia marginal |
| Procesamiento con Streams o Tasks | Depende del patrón |
| ML o Snowpark | Mejor throughput |
La forma correcta de evaluarlo es usar logs reales de rendimiento, especialmente QUERY_HISTORY, para medir por workload.
Malentendido 5: “La migración es arriesgada o complicada”
Realidad: la migración a Gen2 es no destructiva y puede hacerse con una sola línea SQL:
ALTER WAREHOUSE my_wh
SET RESOURCE_CONSTRAINT = 'STANDARD_GEN_2';
Los datos, roles y workloads permanecen intactos. La restricción real es la disponibilidad por región cloud y, en algunos casos, la necesidad de actualizar Terraform, CI/CD o plantillas internas.
6. Caso real: comparación de coste y uso
Resumen del caso: Gen1 vs Gen2 con warehouse Small
Usando datos de workloads reales de producción, Seemore Data comparó pipelines idénticos en warehouses Gen1 SMALL y Gen2 SMALL.
Los runs en Gen2 completaron aproximadamente un 30% más rápido, mientras que el uso total de créditos se mantuvo prácticamente plano o ligeramente inferior, pese a la tarifa superior por crédito.
Concretamente:
- Gen1_SMALL: completado en unas 0,37 horas.
- Gen2_SMALL: completado en unas 0,27 horas, entre un 25% y un 30% más rápido.
- Coste total: prácticamente idéntico, lo que demuestra que la mejora de rendimiento compensó la prima de facturación de Gen2.
Cómo medirlo tú mismo con WAREHOUSE_METERING_HISTORY
Puedes usar la vista de Account Usage de Snowflake para analizar el histórico de uso de warehouses:
SELECT
WAREHOUSE_NAME,
SUM(CREDITS_USED) AS total_credits,
SUM(EXECUTION_TIME) AS total_exec_seconds
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE WAREHOUSE_NAME IN ('YOUR_GEN1', 'YOUR_GEN2')
AND START_TIME >= DATEADD(month, -1, CURRENT_TIMESTAMP())
GROUP BY 1;
CREDITS_USED permite medir el consumo real de créditos.
EXECUTION_TIME puede derivarse o aproximarse según el análisis que estés realizando.
La idea es comparar métricas como créditos por segundo de ejecución entre ambos tipos de warehouse.
Cómo interpretar los resultados
Puedes usar la fórmula créditos usados ÷ tiempo de ejecución para comparar la tasa efectiva de consumo.
- Un ratio menor indica mayor eficiencia de coste por tiempo de ejecución.
- Gen2 suele mostrar créditos totales similares o mejores, pero con runtimes más bajos.
Ejemplo:
Gen1_SMALL: 0,365 h, 1,46 créditos → ~4,0 créditos/hora
Gen2_SMALL: 0,273 h, 1,48 créditos → ~5,42 créditos/hora
Gen2 consume más por hora efectiva, pero termina antes. Por eso el gasto total queda casi igual y el trabajo se completa más rápido.
Patrones observados por tipo de uso
| Caso de uso | Beneficio con Gen2 | Implicación de coste |
|---|---|---|
| Jobs batch CPU-bound | Alto | Terminan rápido y suelen compensar la prima de coste |
| Dashboards BI con ráfagas | Medio | La tarifa superior puede dominar si la mejora de throughput no es suficiente |
| Consultas interactivas | Bajo | Ganancia mínima; el coste puede superar el beneficio |
| Pipelines Snowpark o ML | Alto | El mayor throughput puede ahorrar tiempo y créditos |
Resumen y recomendaciones de medición
- Ejecuta tus propias queries sobre
WAREHOUSE_METERING_HISTORYpara comparar uso de créditos y runtime. - Gen2 es eficiente cuando la reducción de runtime supera la prima por crédito.
- Esto suele ocurrir en workloads pesados, intensivos en escaneo o CPU-bound.
- Si tus cargas son ligeras, infrecuentes o más dependientes de I/O, podrías no ver beneficio suficiente.
- Usa los resultados para ajustar tamaño de warehouse, timeout de suspensión y posible separación entre cargas pesadas y ligeras.
7. Recomendaciones finales y buenas prácticas
Después de revisar arquitectura, coste y rendimiento, la decisión debe orientarse por medición real, no por intuición.
Cuándo deberías usar Gen2 claramente
Elige warehouses Gen2 si se cumple alguna de estas condiciones:
- Procesas grandes volúmenes de datos, con millones de filas, múltiples joins o escaneos completos.
- Ejecutas operaciones DML pesadas como MERGE, UPDATE o DELETE.
- Tu workload incluye Snowpark o Python UDFs que se benefician de paralelismo y ancho de banda de memoria.
- Necesitas mayor concurrencia o das servicio a muchos usuarios simultáneos.
- Tu warehouse Gen1 muestra uso alto de CPU o colas de consultas.
- Estás en una región soportada en AWS o Azure.
Cuándo Gen1 puede seguir siendo suficiente
Mantener Gen1 puede ser razonable en estos casos:
- Tus consultas son pequeñas, infrecuentes o interactivas.
- Estás usando GCP, que no soporta Gen2 a julio de 2025.
- Dependes mucho de consistencia multi-región con patrones Gen1 existentes.
- Tienes restricciones presupuestarias y tus SLAs de rendimiento son flexibles.
En estos escenarios, conviene priorizar:
- Configuraciones estrictas de auto-suspend.
- Dimensionamiento correcto del warehouse.
- Monitorización del consumo por inactividad.
Buenas prácticas para cualquier warehouse
Estas prácticas aplican tanto a Gen1 como a Gen2 y pueden reducir costes de forma significativa.
| Buena práctica | Por qué importa |
|---|---|
AUTO_SUSPEND <= 60 segundos | Minimiza la facturación por inactividad |
AUTO_RESUME = TRUE | Permite cómputo bajo demanda |
| Empezar pequeño y escalar cuando sea necesario | Evita pagar por capacidad infrautilizada |
Usar WAREHOUSE_METERING_HISTORY | Mide el consumo real de créditos por workload |
Usar QUERY_HISTORY con tags | Permite comparar Gen1 y Gen2 con datos reales |
| Monitorizar utilización de CPU | Ayuda a dimensionar correctamente los tiers |
| Ejecutar pruebas lado a lado con jobs reales | Evita decisiones basadas en suposiciones |
Consejo práctico: combinar Gen1 y Gen2
No es necesario convertir todo a Gen2 de golpe. Puedes usar Gen2 para workloads de alto throughput, como pipelines ETL o entrenamiento de modelos, y mantener Gen1 para cargas legacy o de bajo uso que no necesitan rendimiento adicional.
La estrategia más sensata suele ser mixta: Gen2 para cargas pesadas y Gen1 para workloads ligeros, legacy o poco frecuentes.
8. Recursos adicionales y lecturas recomendadas
Estos son los recursos oficiales y blogs técnicos citados en el texto original para profundizar, validar información o preparar una migración.
Documentación oficial de Snowflake
- Gen2 Standard Warehouses Overview
https://docs.snowflake.com/en/user-guide/warehouses-gen2 - Warehouse Metering History
https://docs.snowflake.com/en/sql-reference/account-usage/warehouse_metering_history - Query History
https://docs.snowflake.com/en/sql-reference/account-usage/query_history - CREATE WAREHOUSE
https://docs.snowflake.com/en/sql-reference/sql/create-warehouse - ALTER WAREHOUSE
https://docs.snowflake.com/en/sql-reference/sql/alter-warehouse - Release Note: Gen2 Standard Warehouse GA, May 2025
https://docs.snowflake.com/en/release-notes/2025/other/2025-05-05-gen2-standard-warehouses - Warehouse Configuration Best Practices
https://docs.snowflake.com/en/user-guide/warehouses-overview
Blogs técnicos y análisis independientes
- Snowflake Engineering: Inside Gen2, Graviton3
https://medium.com/snowflake-engineering/deep-dive-inside-snowflakes-new-gen2-standard-warehouses-powered-by-aws-graviton3-6aacca73ae2d - ChaosGenius: Benchmarking Gen2 Performance & Architecture
https://www.chaosgenius.io/blog/snowflake-gen2-warehouse - Seemoredata.io: Performance vs Cost Deep Dive
https://seemoredata.io/blog/snowflake-gen-2-standard-warehouses-a-cost-performance-deep-dive - CloudEQ: Gen1 vs Gen2 Cost Analysis
https://cloudeqs.com/snowflake-gen1-vs-gen2-a-performance-cost-analysis - Keebo.ai: Gen2 Warehouses & Adaptive Compute Insights
https://keebo.ai/2025/06/02/snowflake-gen-2-warehouses
https://keebo.ai/2025/06/12/snowflake-adaptive-compute - Masato Takada: TPC-DS Gen2 Benchmarks
https://medium.com/@masato.takada/benchmarking-snowflakes-generation-2-standard-warehouses-4a3cb786932c - Pascal Pfeifle: Hands-on Look at Gen2 Performance
https://medium.com/@pascalpfffle/snowflakes-generation-2-warehouses-a-hands-on-look-ed785fa3820e




