Tabelle esterne e Iceberg

Automazione delle pipeline di dati in Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Cos'è una tabella esterna?

Use case:

  • Harbr riceve file da decine di partner ogni giorno
  • Caricarli in Snowflake non ha senso

external table.png

Tabelle esterne

  • I dati restano in S3, GCS o Azure Blob — non entrano mai in Snowflake
  • Snowflake memorizza metadati: percorsi file, schemi
  • Legge i file al momento della query
Automazione delle pipeline di dati in Snowflake

Creare una tabella esterna

CREATE EXTERNAL TABLE logistics.supplier_inventory
  WITH LOCATION = @harbr_stage/inventory/
  FILE_FORMAT = (TYPE = 'PARQUET')
  AUTO_REFRESH = TRUE;
Automazione delle pipeline di dati in Snowflake

Quando usare le tabelle esterne

  • I dati sono di un partner — esegui query senza gestirli tu
  • File grandi, query rare — evita di caricare dati usati una volta al mese
  • Dati non spostabili per compliance — i file devono restare dove sono
  • Esplora prima di impegnarti — leggi file grezzi prima di decidere cosa caricare
-- Query inventario partner 
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;
Automazione delle pipeline di dati in Snowflake

Tabelle esterne vs caricamento dati

Tabelle esterne

  • Zero costi di storage su Snowflake
  • Riflettono sempre lo stato attuale dello storage cloud
  • Ideali per dati rari/archiviati
-- Query diretta, senza caricamento
SELECT * FROM 
logistics.supplier_inventory
WHERE supplier_id = 'SUP-042';

Caricamento con COPY INTO

  • Piena performance di query Snowflake
  • Ideale per dati frequenti e live
-- Carica una volta, query veloci
COPY INTO logistics.delivery_events
FROM @harbr_stage/events/;
Automazione delle pipeline di dati in Snowflake

Tabelle Apache Iceberg

  • Come garantire una lettura corretta da S3, Azure Blob o GCS?

    • Apache
  • Apache = formato di tabella aperto: dati non vincolati a un motore

    • File Parquet + livello di metadati (time travel, cronologia schema, partizioni)
    • affidabilità a livello database

Screenshot 2026-05-11 at 12.14.31 pm.png

1 * Materiale di apprendimento Snowflake
Automazione delle pipeline di dati in Snowflake

Gestite da Snowflake vs gestite esternamente

Gestite da Snowflake

  • Snowflake possiede e scrive i metadati Iceberg
  • Accesso lettura-scrittura completo da SQL
CREATE ICEBERG TABLE 
logistics.shipments
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  BASE_LOCATION = 'iceberg/shipments/';

Gestite esternamente

  • Un catalogo esterno possiede i metadati - AWS Glue, Apache Polaris
CREATE ICEBERG TABLE 
logistics.partner_data
  CATALOG = 'glue_catalog'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  CATALOG_TABLE_NAME = 
  'partner.deliveries';
Automazione delle pipeline di dati in Snowflake

Ayo berlatih!

Automazione delle pipeline di dati in Snowflake

Preparing Video For Download...