Saltar al contenido
Snowflake: Plataforma de Datos en la Nube

31 de mayo de 2026

Snowflake: Plataforma de Datos en la Nube

Una visión general de Snowflake — su arquitectura, Snowpipe, Snowpark y características clave para ingeniería de datos moderna.

Data Infrastructure
Snowflake Cloud Data Warehouse

Snowflake es una plataforma de datos nativa en la nube que separa almacenamiento de computación. Funciona en AWS, Azure o GCP.

Arquitectura

Snowflake tiene una arquitectura única de tres capas:

┌──────────────────────────────────────┐
│        Capa de Servicios Cloud       │
│  (autenticación, metadata, optimi-   │
│   zación de consultas, acceso)       │
├──────────────────────────────────────┤
│        Capa de Computación           │
│  ┌──────────┐ ┌──────────┐          │
│  │Warehouse │ │Warehouse │  ...     │
│  │  (XS)    │ │  (XL)    │          │
│  └──────────┘ └──────────┘          │
│  (independientes, auto-escalan)      │
├──────────────────────────────────────┤
│        Capa de Almacenamiento        │
│  (comprimido, columnar, inmutable)   │
│  (S3 / Azure Blob / GCS)            │
└──────────────────────────────────────┘

Por Qué Importa

CapaBeneficio
Almacenamiento separadoPagar por almacenamiento independientemente
Computación separadaEscalar arriba/abajo por carga de trabajo
Servicios cloudCero gestión de infraestructura

Ventaja clave: Múltiples equipos pueden usar diferentes warehouses sobre los mismos datos sin competir por recursos.

Conceptos Clave

ConceptoQué Es
DatabaseContenedor para esquemas y tablas
SchemaContenedor para tablas, vistas, funciones
Virtual WarehouseCluster de computación (tallas: XS a 6XL)
StageUbicación para cargar archivos (interno o externo)
TableAlmacenamiento de datos estructurados (columnar)

Snowpipe

Snowpipe carga datos automáticamente en cuanto llegan los archivos. Sin necesidad de programar.

Archivos llegan    →  Snowpipe detecta  →  Datos cargados
(S3/Azure/GCS)        (notificación)       (en tablas)

Cómo Funciona

-- 1. Crear un stage apuntando a tu almacenamiento cloud
CREATE STAGE mi_stage
  URL = 's3://mi-bucket/datos/'
  CREDENTIALS = (AWS_KEY_ID = '...' AWS_SECRET_KEY = '...');

-- 2. Crear el Snowpipe
CREATE PIPE mi_pipe AUTO_INGEST = TRUE AS
  COPY INTO mi_tabla
  FROM @mi_stage
  FILE_FORMAT = (TYPE = 'PARQUET');
CaracterísticaDescripción
Auto-ingestActivado por eventos del almacenamiento cloud
ServerlessNo necesita warehouse, Snowflake gestiona la computación
Casi tiempo realDatos disponibles en minutos
CostePago por archivo cargado (no por tiempo de warehouse)

Snowpark

Snowpark te permite escribir pipelines de datos en Python, Java o Scala que se ejecutan dentro de Snowflake — tu código se ejecuta en la computación de Snowflake.

Tradicional:
  Datos → Descargar a local → Procesar (Python) → Subir de vuelta

Snowpark:
  Datos se quedan en Snowflake → Procesar (Python en Snowflake) → Resultados en Snowflake

Ejemplo Snowpark (Python)

from snowflake.snowpark import Session
from snowflake.snowpark.functions import col, sum as sum_

# Conectar
session = Session.builder.configs(connection_params).create()

# Leer y transformar (se ejecuta dentro de Snowflake)
df = session.table("ventas")
resultado = (df
    .filter(col("año") == 2025)
    .group_by("region")
    .agg(sum_("ingresos").alias("total_ingresos"))
    .sort("total_ingresos", ascending=False)
)

# Guardar resultados
resultado.write.save_as_table("resumen_ventas")

Casos de Uso de Snowpark

Caso de UsoCómo
ETL/ELTTransformar datos sin moverlos
Entrenamiento MLEntrenar modelos dentro de Snowflake
UDFsEscribir funciones Python que corren en Snowflake
Procedimientos almacenadosLógica compleja en Python

Otras Características Clave

Time Travel (Viaje en el Tiempo)

Consultar datos tal como estaban en el pasado:

-- ¿Cómo se veía esta tabla hace 1 hora?
SELECT * FROM mi_tabla AT (OFFSET => -3600);

-- ¿Cómo se veía antes de una consulta específica?
SELECT * FROM mi_tabla BEFORE (STATEMENT => 'query-id-aqui');

Zero-Copy Cloning (Clonación Sin Copia)

Crear una copia de una tabla/base de datos al instante sin duplicar datos:

CREATE TABLE mi_tabla_clon CLONE mi_tabla;
CREATE DATABASE dev_db CLONE prod_db;

Data Sharing (Compartir Datos)

Compartir datos con otras cuentas de Snowflake sin copiar:

CREATE SHARE mi_share;
GRANT USAGE ON DATABASE mi_db TO SHARE mi_share;
-- El consumidor obtiene acceso en vivo, sin movimiento de datos

Streams y Tasks

CaracterísticaPropósito
StreamsRastrear cambios (CDC) en tablas
TasksProgramar y automatizar SQL/procedimientos
-- Stream: rastrear inserciones/actualizaciones/borrados
CREATE STREAM mi_stream ON TABLE mi_tabla;

-- Task: ejecutar cada hora
CREATE TASK mi_task
  WAREHOUSE = mi_wh
  SCHEDULE = '60 MINUTE'
AS
  INSERT INTO destino SELECT * FROM mi_stream;

Snowflake vs Otros

CaracterísticaSnowflakeBigQueryRedshift
ArquitecturaAlmac./computación separadosServerlessBasado en cluster
EscaladoPor warehouseAutoManual/auto
Multi-cloudAWS, Azure, GCPSolo GCPSolo AWS
Compartir datosNativoAnalytics HubVia S3
PrecioCréditos (computación) + almac.Por consulta + almac.Por nodo + almac.

Resumen

ConceptoIdea Clave
Arquitectura3 capas: almacenamiento, computación, servicios cloud
Virtual WarehouseClusters de computación independientes, escalar bajo demanda
SnowpipeAuto-ingestar archivos cuando llegan
SnowparkEjecutar Python/Java/Scala dentro de Snowflake
Time TravelConsultar datos históricos
Zero-Copy CloneCopia instantánea sin duplicar almacenamiento
Data SharingCompartir datos en vivo entre cuentas