Externa tabeller och Iceberg-tabeller

Automatisering av datapipelines i Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Vad är en extern tabell?

Användningsfall:

  • Harbr tar emot filer från dussintals partners dagligen
  • Att ladda in dem i Snowflake är inte praktiskt

Extern tabell.

Externa tabeller

  • Data finns kvar i S3, GCS eller Azure Blob — flyttas aldrig till Snowflake
  • Snowflake lagrar metadata: filsökvägar, scheman
  • Filer läses vid frågetillfället
Automatisering av datapipelines i Snowflake

Skapa en extern tabell

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

När ska externa tabeller användas?

  • Data ägs av en partner — fråga utan att ta över datahanteringen
  • Stora filer som sällan efterfrågas — undvik att ladda data som används en gång i månaden
  • Data kan inte flyttas av regelskäl — filer måste ligga kvar på ursprungsplatsen
  • Utforska innan du binder dig — läs råfiler innan du beslutar vad som ska laddas
-- 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;
Automatisering av datapipelines i Snowflake

Externa tabeller vs. inläsning av data

Externa tabeller

  • Ingen lagringskostnad i Snowflake
  • Återspeglar alltid aktuellt tillstånd i molnlagringen
  • Bäst för sällan frågad, arkiverad data
-- Query directly, no load needed
SELECT * FROM 
logistics.supplier_inventory
WHERE supplier_id = 'SUP-042';

Inläsning med COPY INTO

  • Full frågeprestanda i Snowflake
  • Bäst för ofta frågad, aktiv data
-- Load once, query fast
COPY INTO logistics.delivery_events
FROM @harbr_stage/events/;
Automatisering av datapipelines i Snowflake

Apache Iceberg-tabeller

  • Hur läser vi data korrekt från S3, Azure Blob eller GCS?

    • Apache
  • Apache = Öppet tabellformat: data är inte låst till ett specifikt system

    • Parquet-filer + metadatalager (tidsresa, schemahistorik, partitioner)
    • Tillförlitlighet på databasnivå

Skärmbild 2026-05-11 kl. 12.14.31.

1 * Snowflake-utbildningsmaterial
Automatisering av datapipelines i Snowflake

Snowflake-hanterad vs. externt hanterad

Snowflake-hanterad

  • Snowflake äger och skriver Iceberg-metadata
  • Full läs- och skrivåtkomst via SQL
CREATE ICEBERG TABLE 
logistics.shipments
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  BASE_LOCATION = 'iceberg/shipments/';

Externt hanterad

  • Extern katalog äger 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 av datapipelines i Snowflake

Laten we oefenen!

Automatisering av datapipelines i Snowflake

Preparing Video For Download...