Descubre cómo Snowflake popularizó la separación entre almacenamiento y cómputo, cómo cambió las compensaciones de escalado y coste, y por qué el ecosistema importa tanto como la velocidad.

Snowflake popularizó una idea simple pero de gran alcance en los data warehouses en la nube: mantener el almacenamiento de datos y el cómputo de consultas separados. Esa separación cambia dos puntos críticos del día a día de los equipos de datos: cómo escalan los almacenes y cómo los pagas.
En lugar de tratar el warehouse como una única “caja” fija (donde más usuarios, más datos o consultas más complejas compiten por los mismos recursos), el modelo de Snowflake te permite almacenar los datos una vez y arrancar la cantidad de cómputo adecuada cuando la necesitas. El resultado suele ser tiempos de respuesta más rápidos, menos cuellos de botella en picos de uso y un control más claro sobre qué genera coste (y cuándo).
Este post explica, en lenguaje claro, qué significa realmente separar almacenamiento y cómputo—y cómo eso afecta a:
También señalaremos dónde el modelo no lo soluciona todo mágicamente—porque algunas sorpresas en coste y rendimiento vienen del diseño de las cargas de trabajo, no de la plataforma.
Una plataforma rápida no es toda la historia. Para muchos equipos, el time-to-value depende de si puedes conectar el warehouse fácilmente con las herramientas que ya usas: pipelines ETL/ELT, paneles BI, herramientas de catálogo/gobernanza, controles de seguridad y fuentes de datos de socios.
El ecosistema de Snowflake (incluyendo patrones de intercambio de datos y distribución tipo marketplace) puede acortar los plazos de implementación y reducir la ingeniería personalizada. Este post cubre cómo se ve la “profundidad del ecosistema” en la práctica y cómo evaluarla para tu organización.
Esta guía está escrita para líderes de datos, analistas y responsables no especialistas—cualquiera que necesite entender las compensaciones detrás de la arquitectura de Snowflake, el escalado, los costes y las elecciones de integración sin enterrarse en la jerga del proveedor.
Los almacenes tradicionales se construyeron sobre una suposición simple: compras (o alquilas) una cantidad fija de hardware y ejecutas todo en esa misma caja o clúster. Eso funcionaba cuando las cargas eran previsibles y el crecimiento era gradual, pero generaba límites estructurales cuando los volúmenes de datos y el número de usuarios se aceleraron.
Los sistemas on‑prem y las primeras migraciones “lift-and-shift” a la nube solían verse así:
Aunque los proveedores ofrecían “nodos”, el patrón central seguía igual: escalar significaba añadir nodos más grandes o más numerosos a un entorno compartido.
Ese diseño genera varios problemas comunes:
Porque estos warehouses estaban fuertemente acoplados a su entorno, las integraciones crecían de forma orgánica: scripts ETL personalizados, conectores hechos a mano y pipelines puntuales. Funcionaban—hasta que cambió un esquema, se movió un sistema upstream o se introdujo una nueva herramienta. Mantener todo en marcha podía parecer mantenimiento constante en lugar de progreso sostenido.
Los data warehouses tradicionales suelen unir dos trabajos muy distintos: almacenamiento (donde viven tus datos) y cómputo (la potencia que lee, une, agrega y escribe esos datos).
Almacenamiento es como una despensa a largo plazo: tablas, ficheros y metadatos se guardan de forma segura y barata, diseñados para ser duraderos y siempre accesibles.
Cómputo es como el equipo de cocina: es el conjunto de CPUs y memoria que realmente “cocina” tus consultas—ejecuta SQL, ordena, escanea, genera resultados y atiende a múltiples usuarios a la vez.
Snowflake separa estos dos para que puedas ajustar cada uno sin forzar al otro a cambiar.
En la práctica, esto cambia las operaciones diarias: no tienes que “comprar de más” cómputo solo porque el almacenamiento crece, y puedes aislar cargas (por ejemplo, analistas frente a ETL) para que no se ralenticen entre sí.
Esta separación es poderosa, pero no es mágica.
El valor es control: pagar por almacenamiento y cómputo por separado, y alinear cada uno con lo que tus equipos realmente necesitan.
Snowflake es más fácil de entender como tres capas que trabajan juntas, pero que pueden escalar de forma independiente.
Tus tablas finalmente existen como ficheros en el object storage de tu proveedor en la nube (piensa S3, Azure Blob o GCS). Snowflake gestiona los formatos de fichero, compresión y organización por ti. No “adjuntas discos” ni dimensionas volúmenes: el almacenamiento crece a medida que crecen los datos.
El cómputo se empaqueta como almacenes virtuales: clústeres independientes de CPU/memoria que ejecutan consultas. Puedes ejecutar múltiples almacenes contra los mismos datos al mismo tiempo. Esa es la diferencia clave con sistemas antiguos donde cargas pesadas tendían a competir por la misma piscina de recursos.
Una capa de servicios separada maneja el “cerebro” del sistema: autenticación, parsing y optimización de consultas, gestión de transacciones/metadatos y coordinación. Esta capa decide cómo ejecutar una consulta de forma eficiente antes de que el cómputo toque los datos.
Cuando envías SQL, la capa de servicios de Snowflake lo parsea, construye un plan de ejecución y entrega ese plan a un almacén virtual elegido. El almacén lee solo los ficheros de datos necesarios desde el object storage (y se beneficia del cache cuando es posible), los procesa y devuelve resultados—sin mover permanentemente tus datos base al almacén.
Si muchas personas ejecutan consultas a la vez, puedes:
Esa es la base arquitectónica detrás del rendimiento de Snowflake y del control sobre “vecinos ruidosos”.
El gran cambio práctico de Snowflake es que escalas cómputo independientemente de los datos. En lugar de “el warehouse se hace más grande”, obtienes la capacidad de ajustar recursos por carga—sin copiar tablas, reordenar discos o programar downtime.
En Snowflake, un almacén virtual es el motor de cómputo que ejecuta consultas. Puedes redimensionarlo (por ejemplo, de Small a Large) en segundos, y los datos permanecen en el almacenamiento compartido. Eso hace que afinar el rendimiento sea a menudo una pregunta simple: “¿Necesita esta carga más potencia ahora mismo?”
Esto también permite ráfagas temporales: escala para un cierre de mes, y vuelve a reducir cuando termina el pico.
Los sistemas tradicionales a menudo obligan a distintos equipos a compartir el mismo cómputo, lo que convierte las horas de mayor carga en una fila. Snowflake te permite ejecutar almacenes separados por equipo o por carga—por ejemplo, uno para analistas, otro para dashboards y otro para ETL. Como estos almacenes leen los mismos datos subyacentes, reduces el problema de “mi dashboard ralentizó tu informe” y haces el rendimiento más predecible.
El cómputo elástico no es éxito automático. Fallos comunes incluyen:
El cambio neto: el escalado y la concurrencia pasan de proyectos de infraestructura a decisiones operativas diarias.
El “paga por lo que usas” de Snowflake es básicamente dos contadores corriendo en paralelo:
Ese split es donde pueden ocurrir ahorros: puedes mantener muchos datos de forma relativamente barata mientras enciendes el cómputo solo cuando lo necesitas.
La mayoría del gasto “inesperado” proviene de comportamientos de cómputo más que del almacenamiento. Los impulsores comunes incluyen:
Separar almacenamiento y cómputo no hace las consultas eficientes automáticamente—un SQL pobre aún puede consumir créditos rápidamente.
No necesitas al departamento financiero para gestionar esto—solo unos pocos límites:
Usado bien, el modelo premia la disciplina: cómputo de corta duración y tamaño correcto emparejado con un crecimiento de almacenamiento predecible.
Snowflake trata el intercambio como algo diseñado en la plataforma—no como un parche añadido con exportaciones, drops de ficheros y ETL puntuales.
En lugar de enviar extractos, Snowflake puede permitir que otra cuenta consulte los mismos datos subyacentes mediante un “share” seguro. En muchos escenarios, los datos no necesitan duplicarse en un segundo warehouse ni enviarse a object storage para descargar. El consumidor ve la base de datos/tabla compartida como si fuera local, mientras el proveedor mantiene el control de lo expuesto.
Este enfoque desacoplado es valioso porque reduce la proliferación de datos, acelera el acceso y disminuye la cantidad de pipelines que hay que construir y mantener.
Compartir con socios y clientes: Un proveedor puede publicar datasets curados para clientes (por ejemplo, analítica de uso o datos de referencia) con límites claros—solo esquemas, tablas o vistas permitidas.
Compartir interno por dominios: Equipos centrales pueden exponer datasets certificados a producto, finanzas y operaciones sin obligar a cada equipo a crear sus propias copias. Eso favorece una cultura de “un único conjunto de cifras” y permite que los equipos ejecuten su propio cómputo.
Colaboración gobernada: Proyectos conjuntos (p. ej., con una agencia, proveedor o subsidiaria) pueden trabajar sobre un dataset compartido mientras columnas sensibles están enmascaradas y el acceso queda auditado.
Compartir no es “configúralo y olvídalo”. Aún necesitas:
Un warehouse rápido es valioso, pero la velocidad rara vez determina si un proyecto se entrega a tiempo. Lo que suele marcar la diferencia es el ecosistema alrededor de la plataforma: las conexiones listas para usar, herramientas y conocimientos que reducen trabajo personalizado.
En la práctica, un ecosistema incluye:
Los benchmarks miden una porción estrecha del rendimiento bajo condiciones controladas. Los proyectos reales pasan la mayor parte del tiempo en:
Si tu plataforma tiene integraciones maduras para estos pasos, evitas construir y mantener código pegamento. Eso normalmente acorta los tiempos de implementación, mejora la fiabilidad y facilita cambiar de equipos o proveedores sin reescribirlo todo.
Al evaluar un ecosistema, busca:
El rendimiento te da capacidad; el ecosistema suele determinar qué tan rápido conviertes esa capacidad en resultados de negocio.
Snowflake puede ejecutar consultas rápidas, pero el valor aparece cuando los datos se mueven de forma fiable por tu stack: desde las fuentes, dentro de Snowflake y de vuelta a las herramientas que usan las personas a diario. La “última milla” suele determinar si una plataforma se siente sin esfuerzo o constantemente frágil.
La mayoría de equipos necesitan una mezcla de:
No todas las herramientas “compatibles con Snowflake” se comportan igual. En la evaluación, céntrate en detalles prácticos:
Las integraciones también necesitan estar listas para el día 2: monitorización y alertas, hooks de lineage/catalog y flujos de respuesta a incidentes (ticketing, on-call, runbooks). Un ecosistema fuerte no son solo más logos—son menos sorpresas cuando los pipelines fallan a las 2 a.m.
A medida que los equipos crecen, la parte más difícil de la analítica suele dejar de ser la velocidad: es asegurarse de que las personas correctas acceden a los datos correctos, con propósito correcto y con pruebas de que los controles funcionan. Las funcionalidades de gobernanza de Snowflake están pensadas para esa realidad: muchos usuarios, muchos productos de datos y compartición frecuente.
Empieza por roles claros y una mentalidad de mínimos privilegios. En lugar de dar acceso directamente a individuos, define roles como ANALYST_FINANCE o ETL_MARKETING, y luego otórgales acceso a bases de datos, esquemas, tablas y (cuando haga falta) vistas.
Para campos sensibles (PII, identificadores financieros), usa políticas de enmascaramiento para que la gente pueda consultar datasets sin ver los valores crudos a menos que su rol lo permita. Combínalo con auditoría: registra quién consultó qué y cuándo, para que seguridad y cumplimiento respondan sin conjeturas.
Una buena gobernanza hace que el intercambio sea más seguro y escalable. Cuando tu modelo de compartición se basa en roles, políticas y accesos auditados, puedes habilitar autoservicio (más usuarios explorando datos) con confianza, sin abrir la puerta a exposiciones accidentales.
También reduce fricción en esfuerzos de cumplimiento: las políticas se vuelven controles repetibles en lugar de excepciones puntuales. Eso importa cuando los datasets se reutilizan entre proyectos, departamentos o socios externos.
PROD_FINANCE, DEV_MARKETING, SHARED_PARTNER_X). La consistencia acelera revisiones y reduce errores.Confiar a escala es menos una cuestión de un “control perfecto” y más un sistema de hábitos pequeños y fiables que mantienen el acceso intencional y explicable.
Snowflake suele brillar cuando muchas personas y herramientas necesitan consultar los mismos datos por diferentes razones. Como el cómputo se empaqueta en “almacenes” independientes, puedes mapear cada carga a una forma y horario que encaje.
Analítica y dashboards: Pon las herramientas BI en un almacén dedicado dimensionado para un volumen de consultas estable y predecible. Esto evita que las actualizaciones de dashboards se ralenticen por la exploración ad hoc.
Análisis ad hoc: Da a los analistas un almacén separado (a menudo más pequeño) con auto-suspend habilitado. Obtienes iteración rápida sin pagar por tiempo ocioso.
Ciencia de datos y experimentación: Usa un almacén dimensionado para escaneos más pesados y ráfagas ocasionales. Si los experimentos disparan la carga, aumenta temporalmente este almacén sin afectar a usuarios de BI.
Aplicaciones de datos y analytics embebidos: Trata el tráfico de la app como un servicio en producción—almacén separado, timeouts conservadores y monitores de recurso para evitar gastos sorpresa.
Si construyes apps internas ligeras (por ejemplo, un portal ops que consulta Snowflake y muestra KPIs), un camino rápido es generar un esqueleto React + API funcional e iterar con stakeholders. Plataformas como Koder.ai (una plataforma de vibe-coding que construye apps web/servidor/móviles desde chat) pueden ayudar a los equipos a prototipar estas apps respaldadas por Snowflake rápidamente y luego exportar el código fuente cuando estés listo para operacionalizar.
Una regla simple: separa los almacenes por audiencia y propósito (BI, ELT, ad hoc, ML, app). Combina eso con buenas prácticas de consulta—evita SELECT * amplio, filtra pronto y vigila joins ineficientes. En modelado, prioriza estructuras que coincidan con cómo la gente consulta (a menudo una capa semántica limpia o marts bien definidos), en lugar de sobre-optimizar diseños físicos.
Snowflake no es sustituto de todo. Para cargas transaccionales de muy alto rendimiento y baja latencia (OLTP típico), una base de datos especializada suele ser mejor; Snowflake se usa para analítica, reporting, sharing y productos de datos downstream. Las configuraciones híbridas son comunes y a menudo las más prácticas.
Una migración a Snowflake rara vez es un “lift and shift”. La separación almacenamiento/cómputo cambia cómo dimensionas, ajustas y pagas cargas—así que planificar de antemano evita sorpresas.
Empieza con un inventario: qué fuentes alimentan el warehouse, qué pipelines las transforman, qué dashboards dependen de ello y quién es dueño de cada pieza. Luego prioriza por impacto de negocio y complejidad (p. ej., reporting financiero crítico primero, sandboxes experimentales después).
A continuación, convierte la lógica SQL y ETL. Mucho del SQL estándar se transfiere, pero detalles como funciones, manejo de fechas, código procedimental y patrones de tablas temporales suelen requerir reescrituras. Valida resultados temprano: ejecuta salidas en paralelo, compara conteos de filas y agregados, y confirma casos límite (nulos, zonas horarias, lógica de deduplicación). Finalmente, planifica el corte: ventana de freeze, ruta de rollback y una “definición de hecho” clara para cada dataset e informe.
Las dependencias ocultas son lo más común: un extracto de hoja de cálculo, una cadena de conexión hardcodeada, un job downstream que nadie recuerda. Sorpresas de rendimiento pueden aparecer cuando supuestos de tuning antiguos no aplican (p. ej., sobredimensionar tiny warehouses, o ejecutar muchas consultas pequeñas sin considerar concurrencia). Picos de coste suelen venir de dejar almacenes encendidos, reintentos incontrolados o duplicación de entornos dev/test. Gaps de permisos aparecen al migrar de roles toscos a gobernanza más granular—las pruebas deberían incluir ejecuciones con el principio de “least privilege”.
Define un modelo de propiedad (quién posee datos, pipelines y costes), ofrece formación por roles para analistas e ingenieros y define un plan de soporte para las primeras semanas tras el corte (rotación on-call, runbook de incidentes y un lugar para reportar problemas).
Elegir una plataforma de datos moderna no es solo velocidad máxima en benchmarks. Es si la plataforma encaja con tus cargas reales, la forma de trabajar de tu equipo y las herramientas que ya usas.
Usa estas preguntas para guiar tu preselección y conversaciones con proveedores:
Elige dos o tres datasets representativos (no muestras pequeñas): una gran tabla de hechos, una fuente semi-estructurada desordenada y un dominio crítico.
Luego ejecuta consultas de usuarios reales: dashboards en el pico matutino, exploración de analistas, cargas programadas y algunos joins en el peor de los casos. Mide: tiempo de consulta, comportamiento en concurrencia, tiempo de ingestión, esfuerzo operativo y coste por carga.
Si parte de tu evaluación incluye “¿qué tan rápido podemos entregar algo que la gente use?”, considera añadir un pequeño entregable al piloto—como una app interna de métricas o un flujo gobernado de peticiones de datos que consulte Snowflake. Construir esa capa fina suele revelar realidades de integración y seguridad más rápido que los benchmarks, y herramientas como Koder.ai pueden acelerar del prototipo a producción generando la estructura de la app vía chat y permitiendo exportar el código.
Si quieres ayuda estimando gasto y comparando opciones, empieza por /pricing.
Para guía sobre migración y gobernanza, revisa artículos relacionados en /blog.
Snowflake almacena tus datos en el almacenamiento de objetos de la nube y ejecuta consultas en clústeres de cómputo separados llamados almacenes virtuales. Porque almacenamiento y cómputo están desacoplados, puedes escalar el cómputo hacia arriba/abajo (o añadir más almacenes) sin mover o duplicar los datos subyacentes.
Reduce la contención de recursos. Puedes aislar cargas de trabajo colocándolas en distintos almacenes virtuales (por ejemplo, BI frente a ETL), o usar almacenes multi-clúster para añadir cómputo durante picos. Esto ayuda a evitar el problema de “un solo clúster compartido” y las colas típicas de los entornos MPP tradicionales.
No automáticamente. El cómputo elástico te da control, pero aún necesitas reglas de gobierno:
SQL ineficiente, dashboards que actualizan constantemente o almacenes siempre encendidos pueden seguir generando altos costes.
La facturación suele dividirse en dos componentes principales:
Esto facilita ver qué cuesta ahora mismo (cómputo) frente a lo que crece de forma más estable (almacenamiento).
Los causantes más comunes son operativos, no el tamaño de los datos:
Unas pocas medidas prácticas (auto-suspend, monitores, programación) suelen dar ahorros significativos.
Es la latencia que se produce cuando un almacén suspendido vuelve a iniciarse para ejecutar una consulta/trabajo. Si tienes cargas infrecuentes, auto-suspend ahorra dinero pero puede añadir una pequeña demora en la primera consulta tras el periodo de inactividad. Para dashboards orientados a usuarios, considera un almacén dedicado dimensionado para demanda continua en lugar de ciclos frecuentes de suspend/resume.
Un almacén virtual es un clúster de cómputo independiente que ejecuta SQL. La práctica recomendada es mapear los almacenes a audiencias / propósitos, por ejemplo:
Esto aisla el rendimiento y aclara la responsabilidad del coste.
En muchos casos, sí. El intercambio de Snowflake puede permitir que otra cuenta consulte los datos que expones (tablas/vistas) sin que tengas que exportar ficheros o crear pipelines adicionales. Aun así, necesitas gobernanza sólida: propiedad clara, revisiones de acceso y políticas para campos sensibles, de forma que el intercambio sea controlado y auditable.
Porque el tiempo de entrega suele estar dominado por el trabajo de integración y operaciones, no por la velocidad pura de consulta. Un ecosistema fuerte reduce el trabajo personalizado mediante:
Eso suele acortar los plazos de implementación y reducir la carga de mantenimiento diario.
Haz un piloto pequeño y realista (normalmente 2–4 semanas):
Si necesitas ayuda para estimar gasto, empieza en /pricing, y para orientación relacionada revisa /blog.