Automação de Pipelines de Dados no Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake



Sobre a Harbr

Stage = área de armazenamento temporário

Stages internos
Stage externo
Tabela de diretório
CREATE STAGE harbr_stage
DIRECTORY = (ENABLE = TRUE)
Criptografia em stage interno
ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)
Criptografia em stage externo
ENCRYPTION =
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '')
ENCRYPTION =
([ TYPE = 'AWS_SSE_S3' ])
...
Semiestruturados: JSON, Parquet, Avro, ORC e XML.
VARIANTAtualize o objeto de formato uma vez
SQL
CREATE FILE FORMAT harbr_csv_format
TYPE = 'CSV'
FIELD_DELIMITER = ','
SKIP_HEADER = 1;
Carregar de um stage nomeado usando um formato nomeado
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
| Opções ON_ERROR | Comportamento |
|---|---|
ABORT_STATEMENT |
Falha todo o load no primeiro erro (padrão) |
CONTINUE |
Pula linhas ruins, carrega o resto |
SKIP_FILE |
Pula o arquivo inteiro se tiver qualquer erro |
SKIP_FILE_<num> |
Pula o arquivo só se erros excederem o limite |
SKIP_FILE_<num>% |
Pula o arquivo só se erros passarem do % definido |
Validar sem carregar = dry run
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;
Ver histórico de loads
SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
TABLE_NAME => 'shipments',
START_TIME => DATEADD('hour', -24,
CURRENT_TIMESTAMP())));
Automação de Pipelines de Dados no Snowflake