GET¶
Faz download de arquivos de dados de um dos seguintes tipos de estágio interno para um diretório ou pasta local em uma máquina cliente:
Estágio interno nomeado.
Estágio interno de uma tabela específica.
Estágio interno do usuário atual
Você pode usar esse comando para fazer download de arquivos de dados após descarregar dados de uma tabela em um estágio Snowflake usando o comando COPY INTO <local>.
- Consulte também:
LIST , PUT , REMOVE , COPY FILES
Sintaxe¶
GET internalStage file://<local_directory_path>
[ PARALLEL = <integer> ]
[ PATTERN = '<regex_pattern>'' ]
Onde:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]
Parâmetros obrigatórios¶
internalStage
Especifica o local no Snowflake a partir do qual se pode fazer o download dos arquivos:
@[namespace.]int_stage_name[/path]
Os arquivos são baixados do estágio interno nomeado especificado.
@[namespace.]%table_name[/path]
Os arquivos são baixados do estágio para a tabela especificada.
@~[/path]
Os arquivos são baixados do estágio para o usuário atual.
Onde:
namespace
é o banco de dados e/ou esquema no qual se encontra a tabela ou o estágio interno. É opcional se um banco de dados e um esquema estiverem em uso atualmente na sessão; caso contrário, ele é obrigatório.path
é um caminho opcional que distingue letras maiúsculas de minúsculas para arquivos no local de armazenamento em nuvem (ou seja, os arquivos têm nomes que começam com uma cadeia de caracteres comum) que limita o acesso a um conjunto de arquivos. Os caminhos são chamados alternativamente de prefixos ou pastas por diferentes serviços de armazenamento em nuvem. Sepath
for especificado, mas nenhum arquivo for explicitamente nomeado no caminho, todos os arquivos de dados no caminho são baixados.
Nota
Se o nome do estágio ou caminho incluir espaços ou caracteres especiais, ele deve ser colocado entre aspas simples (por exemplo,
'@"my stage"'
para um estágio chamado"my stage"
).file://local_directory_path
Especifica o caminho do diretório local e a máquina do cliente onde os arquivos são baixados:
- Linux/macOS:
Você deve incluir a barra inicial no caminho (por exemplo,
file:///tmp/load
).Se o caminho do diretório incluir caracteres especiais, o URI do arquivo inteiro deve ser delimitado por aspas simples.
- Windows:
Você deve incluir a unidade e a barra invertida no caminho (por exemplo,
file://C:tempload
).Se o caminho do diretório incluir caracteres especiais, o URI do arquivo inteiro deve ser delimitado por aspas simples. Observe que a unidade e o separador de caminho é uma barra (
/
) em URIs delimitados (por exemplo,'file://C:/temp/load data'
para um caminho no Windows que inclui um diretório chamadoload data
).
Nota
O comando GET retorna um erro se você especificar um nome de arquivo como parte do caminho, exceto se você usar o driver JDBC ou o driver ODBC. Se você especificar um nome de arquivo ao usar qualquer um dos drivers, o driver tratará o nome do arquivo como parte do caminho do diretório e criará um subdiretório com o nome de arquivo especificado.
Por exemplo, se você especificar
file:///tmp/load/file.csv
, o driver JDBC ou ODBC criará um subdiretório denominadofile.csv/
no caminho/tmp/load/
. O comando GET baixa então os arquivos preparados para esse novo subdiretório.
Parâmetros opcionais¶
PARALLEL = integer
Especifica o número de threads a serem usados para o download dos arquivos. A unidade de granularidade para o download é um arquivo.
Aumentar o número de threads pode melhorar o desempenho ao baixar arquivos grandes.
Valores suportados: qualquer valor inteiro de
1
(sem paralelismo) até99
(use 99 threads para baixar arquivos).Padrão:
10
PATTERN = 'regex_pattern'
Especifica um padrão de expressão regular para filtragem de arquivos para download. O comando lista todos os arquivos no
path
especificado e aplica o padrão de expressão regular em cada um dos arquivos encontrados.Padrão: sem valor (todos os arquivos no estágio especificado são baixados)
Notas de uso¶
GET não oferece suporte às seguintes ações:
Download dos arquivos de estágios externos. Para baixar arquivos de estágios externos, utilize as ferramentas fornecidas por seu serviço de nuvem.
Baixar vários arquivos com caminhos de diretório divergentes. O comando não preserva a estrutura de diretórios do estágio ao transferir arquivos para sua máquina cliente.
Por exemplo, a instrução GET a seguir retorna um erro, pois não é possível fazer download de vários arquivos chamados
tmp.parquet
que estão em subdiretórios diferentes no estágio.GET @my_int_stage my_target_path PATTERN = "tmp.parquet";
O driver ODBC oferece suporte a GET com contas Snowflake hospedadas nas seguintes plataformas:
Amazon Web Services (usando driver ODBC versão 2.17.5 e superior).
Google Cloud Platform (usando driver ODBC versão 2.21.5 e superior).
Microsoft Azure (usando driver ODBC versão 2.20.2 e superior).
O comando não pode ser executado a partir da página Worksheets na interface da web do Snowflake; em vez disso, use o cliente SnowSQL para baixar arquivos de dados, ou verifique a documentação do cliente específico do Snowflake para verificar o suporte a este comando.
O comando não renomeia arquivos.
Os arquivos baixados são descriptografados automaticamente usando a mesma chave que foi usada para criptografar o arquivo quando ele foi carregado (usando PUT) ou descarregado de uma tabela (usando COPY INTO <local>).
Exemplos¶
Baixar todos os arquivos no estágio da tabela mytable
para o diretório local /tmp/data
(em um ambiente Linux ou macOS):
GET @%mytable file:///tmp/data/;
Baixar arquivos do caminho myfiles
no estágio do usuário atual para o diretório local /tmp/data
(em um ambiente Linux ou macOS):
GET @~/myfiles file:///tmp/data/;