Stages, formatos de arquivo e COPY INTO

Automação de Pipelines de Dados no Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowflake impulsiona muitos workloads

Captura de tela 2026-05-11 às 11.52.34 am.png

1 * Snowflake Learning Material
Automação de Pipelines de Dados no Snowflake

Pipeline de exemplo

 

 

Captura de tela 2026-05-11 às 10.48.51 am.png

1 * Snowflake Learning Material
Automação de Pipelines de Dados no Snowflake

Conheça a Harbr

Logo fictício da Harbr

Sobre a Harbr

  • Plataforma global de logística e cadeia de suprimentos
  • Usa Snowflake para rastrear envios, estoque de armazém e desempenho de entrega
  • Ingere dados de sistemas de fornecedores em várias regiões
Automação de Pipelines de Dados no Snowflake

O problema do carregamento de dados

Diagrama de carregamento de dados

Stage = área de armazenamento temporário

Automação de Pipelines de Dados no Snowflake

Tipos de stage

Dois tipos de stage

Stages internos

  • Usuário
    • Área pessoal de staging para um único usuário
  • Tabela
    • Vinculado a uma tabela específica
  • Nomeado
    • Objeto de banco criado no schema

Stage externo

  • Nomeado
    • Aponta para provedor de nuvem
Automação de Pipelines de Dados no Snowflake

Parâmetros de stage

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' ]) 

...
Automação de Pipelines de Dados no Snowflake

Formatos de arquivo

  • Formatos estruturados: CSV com delimitadores, cabeçalho, aspas
  • Semiestruturados: JSON, Parquet, Avro, ORC e XML.

    • Carregar direto em coluna VARIANT
    • Defina regras de parsing uma vez e reutilize em todos os loads
  • Atualize o objeto de formato uma vez

SQL

CREATE FILE FORMAT harbr_csv_format
  TYPE = 'CSV'
  FIELD_DELIMITER = ','
  SKIP_HEADER = 1;
Automação de Pipelines de Dados no Snowflake

COPY INTO

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')
Automação de Pipelines de Dados no Snowflake

Tratamento de erros

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
Automação de Pipelines de Dados no Snowflake

Modo de validação e COPY_HISTORY

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

Vamos praticar!

Automação de Pipelines de Dados no Snowflake

Preparing Video For Download...