Descarregamento em um estágio do Snowflake¶
Este conjunto de tópicos descreve como usar o comando COPY para descarregar dados de uma tabela para um estágio interno (ou seja, Snowflake). Você pode então baixar os arquivos de dados descarregados para seu sistema de arquivos local.
Como ilustrado no diagrama abaixo, a descarregamento de dados para um sistema de arquivos local é realizado em duas etapas separadas:
- Etapa 1:
Use o comando COPY INTO <local> para copiar os dados da tabela do banco de dados Snowflake para um ou mais arquivos em um estágio do Snowflake. Na instrução SQL, você especifica o estágio (estágio nomeado ou estágio de tabela/usuário) onde os arquivos são gravados.
Independentemente do estágio utilizado, esta etapa requer um warehouse virtual atual e em funcionamento para a sessão se você executar o comando manualmente ou dentro de um script. O warehouse fornece os recursos computacionais para gravar linhas a partir da tabela.
- Etapa 2:
Use o comando GET para baixar os arquivos de dados para seu sistema de arquivos local.
Dica
As instruções neste conjunto de tópicos supõem que você tenha lido Preparação para descarregar dados e criado um formato de arquivo nomeado, se desejar.
Antes de começar, você também pode ler Considerações sobre o descarregamento de dados para obter práticas recomendadas, dicas e outras orientações.
Neste tópico:
Descarregamento dos dados¶
Esta seção fornece instruções para descarregar os dados da tabela para um estágio interno nomeado, estágio de tabela ou estágio do usuário.
Descarregamento de dados em um estágio interno nomeado¶
Os estágios internos são objetos de banco de dados nomeados que proporcionam o maior grau de flexibilidade para o descarregamento de dados. Como eles são objetos de banco de dados, os privilégios para estágios nomeados podem ser concedidos a qualquer função.
Você pode criar um estágio interno usando a interface da Web ou SQL:
- Classic Console:
- SQL:
Criação de um estágio nomeado¶
O exemplo seguinte cria um estágio interno que faz referência ao objeto de formato de arquivo nomeado chamado my_csv_unload_format
que foi criado em Preparação para descarregar dados:
CREATE OR REPLACE STAGE my_unload_stage FILE_FORMAT = my_csv_unload_format;
Descarregamento de dados para o estágio nomeado¶
Use o comando COPY INTO <local> para descarregar todas as linhas de uma tabela em um ou mais arquivos no estágio
my_csv_unload_format
. A instrução prefixa o(s) arquivo(s) descarregado(s) comunload/
para organizar os arquivos no estágio:Por exemplo:
COPY INTO @mystage/unload/ from mytable;
Observe que o caractere
@
por si só identifica um estágio nomeado.Nota
Como as opções de formato de arquivo foram definidas para o estágio, não é necessário especificar as mesmas opções de formato de arquivo no comando COPY.
Use o comando LIST para ver uma lista de arquivos que foram descarregados no estágio:
LIST @mystage; +----------------------------------+------+----------------------------------+-------------------------------+ | name | size | md5 | last_modified | |----------------------------------+------+----------------------------------+-------------------------------| | mystage/unload/data_0_0_0.csv.gz | 112 | 6f77daba007a643bdff4eae10de5bed3 | Mon, 11 Sep 2017 18:13:07 GMT | +----------------------------------+------+----------------------------------+-------------------------------+
Use o comando GET para baixar o(s) arquivo(s) gerado(s) do estágio de tabela para sua máquina local. O seguinte exemplo faz o download dos arquivos no diretório
data/unload
:Por exemplo:
Linux ou macOS:
GET @mystage/unload/data_0_0_0.csv.gz file:///data/unload;
Windows:
GET @mystage/unload/data_0_0_0.csv.gz file://C:\data\unload;
Descarregamento de dados em um estágio de tabela¶
Use o comando COPY INTO <local> para descarregar todas as linhas de uma tabela em um ou mais arquivos no estágio para a tabela. O exemplo a seguir descarrega arquivos de dados no estágio utilizando o formato de arquivo nomeado
my_csv_unload_format
criado em Preparação para descarregar dados. A instrução prefixa o(s) arquivo(s) descarregado(s) comunload/
para organizar os arquivos no estágio:Por exemplo:
COPY INTO @%mytable/unload/ from mytable FILE_FORMAT = (FORMAT_NAME = 'my_csv_unload_format' COMPRESSION = NONE);
Observe que a combinação de caracteres
@%
identifica um estágio de tabela.Use o comando LIST para ver uma lista de arquivos que foram descarregados no estágio:
LIST @%mytable; +-----------------------+------+----------------------------------+-------------------------------+ | name | size | md5 | last_modified | |-----------------------+------+----------------------------------+-------------------------------| | unload/data_0_0_0.csv | 96 | 29918f18bcb35e7b6b628ca41024236c | Mon, 11 Sep 2017 17:45:20 GMT | +-----------------------+------+----------------------------------+-------------------------------+
Use o comando GET para baixar o(s) arquivo(s) gerado(s) do estágio de tabela para sua máquina local. O seguinte exemplo faz o download dos arquivos no diretório
data/unload
:Por exemplo:
Linux ou macOS:
GET @%mytable/unload/data_0_0_0.csv file:///data/unload;
Windows:
GET @%mytable/unload/data_0_0_0.csv file://C:\data\unload;
Descarregamento de dados em seu estágio de usuário¶
Use o comando COPY INTO <local> para descarregar todas as linhas de uma tabela em um ou mais arquivos em seu estágio. O exemplo a seguir descarrega arquivos de dados em seu estágio de usuário utilizando o formato de arquivo nomeado
my_csv_unload_format
criado em Preparação para descarregar dados. A instrução prefixa o(s) arquivo(s) descarregado(s) comunload/
para organizar os arquivos no estágio:Por exemplo:
COPY INTO @~/unload/ from mytable FILE_FORMAT = (FORMAT_NAME = 'my_csv_unload_format' COMPRESSION = NONE);
Observe que a combinação de caracteres
@~
identifica um estágio de usuário.Use o comando LIST para ver uma lista de arquivos que foram descarregados no estágio:
LIST @~; +-----------------------+------+----------------------------------+-------------------------------+ | name | size | md5 | last_modified | |-----------------------+------+----------------------------------+-------------------------------| | unload/data_0_0_0.csv | 96 | 94a306c55733b95a0887511ff355936b | Mon, 11 Sep 2017 17:25:07 GMT | +-----------------------+------+----------------------------------+-------------------------------+
Use o comando GET para baixar o(s) arquivo(s) gerado(s) do seu estágio para sua máquina local. O seguinte exemplo faz o download dos arquivos no diretório
data/unload
:Por exemplo:
Linux ou macOS:
GET @~/unload/data_0_0_0.csv file:///data/unload;
Windows:
GET @~/unload/data_0_0_0.csv file://C:\data\unload;
Gerenciamento de arquivos de dados descarregados¶
Arquivos preparados podem ser excluídos de um estágio do Snowflake usando o comando REMOVE para remover os arquivos no estágio depois que você terminar de usá-los.
A remoção de arquivos melhora o desempenho ao carregar dados, pois reduz o número de arquivos que o comando COPY INTO <tabela> deve examinar para verificar se os arquivos existentes em um estágio já foram carregados.