Externe en Iceberg-tabellen

Automatisering van datapijplijnen in Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Wat is een externe tabel?

Usecase:

  • Harbr ontvangt dagelijks bestanden van tientallen partners
  • Laden in Snowflake is niet logisch

external table.png

Externe tabellen

  • Data blijft in S3, GCS of Azure Blob — komt niet in Snowflake
  • Snowflake slaat metadata op: bestandspaden, schema’s
  • Leest bestanden bij querytime
Automatisering van datapijplijnen in Snowflake

Een externe tabel maken

CREATE EXTERNAL TABLE logistics.supplier_inventory
  WITH LOCATION = @harbr_stage/inventory/
  FILE_FORMAT = (TYPE = 'PARQUET')
  AUTO_REFRESH = TRUE;
Automatisering van datapijplijnen in Snowflake

Wanneer externe tabellen gebruiken

  • Data is van een partner — queryen zonder databeheer over te nemen
  • Bestanden zijn groot, weinig bevraagd — niet laden als het maandelijks wordt geraadpleegd
  • Data mag niet verplaatst worden (compliance) — blijft op originele locatie
  • Eerst verkennen, dan besluiten — lees ruwe files vóór je kiest wat je laadt
-- Query partnerinventaris 
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;
Automatisering van datapijplijnen in Snowflake

Externe tabellen vs data laden

Externe tabellen

  • Geen opslagkosten in Snowflake
  • Reflecteert altijd de huidige staat van cloudopslag
  • Ideaal voor zelden bevraagde, gearchiveerde data
-- Direct queryen, laden niet nodig
SELECT * FROM 
logistics.supplier_inventory
WHERE supplier_id = 'SUP-042';

Laden met COPY INTO

  • Volle Snowflake-queryperformance
  • Beste voor vaak bevraagde, live data
-- Eenmalig laden, snel queryen
COPY INTO logistics.delivery_events
FROM @harbr_stage/events/;
Automatisering van datapijplijnen in Snowflake

Apache Iceberg-tabellen

  • Hoe lezen we data correct uit S3, Azure Blob of GCS?

    • Apache
  • Apache = Open table format: data niet vast aan één engine

    • Parquet-bestanden + metalayer (time travel, schemahistorie, partities)
    • betrouwbaarheid op databaseniveau

Screenshot 2026-05-11 at 12.14.31 pm.png

1 * Snowflake-leermateriaal
Automatisering van datapijplijnen in Snowflake

Snowflake-managed vs extern beheerd

Snowflake-managed

  • Snowflake beheert en schrijft de Iceberg-metadata
  • Volledige lees-/schrijftoegang via SQL
CREATE ICEBERG TABLE 
logistics.shipments
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  BASE_LOCATION = 'iceberg/shipments/';

Extern beheerd

  • Externe catalogus beheert metadata - AWS Glue, Apache Polaris
CREATE ICEBERG TABLE 
logistics.partner_data
  CATALOG = 'glue_catalog'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  CATALOG_TABLE_NAME = 
  'partner.deliveries';
Automatisering van datapijplijnen in Snowflake

Laten we oefenen!

Automatisering van datapijplijnen in Snowflake

Preparing Video For Download...