Stages, filformat och COPY INTO

Automatisering av datapipelines i Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowflake driver många arbetsflöden

Screenshot 2026-05-11 at 11.52.34 am.png

1 * Snowflake Learning Material
Automatisering av datapipelines i Snowflake

Exempelpipeline

 

 

Screenshot 2026-05-11 at 10.48.51 am.png

1 * Snowflake Learning Material
Automatisering av datapipelines i Snowflake

Möt Harbr

Fiktiv logotyp för Harbr

Om Harbr

  • Global plattform för logistik och leveranskedjor
  • Använder Snowflake för att spåra leveranser, lagerhantering och leveransprestanda
  • Hämtar data från leverantörssystem i flera regioner
Automatisering av datapipelines i Snowflake

Problemet med datainläsning

Diagram över datainläsning

Stage = tillfällig lagringsplats

Automatisering av datapipelines i Snowflake

Stage-typer

Två typer av stages

Interna stages

  • Användare
    • Personligt stagingutrymme för en enskild användare
  • Tabell
    • Kopplad till en specifik tabell
  • Namngiven
    • Databasobjekt som skapas i schemat

Extern stage

  • Namngiven
    • Pekar mot molnleverantör
Automatisering av datapipelines i Snowflake

Stage-parametrar

Katalogstabell

CREATE STAGE harbr_stage
  DIRECTORY = (ENABLE = TRUE)

Kryptering för intern stage

ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)

Kryptering för extern stage

ENCRYPTION = 
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '') 

ENCRYPTION = 
([ TYPE = 'AWS_SSE_S3' ]) 

...
Automatisering av datapipelines i Snowflake

Filformat

  • Strukturerade format: CSV med avgränsare, rubrikrader och citatteckenregler
  • Semi-strukturerade format: JSON, Parquet, Avro, ORC och XML.

    • Läs in direkt i en VARIANT-kolumn
    • Definiera tolkningsregler en gång, återanvänd vid alla inläsningar
  • Uppdatera formatobjektet en gång

SQL

CREATE FILE FORMAT harbr_csv_format
  TYPE = 'CSV'
  FIELD_DELIMITER = ','
  SKIP_HEADER = 1;
Automatisering av datapipelines i Snowflake

COPY INTO

Läs in från en namngiven stage med ett namngivet filformat

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
Automatisering av datapipelines i Snowflake

Felhantering

ON_ERROR-alternativ Beteende
ABORT_STATEMENT Avbryt hela inläsningen vid första felet (standard)
CONTINUE Hoppa över felaktiga rader, läs in övriga
SKIP_FILE Hoppa över hela filen om den innehåller fel
SKIP_FILE_<num> Hoppa över filen om antalet fel överskrider angivet värde
SKIP_FILE_<num>% Hoppa över filen om felprocenten överskrider angiven tröskel
Automatisering av datapipelines i Snowflake

Valideringsläge och COPY_HISTORY

Validera utan att läsa in = testkörning

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;

Granska inläsningshistorik

SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
  TABLE_NAME => 'shipments',
  START_TIME => DATEADD('hour', -24,
    CURRENT_TIMESTAMP())));
Automatisering av datapipelines i Snowflake

Låt oss öva!

Automatisering av datapipelines i Snowflake

Preparing Video For Download...