Tablas externas e Iceberg

Automatización de canalizaciones de datos en Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

¿Qué es una tabla externa?

Caso de uso:

  • Harbr recibe archivos de decenas de socios cada día
  • Cargarlos en Snowflake no tiene sentido

tabla externa.png

Tablas externas

  • Los datos permanecen en S3, GCS o Azure Blob: no se mueven a Snowflake
  • Snowflake guarda metadatos: rutas de archivo, esquemas
  • Lee archivos al hacer la consulta
Automatización de canalizaciones de datos en Snowflake

Crear una tabla externa

CREATE EXTERNAL TABLE logistics.supplier_inventory
  WITH LOCATION = @harbr_stage/inventory/
  FILE_FORMAT = (TYPE = 'PARQUET')
  AUTO_REFRESH = TRUE;
Automatización de canalizaciones de datos en Snowflake

Cuándo usar tablas externas

  • Los datos son de un socio: consulta sin asumir su gestión
  • Archivos grandes y poco consultados: evita cargar datos usados una vez al mes
  • Datos no movibles por compliance: deben permanecer en su ubicación original
  • Explorar antes de comprometerse: lee archivos en bruto antes de decidir qué cargar
-- Consultar inventario del socio 
SELECT supplier_id,
       COUNT(*)       AS file_count,
       SUM(quantity)  AS total_units
FROM logistics.supplier_inventory
WHERE delivery_date >= '2024-01-01'
GROUP BY supplier_id;
Automatización de canalizaciones de datos en Snowflake

Tablas externas vs carga de datos

Tablas externas

  • Costo de almacenamiento en Snowflake: cero
  • Siempre reflejan el estado actual del almacenamiento en la nube
  • Ideales para datos poco consultados o archivados
-- Consulta directa, sin carga
SELECT * FROM 
logistics.supplier_inventory
WHERE supplier_id = 'SUP-042';

Cargar con COPY INTO

  • Rendimiento completo de consulta en Snowflake
  • Ideal para datos vivos y de consulta frecuente
-- Cargar una vez, consultar rápido
COPY INTO logistics.delivery_events
FROM @harbr_stage/events/;
Automatización de canalizaciones de datos en Snowflake

Tablas Apache Iceberg

  • ¿Cómo aseguramos leer bien desde S3, Azure Blob o GCS?

    • Apache
  • Apache = Formato de tabla abierto: datos no ligados a ningún motor

    • Archivos Parquet + capa de metadatos (time travel, historial de esquema, particiones)
    • Fiabilidad de nivel base de datos

Captura de pantalla 2026-05-11 a las 12.14.31 p. m..png

1 * Material de aprendizaje de Snowflake
Automatización de canalizaciones de datos en Snowflake

Gestionado por Snowflake vs externo

Gestionado por Snowflake

  • Snowflake posee y escribe los metadatos de Iceberg
  • Acceso total de lectura y escritura desde SQL
CREATE ICEBERG TABLE 
logistics.shipments
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  BASE_LOCATION = 'iceberg/shipments/';

Gestionado externamente

  • Un catálogo externo posee los metadatos: AWS Glue, Apache Polaris
CREATE ICEBERG TABLE 
logistics.partner_data
  CATALOG = 'glue_catalog'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  CATALOG_TABLE_NAME = 
  'partner.deliveries';
Automatización de canalizaciones de datos en Snowflake

¡Vamos a practicar!

Automatización de canalizaciones de datos en Snowflake

Preparing Video For Download...