Skip to main content
JSONSnowflake

Internal Stages en Snowflake: qué son y cómo utilizarlos

By octubre 20, 2023septiembre 8th, 2026No Comments

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.

    Leave a Reply