Automatyzacja potoków danych w Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake



O Harbr

Etap = tymczasowa lokalizacja przechowywania

Etapy wewnętrzne
Etap zewnętrzny
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' ])
...
Formaty częściowo strukturalne: JSON, Parquet, Avro, ORC i XML.
VARIANTAktualizacja obiektu formatu jednorazowo
SQL
CREATE FILE FORMAT harbr_csv_format
TYPE = 'CSV'
FIELD_DELIMITER = ','
SKIP_HEADER = 1;
Ł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')
| 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 |
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