LIST

Retorna uma lista de arquivos que foram preparados (ou seja, carregados de um sistema de arquivos local ou descarregados de uma tabela) em um dos seguintes estágios do Snowflake:

  • Estágio interno nomeado.

  • Estágio externo nomeado.

  • Estágio para uma tabela específica.

  • Estágio do usuário atual.

LIST pode ser abreviado como LS.

Consulte também:

REMOVE

PUT , COPY INTO <tabela>

COPY INTO <local> , GET

Sintaxe

LIST { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]
Copy

Onde:

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

Parâmetros obrigatórios

internalStage | externalStage

Especifica o local onde os arquivos de dados são preparados:

@[namespace.]int_stage_name[/path]

Os arquivos estão no estágio interno nomeado especificado.

@[namespace.]ext_stage_name[/path]

Os arquivos estão no estágio externo nomeado especificado.

@[namespace.]%table_name[/path]

Os arquivos estão no estágio para a tabela especificada.

@~[/path]

Os arquivos estão no 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 nomeado. É 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.

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").

Dica

Especificar um caminho fornece um escopo para o comando LIST, reduzindo potencialmente a quantidade de tempo necessária para executar o comando.

Parâmetros opcionais

PATTERN = 'regex_pattern'

Especifica um padrão de expressão regular para filtrar arquivos a partir da saída. O comando lista todos os arquivos no path especificado e aplica o padrão de expressão regular em cada um dos arquivos encontrados.

Notas de uso

  • Ao contrário dos estágios nomeados, os estágios da tabela e do usuário não são objetos de banco de dados de primeira classe; ao contrário, são estágios implícitos associados à tabela/usuário. Como tal, eles não têm privilégios próprios que podem ser concedidos:

    • Você sempre pode listar arquivos em seu estágio de usuário (ou seja, não são necessários privilégios).

    • Para listar arquivos em um estágio da tabela, você deve usar uma função que tenha o privilégio OWNERSHIP sobre a tabela.

Saída

O comando retorna as seguintes colunas:

Coluna

Tipo de dados

Descrição

nome

VARCHAR

Nome do arquivo preparado.

tamanho

NUMBER

Tamanho do arquivo comprimido (em bytes).

md5

VARCHAR

A coluna MD5 armazena um hash MD5 do conteúdo do arquivo de dados preparado, que pode ser usado para verificar se o arquivo foi preparado (carregado) corretamente. Observe que os estágios Amazon S3 informam o valor através do campo S3 eTag, que pode não ser um hash MD5 do conteúdo do arquivo.

last_modified

VARCHAR

Carimbo de data/hora em que o arquivo foi atualizado pela última vez no estágio.

Exemplos

Liste todos os arquivos no estágio para a tabela mytable:

LIST @%mytable;
Copy

Liste todos os arquivos no caminho path1 do estágio nomeado mystage:

LIST @mystage/path1;
Copy

Liste os arquivos que correspondem a uma expressão regular (ou seja, todos os nomes de arquivos que contêm a cadeia de caracteres data_0) no estágio para a tabela mytable:

LIST @%mytable PATTERN='.*data_0.*';
Copy

Liste os arquivos no caminho /analysis/ do estágio nomeado my_csv_stage que corresponde a uma expressão regular (ou seja, todos os nomes de arquivos contendo a cadeia de caracteres data_0):

LIST @my_csv_stage/analysis/ PATTERN='.*data_0.*';
Copy

Use a forma abreviada do comando para listar todos os arquivos no estágio para o usuário atual:

LS @~;
Copy