Consulta de tabelas de diretório¶
Este tópico aborda como consultar uma tabela de diretório para recuperar uma lista de todos os arquivos em um estágio com metadados, como o URL de arquivo Snowflake, para cada arquivo.
Sintaxe para consultar uma tabela de diretório:
SELECT * FROM DIRECTORY( @<stage_name> )
Onde:
stage_name
Nome de um estágio que tem uma tabela de diretório ativada.
Para obter mais informações sobre SELECT como uma instrução e as outras cláusulas dentro da instrução, consulte Sintaxe de consulta na Referência de comandos SQL Snowflake.
Saída¶
A saída de uma consulta de tabela de diretório pode incluir as seguintes colunas:
Coluna
Tipo de dados
Descrição
RELATIVE_PATH
TEXT
Caminho para os arquivos a serem acessados usando o URL do arquivo.
SIZE
NUMBER
Tamanho do arquivo (em bytes).
LAST_MODIFIED
TIMESTAMP_LTZ
Carimbo de data/hora em que o arquivo foi atualizado pela última vez no estágio.
MD5
HEX
Soma de verificação MD5 para o arquivo.
ETAG
HEX
Cabeçalho ETag para o arquivo.
FILE_URL
TEXT
URL do arquivo Snowflake para o arquivo.
O URL do arquivo tem o seguinte formato:
https://<account_identifier>/api/files/<db_name>.<schema_name>.<stage_name>/<relative_path>Onde:
account_identifier
Nome do host da conta Snowflake para seu estágio. O nome do host começa com um localizador de conta (fornecido pelo Snowflake) e termina com o domínio Snowflake (
snowflakecomputing.com
):
account_locator.snowflakecomputing.com
Para obter mais detalhes, consulte Identificadores de conta.
Nota
Para contas Business Critical, um segmento
privatelink
é anexado ao URL logo antes desnowflakecomputing.com
(privatelink.snowflakecomputing.com
), mesmo se a conectividade privada ao serviço Snowflake são estiver habilitado para sua conta.db_name
Nome do banco de dados que contém o estágio em que seus arquivos estão localizados.
schema_name
Nome do esquema que contém o estágio em que seus arquivos estão localizados.
stage_name
Nome do estágio em que seus arquivos estão localizados.
relative_path
Caminho para os arquivos a serem acessados usando o URL do arquivo.
Notas de uso¶
Se os arquivos baixados de um estágio interno estiverem corrompidos, verifique com o criador do estágio se
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
está definido para o estágio.
Exemplos¶
Este exemplo recupera todas as colunas de metadados em uma tabela de diretório para um estágio chamado mystage
:
SELECT * FROM DIRECTORY(@mystage);
Este exemplo recupera os valores da coluna FILE_URL de uma tabela de diretório para arquivos com tamanho superior a 100 K bytes:
SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE SIZE > 100000;
Este exemplo recupera os valores da coluna FILE_URL de uma tabela de diretório para arquivos de valores separados por vírgula:
SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE RELATIVE_PATH LIKE '%.csv';
Criação de uma exibição para dados não estruturados usando uma tabela de diretório¶
Você pode unir uma tabela de diretório a outras tabelas Snowflake para produzir uma exibição de dados não estruturados que combine os URLs de arquivo com metadados sobre os arquivos.
O diagrama a seguir ilustra como é possível usar um estágio com uma tabela de diretório ativada juntamente com uma tabela de dados separada para criar uma exibição abrangente para arquivos não estruturados em um estágio.
Exemplo: Criação de uma exibição de arquivos PDF e seus dados
O exemplo a seguir cria uma exibição chamada reports_information
unindo uma tabela de diretório em um estágio chamado my_pdf_stage
com uma tabela chamada report_metadata
usando a chave file_url
. O estágio contém relatórios de PDF, enquanto a tabela report_metadata
contém informações estruturadas sobre cada relatório de PDF, como author
e publish_date
. A exibição resultante fornece uma maneira de obter informações sobre PDFs não estruturado e seus metadados estruturados relacionados.
CREATE VIEW reports_information AS
SELECT
file_url as report_link,
author,
publish_date,
approved_date,
geography,
num_of_pages
FROM directory(@my_pdf_stage) s
JOIN report_metadata m
ON s.file_url = m.file_url