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

Onde:

internalStage ::=
    @[<namespace>.]<int_stage_name>[/<path>]
  | @[<namespace>.]%<table_name>[/<path>]
  | @~[/<path>]
Copy

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. Se path 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 chamado load 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 denominado file.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";
      
      Copy
  • 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 Guia Planilha 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/;
Copy

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/;
Copy