Автоматизация конвейеров данных в Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake



О компании Harbr

Стейдж = временное место хранения

Внутренние стейджи
Внешний стейдж
Таблица директорий
CREATE STAGE harbr_stage
DIRECTORY = (ENABLE = TRUE)
Шифрование внутреннего стейджа
ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)
Шифрование внешнего стейджа
ENCRYPTION =
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '')
ENCRYPTION =
([ TYPE = 'AWS_SSE_S3' ])
...
Полуструктурированные форматы: JSON, Parquet, Avro, ORC и XML.
VARIANTОбъект формата обновляется один раз
SQL
CREATE FILE FORMAT harbr_csv_format
TYPE = 'CSV'
FIELD_DELIMITER = ','
SKIP_HEADER = 1;
Загрузка из именованного стейджа с именованным форматом файла
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
| Параметры ON_ERROR | Поведение |
|---|---|
ABORT_STATEMENT |
Прервать загрузку при первой ошибке (по умолчанию) |
CONTINUE |
Пропустить ошибочные строки, загрузить остальное |
SKIP_FILE |
Пропустить файл при наличии любых ошибок |
SKIP_FILE_<num> |
Пропустить файл, если число ошибок превышает заданное |
SKIP_FILE_<num>% |
Пропустить файл, если доля ошибок превышает заданный % |
Проверка без загрузки = пробный запуск
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;
Просмотр истории загрузок
SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
TABLE_NAME => 'shipments',
START_TIME => DATEADD('hour', -24,
CURRENT_TIMESTAMP())));
Автоматизация конвейеров данных в Snowflake