LIST¶
Retorna uma lista de arquivos de um dos seguintes recursos de armazenamento do Snowflake:
Estágio
Interna nomeada
Externa nomeada
Para uma tabela específica
Para o usuário atual
LIST pode ser abreviado como LS.
- Consulte também:
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>' ]
Onde:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]externalStage ::= @[<namespace>.]<ext_stage_name>[/<path>]
Para um clone do repositório Git¶
LIST repositoryClone [ PATTERN = '<regex_pattern>' ]
Onde:
repositoryClone ::= @[<namespace>.]<repository_clone>/<path>
Parâmetros obrigatórios¶
Para uma área de preparação¶
internalStage | externalStageEspecifica 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¶
repositoryCloneEspecifica 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/pathAo 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_nameListe arquivos da ramificação especificada.
tags/tag_nameListe arquivos da tag especificada.
commits/commit_hashListe 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
pathespecificado 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;
Liste todos os arquivos no caminho path1 do estágio nomeado mystage:
LIST @mystage/path1;
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.*';
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.*';
Use a forma abreviada do comando para listar todos os arquivos no estágio para o usuário atual:
LS @~;
Para um clone do repositório Git¶
Para exemplos, consulte Ver uma lista de arquivos de repositório.