Cópia de dados de um estágio S3

Carregue os dados de seus arquivos preparados para a tabela de destino.

Neste tópico:

Carregamento de seus dados

Execute COPY INTO <tabela> para carregar seus dados na tabela de destino.

Nota

O carregamento de dados requer um warehouse. Se você estiver usando um warehouse que não esteja configurado para retomada automática, execute ALTER WAREHOUSE para retomar o warehouse. Note que iniciar o warehouse pode demorar até cinco minutos.

ALTER WAREHOUSE mywarehouse RESUME;
Copy

O exemplo a seguir carrega dados de arquivos no estágio denominado my_ext_stage criado em Criação de um estágio S3. Usando a correspondência de padrões, a instrução só carrega arquivos cujos nomes começam com a cadeia de caracteres sales:

COPY INTO mytable
  FROM @my_ext_stage
  PATTERN='.*sales.*.csv';
Copy

Observe que as opções de formato de arquivo não são especificadas porque um formato de arquivo nomeado foi incluído na definição do estágio.

O exemplo a seguir carrega todos os arquivos prefixados com data/files em seu bucket S3 usando o formato de arquivo my_csv_format nomeado, criado em Preparação para carregar dados:

COPY INTO mytable
  FROM s3://mybucket/data/files credentials=(AWS_KEY_ID='$AWS_ACCESS_KEY_ID' AWS_SECRET_KEY='$AWS_SECRET_ACCESS_KEY')
  FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Copy

O seguinte exemplo ad hoc carrega dados de todos os arquivos no bucket S3. O comando COPY especifica as opções de formato de arquivo em vez de fazer referência a um formato de arquivo nomeado. Este exemplo carrega arquivos CSV com um delimitador de campo de canal (|). O comando COPY ignora a primeira linha nos arquivos de dados.

COPY INTO mytable
  FROM s3://mybucket credentials=(AWS_KEY_ID='$AWS_ACCESS_KEY_ID' AWS_SECRET_KEY='$AWS_SECRET_ACCESS_KEY')
  FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Copy

Validação de seus dados

Antes de carregar seus dados, você pode validar se os dados nos arquivos carregados serão carregados corretamente.

Para validar dados em um arquivo carregado, execute COPY INTO <tabela> no modo de validação usando o parâmetro VALIDATION_MODE. O parâmetro VALIDATION_MODE retorna os erros que encontra no arquivo. Você pode então modificar os dados no arquivo para garantir que eles sejam carregados sem erros.

Além disso, COPY INTO <tabela> fornece a opção de cópia ON_ERROR para especificar uma ação a ser executada se forem encontrados erros em um arquivo durante o carregamento.

Monitoramento de carregamentos de dados

O Snowflake retém dados históricos para os comandos COPY INTO executados dentro dos 14 dias anteriores. Os metadados podem ser usados para monitorar e gerenciar o processo de carregamento, incluindo a exclusão de arquivos após a conclusão do carregamento:

  • Monitore o status de cada comando COPY INTO <tabela> na página History Guia Histórico de Classic Console.

  • Use a LOAD_HISTORY exibição do Information Schema para recuperar o histórico dos dados carregados nas tabelas usando o comando COPYINTO.

Cópia de arquivos de um estágio para outro

Use o comando COPY FILES para organizar os dados em um único local, copiando arquivos de um estágio nomeado para outro.

O exemplo a seguir copia todos os arquivos de um estágio de origem (src_stage) para um estágio de destino (trg_stage):

COPY FILES
  INTO @trg_stage
  FROM @src_stage;
Copy

Você também pode especificar uma lista de nomes de arquivos para copiar ou copiar arquivos usando correspondência de padrões. Para obter detalhes, consulte os exemplos de COPY FILES.