Etapy, formaty plików i COPY INTO

Automatyzacja potoków danych w Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowflake obsługuje wiele typów obciążeń

Screenshot 2026-05-11 at 11.52.34 am.png

1 * Snowflake Learning Material
Automatyzacja potoków danych w Snowflake

Przykładowy potok danych

 

 

Screenshot 2026-05-11 at 10.48.51 am.png

1 * Snowflake Learning Material
Automatyzacja potoków danych w Snowflake

Poznaj Harbr

Fikcyjne logo Harbr

O Harbr

  • Globalna platforma logistyki i łańcucha dostaw
  • Używa Snowflake do śledzenia przesyłek, stanów magazynowych i wydajności dostaw
  • Pobiera dane z systemów dostawców z wielu regionów
Automatyzacja potoków danych w Snowflake

Problem ładowania danych

Diagram ładowania danych

Etap = tymczasowa lokalizacja przechowywania

Automatyzacja potoków danych w Snowflake

Typy etapów

Dwa typy etapów

Etapy wewnętrzne

  • Użytkownika
    • Osobisty obszar przejściowy dla jednego użytkownika
  • Tabeli
    • Powiązany z konkretną tabelą
  • Nazwany
    • Obiekt bazy danych tworzony w schemacie

Etap zewnętrzny

  • Nazwany
    • Wskazuje na dostawcę chmury
Automatyzacja potoków danych w Snowflake

Parametry etapu

Tabela katalogowa

CREATE STAGE harbr_stage
  DIRECTORY = (ENABLE = TRUE)

Szyfrowanie etapu wewnętrznego

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

Szyfrowanie etapu zewnętrznego

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

ENCRYPTION = 
([ TYPE = 'AWS_SSE_S3' ]) 

...
Automatyzacja potoków danych w Snowflake

Formaty plików

  • Formaty strukturalne: CSV z określonymi separatorami, nagłówkami i regułami cytowania
  • Formaty częściowo strukturalne: JSON, Parquet, Avro, ORC i XML.

    • Ładowanie bezpośrednio do kolumny VARIANT
    • Definiowanie reguł parsowania raz, wielokrotne używanie
  • Aktualizacja obiektu formatu jednorazowo

SQL

CREATE FILE FORMAT harbr_csv_format
  TYPE = 'CSV'
  FIELD_DELIMITER = ','
  SKIP_HEADER = 1;
Automatyzacja potoków danych w Snowflake

COPY INTO

Ładowanie z nazwanego etapu przy użyciu nazwanego formatu pliku

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
Automatyzacja potoków danych w Snowflake

Obsługa błędów

Opcje ON_ERROR Zachowanie
ABORT_STATEMENT Przerwanie całego ładowania przy pierwszym błędzie (domyślnie)
CONTINUE Pomijanie błędnych wierszy, ładowanie pozostałych
SKIP_FILE Pomijanie całego pliku w razie błędów
SKIP_FILE_<num> Pomijanie pliku, gdy liczba błędów przekroczy limit
SKIP_FILE_<num>% Pomijanie pliku, gdy odsetek błędów przekroczy próg
Automatyzacja potoków danych w Snowflake

Tryb walidacji i COPY_HISTORY

Walidacja bez ładowania = próbne uruchomienie

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

Sprawdzanie historii ładowania

SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
  TABLE_NAME => 'shipments',
  START_TIME => DATEADD('hour', -24,
    CURRENT_TIMESTAMP())));
Automatyzacja potoków danych w Snowflake

Czas na ćwiczenia!

Automatyzacja potoków danych w Snowflake

Preparing Video For Download...