Cuando trabajamos con pipelines de datos en Snowflake, uno de los primeros pasos suele ser la ingestión de archivos desde distintas fuentes.
Estos archivos pueden contener datos en formatos como:
- CSV
- JSON
- Parquet
- Avro
Para gestionar estos archivos antes de cargarlos en tablas, Snowflake utiliza un concepto llamado Stage.
Los Internal Stages permiten almacenar archivos directamente dentro del entorno de Snowflake antes de procesarlos o cargarlos en tablas.
¿Qué es un Stage en Snowflake?
Un Stage es una ubicación donde Snowflake puede acceder a archivos para realizar operaciones de carga o descarga de datos.
Los stages se utilizan principalmente para:
- Cargar archivos en tablas
- Descargar datos desde tablas
- Gestionar archivos intermedios en pipelines
Existen dos tipos principales de stages:
- Internal Stages
- External Stages
Internal Stage vs External Stage
La principal diferencia entre ambos es dónde se almacenan los archivos.
Internal Stage
- Los archivos se almacenan dentro de Snowflake.
- No requiere servicios externos de almacenamiento.
- Ideal para cargas simples o temporales.
External Stage
- Los archivos se almacenan en sistemas externos como:
- Amazon S3
- Azure Blob Storage
- Google Cloud Storage
- Permite integrar pipelines de datos con almacenamiento cloud.
La elección depende de la arquitectura de datos utilizada.
Tipos de Internal Stages
Snowflake ofrece tres tipos principales de internal stages.
User Stage
Cada usuario tiene automáticamente un stage personal.
Se referencia con:
@~
Este stage es útil para cargas rápidas o pruebas.
Table Stage
Cada tabla puede tener su propio stage asociado.
Se referencia con:
@%table_name
Este stage permite cargar archivos directamente relacionados con una tabla específica.
Named Stage
Es un stage creado explícitamente por el usuario.
Ejemplo:
CREATE STAGE my_stage;
Este tipo de stage es el más flexible y común en pipelines de datos.

Subir archivos a un Internal Stage
Para subir archivos desde el sistema local se utiliza el comando PUT.
Ejemplo:
PUT file://data.csv @my_stage;
Esto copia el archivo al stage dentro de Snowflake.
Cargar datos desde el Stage a una tabla
Una vez que los archivos están en el stage, se pueden cargar en una tabla mediante COPY INTO.
Ejemplo:
COPY INTO sales
FROM @my_stage
FILE_FORMAT = (TYPE = CSV);
Este comando procesa el archivo y lo inserta en la tabla.
Consultar archivos directamente desde el Stage
Snowflake también permite consultar datos directamente desde los archivos almacenados en el stage.
Ejemplo:
SELECT *
FROM @my_stage/data.csv
(FILE_FORMAT => ‘my_csv_format’);
Esto permite explorar datos antes de cargarlos definitivamente.
Descargar datos desde Snowflake
Además de cargar datos, los stages también pueden utilizarse para exportar información.
Ejemplo:
COPY INTO @my_stage/export_data
FROM sales;
Esto genera archivos con los datos de la tabla.
Formatos de archivo
Para trabajar con archivos correctamente, Snowflake permite definir file formats.
Ejemplo:
CREATE FILE FORMAT my_csv_format
TYPE = CSV
FIELD_DELIMITER = ‘,’
SKIP_HEADER = 1;
Esto permite estandarizar cómo se interpretan los archivos.
Casos de uso comunes
Los internal stages son útiles en situaciones como:
- Cargas rápidas de archivos locales
- Procesos de ingestión simples
- Pruebas y desarrollo
- Exportación temporal de datos
- Procesamiento intermedio en pipelines
En arquitecturas más complejas, suelen combinarse con external stages.
Buenas prácticas
Al trabajar con stages es recomendable:
- Utilizar named stages en pipelines de producción
- Definir file formats reutilizables
- Monitorizar cargas de datos
- Limpiar archivos antiguos del stage
- Documentar procesos de ingestión
Estas prácticas ayudan a mantener pipelines organizados.
Internal Stages en arquitecturas modernas
En arquitecturas modernas de datos, los stages suelen formar parte de pipelines que incluyen:
- Ingestión de datos
- Procesamiento de archivos
- Transformaciones
- Carga en modelos analíticos
Snowflake facilita este proceso mediante herramientas nativas que simplifican la gestión de archivos.
Conclusión
Los Internal Stages son un componente fundamental en el ecosistema Snowflake para gestionar archivos y facilitar la carga de datos. Permiten almacenar archivos dentro de la plataforma y utilizarlos en procesos de ingestión, exportación y análisis.
Comprender cómo funcionan los stages y cómo integrarlos en pipelines de datos es esencial para construir flujos de ingestión eficientes y escalables en Snowflake.




