Categorias:

Funções de arquivo

BUILD_STAGE_FILE_URL

Gera um URL do arquivo Snowflake para um arquivo preparado usando o nome de estágio e o caminho relativo do arquivo como entradas. Um URL de arquivo permite o acesso prolongado a um arquivo especificado. Ou seja, o URL do arquivo não expira.

Chame esta função SQL em uma consulta, função definida pelo usuário (UDF) ou procedimento armazenado.

Acesse os arquivos em um estágio enviando o URL do arquivo em uma solicitação ao REST API para suporte de arquivo. Quando os usuários enviam um URL de arquivo para o REST API para acessar arquivos, o Snowflake executa as seguintes ações:

  1. Autenticar o usuário.

  2. Verifique se a função tem privilégios suficientes no estágio que contém o arquivo.

  3. Redirecione o usuário para o arquivo preparado no serviço de armazenamento em nuvem.

Sintaxe

BUILD_STAGE_FILE_URL( @<stage_name> , '<relative_file_path>' )
Copy

Argumentos

stage_name

Nome do estágio interno ou externo em que o arquivo está armazenado.

Nota

Se o nome do estágio incluir espaços ou caracteres especiais, ele deve ser colocado entre aspas simples (por exemplo, '@"my stage"' para um estágio chamado "my stage").

relative_file_path

Caminho e nome do arquivo em relação ao seu local no estágio.

Retornos

A função retorna um URL do arquivo no seguinte formato:

https://<account_identifier>/api/files/<db_name>/<schema_name>/<stage_name>/<relative_path>
Copy

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 de snowflakecomputing.com (privatelink.snowflakecomputing.com), mesmo se a conectividade privada ao serviço Snowflake são estiver habilitado para sua conta.

Importante

Atualmente, a função retorna o identificador da conta na forma de organization_name-account_name. Quando um URL de arquivo é usado como entrada para uma solicitação GET, o ponto de extremidade do API retorna um erro.

Para resolver o erro, você deve converter manualmente o identificador da conta para a forma aplicável à sua conta:

account_locator.region_id ou

account_locator.region_id.cloud

Para obter mais informações sobre estas formas, consulte Formato 2 (legado): Localizador de conta em uma região.

Em um próximo lançamento, a função retornará os URLs do arquivo na forma correta.

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

  • As permissões exigidas para chamar esta função SQL diferem dependendo de como ela é chamada:

    Operação SQL

    Permissões exigidas

    Consulta

    USAGE (estágio externo) ou READ (estágio interno)

    Procedimento armazenado

    O proprietário do procedimento armazenado (ou seja, a função com o privilégio OWNERSHIP no procedimento armazenado) deve ter o privilégio de estágio: USAGE (estágio externo) ou READ (estágio interno).

    Uma função que consulta o procedimento armazenado exige apenas o privilégio USAGE no procedimento armazenado.

    UDF

    O proprietário do UDF (ou seja, a função com o privilégio OWNERSHIP no UDF) deve ter o privilégio de estágio: USAGE (estágio externo) ou READ (estágio interno).

    Uma função que consulta o UDF exige apenas o privilégio USAGE no UDF.

  • Um cliente HTTP que envia um URL de arquivo para o REST API deve ser configurado para permitir redirecionamentos.

  • Quando um URL de arquivo é acessado, o histórico da consulta mostra que a função interna GET_STAGE_FILE foi chamada.

  • 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

Recuperar um URL de arquivo para um arquivo de imagem em formato bitmap em um estágio externo:

SELECT BUILD_STAGE_FILE_URL(@images_stage,'/us/yosemite/half_dome.jpg');
Copy
https://my_account.snowflakecomputing.com/api/files/MY_DB/PUBLIC/IMAGES_STAGE/us/yosemite/half_dome.jpg
Copy