Cópia de dados de um estágio interno¶
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 preparados 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;
Estágio do usuário¶
O exemplo a seguir carrega dados de todos os arquivos prefixados com staged
em seu estágio de usuário usando o formato de arquivo nomeado my_csv_format
, criado em Preparação para carregar dados:
COPY INTO mytable from @~/staged FILE_FORMAT = (FORMAT_NAME = 'my_csv_format');
Estágio da tabela¶
O exemplo ad hoc a seguir carrega dados de todos os arquivos no estágio da tabela mytable
. 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 FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);
Observe que ao copiar dados de arquivos em um estágio de tabela, a cláusula FROM pode ser omitida porque o Snowflake verifica automaticamente se há arquivos no estágio de tabela.
Estágio nomeado¶
O exemplo a seguir carrega dados de todos os arquivos do estágio denominado my_stage
, que foi criado em Escolha de um estágio interno para os arquivos locais:
COPY INTO mytable from @my_stage;
Note que um formato de arquivo não precisa ser especificado porque está incluído na definição do estágio.
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 encontrados em um arquivo. Você pode então modificar os dados no arquivo para garantir que eles sejam carregados sem erros.
Além disso, a opção de cópia ON_ERROR do comando COPY INTO <tabela> indica que ação executar se forem encontrados erros em um arquivo durante o carregamento.
Monitoramento de arquivos preparados internamente¶
O Snowflake mantém metadados detalhados para cada arquivo carregado no estágio interno (para usuários, tabelas e estágios), incluindo:
Nome do arquivo
Tamanho do arquivo (comprimido, se a compressão foi especificada durante o upload)
Data LAST_MODIFIED, isto é, o carimbo de data/hora em que o arquivo de dados foi inicialmente preparado ou quando ele foi modificado pela última vez, o que tiver ocorrido por último
Além disso, 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:
Use o comando LIST para visualizar o status dos arquivos de dados que foram preparados.
Monitore o status de cada comando COPY INTO <tabela> na página History de Classic Console.
Use a função VALIDATE para validar os arquivos de dados que você carregou e recuperar quaisquer erros encontrados durante o carregamento.
Use a LOAD_HISTORY exibição do Information Schema para recuperar o histórico dos dados carregados nas tabelas usando o comando COPYINTO.
Gerenciamento de arquivos de dados¶
Arquivos preparados podem ser excluídos de um estágio do Snowflake (estágio do usuário, estágio da tabela ou estágio nomeado) usando os seguintes métodos:
Os arquivos que foram carregados com sucesso podem ser excluídos do estágio durante um carregamento especificando a opção de cópia PURGE no comando COPY INTO <tabela>.
Após a conclusão do carregamento, use o comando REMOVE para remover os arquivos no estágio.
A remoção dos arquivos garante que eles não sejam carregados inadvertidamente novamente. Também melhora o desempenho de carregamento, pois reduz o número de arquivos que os comandos COPY devem examinar para verificar se os arquivos existentes em um estágio já foram carregados.
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;
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.