Automatización de canalizaciones de datos en Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake



Sobre Harbr

Stage = ubicación de almacenamiento temporal

Stages internos
Stage externo
Tabla de directorio
CREATE STAGE harbr_stage
DIRECTORY = (ENABLE = TRUE)
Cifrado de stages internos
ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)
Cifrado de stage externo
ENCRYPTION =
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '')
ENCRYPTION =
([ TYPE = 'AWS_SSE_S3' ])
...
Semiestructurados: JSON, Parquet, Avro, ORC y XML.
VARIANTActualiza el objeto de formato una vez
SQL
CREATE FILE FORMAT harbr_csv_format
TYPE = 'CSV'
FIELD_DELIMITER = ','
SKIP_HEADER = 1;
Cargar desde un stage nombrado usando un formato nombrado
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
| Opciones de ON_ERROR | Comportamiento |
|---|---|
ABORT_STATEMENT |
Falla toda la carga en el primer error (predeterminado) |
CONTINUE |
Omite filas erróneas y carga el resto |
SKIP_FILE |
Omite el archivo completo si tiene errores |
SKIP_FILE_<num> |
Omite el archivo solo si los errores superan un conteo dado |
SKIP_FILE_<num>% |
Omite el archivo solo si los errores superan un umbral en % |
Validar sin cargar = simulación
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;
Inspeccionar el historial de cargas
SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
TABLE_NAME => 'shipments',
START_TIME => DATEADD('hour', -24,
CURRENT_TIMESTAMP())));
Automatización de canalizaciones de datos en Snowflake