LIST

Retorna uma lista de arquivos de um dos seguintes recursos de armazenamento do Snowflake:

LIST pode ser abreviado como LS.

Consulte também:

REMOVE, PUT, COPY INTO <tabela>, COPY INTO <local>, GET

Sintaxe

A sintaxe difere dependendo se você está listando arquivos em uma área de preparação ou em um clone do repositório Git.

Para uma área de preparação

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

Para um clone do repositório Git

LIST repositoryClone [ PATTERN = '<regex_pattern>' ]
Copy

Onde:

repositoryClone ::=
  @[<namespace>.]<repository_clone>/<path>
Copy

Parâmetros obrigatórios

Para uma área de preparação

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.

Para um clone do repositório Git

repositoryClone

Especifica o nome do clone do repositório e a ramificação, tag ou commit para o qual os arquivos serão listados.

@[namespace.]repository_clone/path

Ao listar arquivos de um clone do repositório Git, o path é obrigatório e deve começar com uma das seguintes opções:

branches/branch_name

Liste arquivos da ramificação especificada.

tags/tag_name

Liste arquivos da tag especificada.

commits/commit_hash

Liste arquivos do commit especificado pelo hash do commit.

Nota

Se o nome ou caminho do clone do repositório incluir espaços ou caracteres especiais, ele deverá ser colocado entre aspas simples (por exemplo, '@"my repository"' para um repositório chamado "my repository").

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

  • Para executar esse comando com um estágio externo que usa uma integração de armazenamento, é necessário usar uma função que tenha ou herde o privilégio USAGE na integração de armazenamento.

    Para obter mais informações, consulte Privilégios de estágio.

  • 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.

    • PATTERN oferece suporte à sintaxe da classe Pattern do Java.

Saída

O comando retorna colunas nas tabelas a seguir. Os valores das colunas variam dependendo se você está usando LIST com um clone de repositório Git ou área de preparação.

Para uma área de preparação

Coluna

Tipo de dados

Descrição

nome

VARCHAR

Nome do arquivo preparado

tamanho

NUMBER

Tamanho do arquivo compactado (em bytes)

md5

VARCHAR

A coluna MD5 armazena um hash MD5 do conteúdo do arquivo de dados preparado.

Para estágios internos com criptografia padrão (SNOWFLAKE_FULL), durante o upload o arquivo de origem é criptografado com uma chave aleatória e seu resultado MD5 sempre será diferente do arquivo local original.

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.

Para os estágios do Google Cloud que usam uma chave de criptografia gerenciada pelo cliente (CMEK), espera-se que o md5 seja NULL.

Para obter mais informações, consulte Chaves de criptografia gerenciadas pelo cliente.

sha1

VARCHAR

Não utilizado

last_modified

VARCHAR

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

Para um clone do repositório Git

Coluna

Tipo de dados

Descrição

nome

VARCHAR

Caminho completo do arquivo com extensão

tamanho

NUMBER

Tamanho do arquivo compactado (em bytes)

md5

VARCHAR

Não utilizado

sha1

VARCHAR

Um identificador exclusivo gerado pela aplicação do algoritmo de hash SHA-1 ao conteúdo do arquivo. É utilizado pelo Git para rastrear e fazer referência à versão exata de um arquivo no repositório e pode ser usado para detectar alterações no conteúdo do arquivo.

last_modified

VARCHAR

Carimbo de data/hora do commit associado aos arquivos listados. Isso não indica necessariamente quando o conteúdo do arquivo foi alterado pela última vez.

Exemplos

Para uma área de preparação

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

Para um clone do repositório Git

Para exemplos, consulte Ver uma lista de arquivos de repositório.