Tabele externe și Iceberg

Automatizarea pipeline-urilor de date în Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Ce este un tabel extern?

Caz de utilizare:

  • Harbr primește zilnic fișiere de la zeci de parteneri
  • Încărcarea lor în Snowflake nu este eficientă

tabel extern.png

Tabele externe

  • Datele rămân în S3, GCS sau Azure Blob — nu sunt mutate în Snowflake
  • Snowflake stochează metadate: căi de fișiere, scheme
  • Citește fișierele la momentul interogării
Automatizarea pipeline-urilor de date în Snowflake

Crearea unui tabel extern

CREATE EXTERNAL TABLE logistics.supplier_inventory
  WITH LOCATION = @harbr_stage/inventory/
  FILE_FORMAT = (TYPE = 'PARQUET')
  AUTO_REFRESH = TRUE;
Automatizarea pipeline-urilor de date în Snowflake

Când se utilizează tabelele externe

  • Datele aparțin unui partener — interogare fără a prelua gestionarea datelor
  • Fișiere mari, interogate rar — evitați încărcarea datelor accesate o dată pe lună
  • Datele nu pot fi mutate din motive de conformitate — fișierele trebuie să rămână la locul original
  • Explorare înainte de angajament — citiți fișierele brute înainte de a decide ce să încărcați
-- Query partner inventory 
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;
Automatizarea pipeline-urilor de date în Snowflake

Tabele externe vs. încărcare date

Tabele externe

  • Cost zero de stocare în Snowflake
  • Reflectă întotdeauna starea curentă din cloud storage
  • Recomandat pentru date arhivate, interogate rar
-- Query directly, no load needed
SELECT * FROM 
logistics.supplier_inventory
WHERE supplier_id = 'SUP-042';

Încărcare cu COPY INTO

  • Performanță completă de interogare Snowflake
  • Recomandat pentru date active, interogate frecvent
-- Load once, query fast
COPY INTO logistics.delivery_events
FROM @harbr_stage/events/;
Automatizarea pipeline-urilor de date în Snowflake

Tabele Apache Iceberg

  • Cum citim corect datele din S3, Azure Blob sau GCS?

    • Apache
  • Apache = Format de tabel deschis: datele nu sunt blocate într-un singur motor

    • Fișiere Parquet + strat de metadate (travel în timp, istoric schemă, partiții)
    • fiabilitate de nivel bază de date

Captură de ecran 2026-05-11 la 12.14.31 pm.png

1 * Materiale de învățare Snowflake
Automatizarea pipeline-urilor de date în Snowflake

Gestionat de Snowflake vs. gestionat extern

Gestionat de Snowflake

  • Snowflake deține și scrie metadatele Iceberg
  • Acces complet citire-scriere din SQL
CREATE ICEBERG TABLE 
logistics.shipments
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  BASE_LOCATION = 'iceberg/shipments/';

Gestionat extern

  • Catalogul extern deține metadatele — AWS Glue, Apache Polaris
CREATE ICEBERG TABLE 
logistics.partner_data
  CATALOG = 'glue_catalog'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  CATALOG_TABLE_NAME = 
  'partner.deliveries';
Automatizarea pipeline-urilor de date în Snowflake

Să exersăm!

Automatizarea pipeline-urilor de date în Snowflake

Preparing Video For Download...