REMOVE¶
Remove arquivos de um estágio externo (armazenamento em nuvem externo) ou interno (ou seja, Snowflake).
Para os estágios internos, são suportados os seguintes tipos de estágios:
Estágio interno nomeado
Estágio para uma tabela específica
Estágio do usuário atual
REMOVE pode ser abreviado como RM.
- Consulte também:
Sintaxe¶
REMOVE { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]
Onde:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]externalStage ::= @[<namespace>.]<ext_stage_name>[/<path>]
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 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.
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"
).
Parâmetros opcionais¶
PATTERN = 'regex_pattern'
Especifica um padrão de expressão regular para a filtragem de arquivos a serem removidos. 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¶
Se você estiver carregando dados de um arquivo em um estágio, não remova os arquivos preparados até que os dados tenham sido carregados com sucesso. Para verificar se os dados foram carregados com sucesso, use o comando COPY_HISTORY. Verifique a coluna
STATUS
para determinar se os dados do arquivo foram carregados. Observe que se o status forLoad in progress
, a remoção do arquivo preparado pode resultar em carregamentos parciais e perda de dados.A remoção de arquivos de um estágio externo requer a concessão da seguinte função ou permissão ao Snowflake em sua conta de armazenamento em nuvem:
Serviço de armazenamento em nuvem
Função ou permissão
Instruções
Amazon S3
s3:DeleteObject
Google Cloud Storage
storage.objects.delete
Microsoft Azure (Armazenamento de blobs)
Storage Blob Data Contributor
Configuração de um contêiner Azure para carregamento de dados
O comando remove todos os diretórios e arquivos que correspondem a um caminho especificado. Por exemplo, a seguinte instrução corresponderia a qualquer um dos seguintes objetos no estágio
mytable
da tabela:myobject.csv.gz
(arquivo)myobject
(diretório)myobject_new
(diretório)
rm @%mytable/myobject;
Para remover todos os arquivos de um diretório específico, inclua uma barra (
/
) no final do caminho. Por exemplo:rm @%mytable/myobject/;
Não remova o diretório
worksheet_data
no estágio do usuário do Snowflake. A Classic Console armazena metadados para planilhas de trabalho na guia Worksheets neste diretório. A remoção do diretório remove o acesso às planilhas, que não pode ser restaurado.Esta precaução não se aplica a planilhas em Snowsight, que são armazenadas em outro lugar e não são propensas à exclusão acidental.
Se uma instrução REMOVE for interrompida antes de completar a execução, quaisquer arquivos já removidos pela instrução não serão restaurados.
Exemplos¶
Remover todos os arquivos do caminho path1/subpath2
em um estágio interno chamado mystage
:
REMOVE @mystage/path1/subpath2;
Remover todos os arquivos do estágio para a tabela orders
:
REMOVE @%orders;
Use a forma abreviada do comando para remover arquivos cujos nomes correspondem ao padrão *jun*
do estágio para o usuário atual:
RM @~ pattern='.*jun.*';