카테고리:

파일 함수

BUILD_STAGE_FILE_URL

스테이지 이름과 상대 파일 경로를 입력으로 사용하여 스테이징된 파일에 대한 Snowflake 파일 URL 을 생성합니다. 파일 URL을 통해 지정된 파일에 장기간 액세스할 수 있습니다. 즉, 파일 URL이 만료되지 않습니다.

쿼리, 사용자 정의 함수(UDF) 또는 저장 프로시저에서 이 SQL 함수를 호출합니다.

파일 지원을 위해 REST API에 요청의 파일 URL을 전송하여 스테이지의 파일에 액세스합니다. 파일에 액세스하기 위해 사용자가 파일 URL을 REST API로 보내면 Snowflake는 다음 작업을 수행합니다.

  1. 사용자를 인증합니다.

  2. 역할에 파일이 포함된 스테이지에 대한 충분한 권한이 있는지 확인합니다.

  3. 사용자를 클라우드 저장소 서비스의 스테이징된 파일로 리디렉션합니다.

구문

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

인자

stage_name

파일이 저장된 내부 또는 외부 스테이지의 이름입니다.

참고

스테이지 이름에 공백이나 특수 문자가 포함된 경우 작은따옴표로 묶어야 합니다(예: "my stage" 라는 스테이지의 경우 '@"my stage"').

relative_file_path

스테이지에서의 위치와 관련된 파일의 경로 및 파일 이름입니다.

반환

이 함수는 다음 형식의 파일 URL을 반환합니다.

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

여기서:

account_identifier

스테이지에 대한 Snowflake 계정의 호스트 이름. 호스트 이름은 (Snowflake에서 제공하는) 계정 로케이터로 시작하여 Snowflake 도메인(snowflakecomputing.com)으로 끝납니다.

account_locator.snowflakecomputing.com

자세한 내용은 계정 식별자 섹션을 참조하십시오.

참고

Business Critical 계정의 경우 계정에서 Snowflake 서비스에 비공개 연결이 활성화되지 않은 경우에도 privatelink 세그먼트가 snowflakecomputing.com (privatelink.snowflakecomputing.com) 직전의 URL 앞에 추가됩니다.

중요

현재, 이 함수는 계정 식별자를 organization_name-account_name 형식으로 반환합니다. 파일 URL이 GET 요청에 대한 입력으로 사용되면 API 엔드포인트가 오류를 반환합니다.

오류를 해결하려면 계정 식별자를 계정에 해당하는 형식으로 수동으로 변환해야 합니다.

account_locator.region_id 또는

account_locator.region_id.cloud

이러한 형식에 대한 자세한 내용은 형식 2(레거시): 리전의 계정 로케이터 섹션을 참조하십시오.

다음 릴리스에서 함수는 올바른 형식으로 파일 URL을 반환합니다.

db_name

파일이 있는 스테이지를 포함하는 데이터베이스의 이름입니다.

schema_name

파일이 있는 스테이지를 포함하는 스키마의 이름입니다.

stage_name

파일이 있는 스테이지의 이름입니다.

relative_path

파일 URL을 사용하여 액세스할 파일의 경로.

사용법 노트

  • 이 SQL 함수를 호출하는 데 필요한 권한은 호출 방법에 따라 다릅니다.

    SQL 작업

    필요한 권한

    쿼리

    USAGE(외부 스테이지) 또는 READ(내부 스테이지)

    저장 프로시저

    저장 프로시저 소유자(즉, 저장 프로시저에 대한 OWNERSHIP 권한이 있는 역할)는 USAGE(외부 스테이지) 또는 READ(내부 스테이지) 스테이지 권한이 있어야 합니다.

    저장 프로시저를 쿼리하는 역할에는 저장 프로시저에 대한 USAGE 권한만 필요합니다.

    UDF

    UDF 소유자(즉, UDF에 대한 OWNERSHIP 권한이 있는 역할)는 스테이지 권한이 있어야 합니다. USAGE(외부 스테이지) 또는 READ(내부 스테이지).

    UDF를 쿼리하는 역할에는 UDF에 대한 USAGE 권한만 필요합니다.

  • 파일 URL을 REST API로 보내는 HTTP 클라이언트는 리디렉션을 허용하도록 구성되어야 합니다.

  • 파일 URL에 액세스하면 쿼리 내역은 내부 GET_STAGE_FILE 함수가 호출되었음을 표시합니다.

  • 내부 스테이지에서 다운로드한 파일이 손상된 경우 스테이지에 대해 ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') 가 설정된 스테이지 작성자에게 확인하십시오.

외부 스테이지에서 비트맵 형식 이미지 파일의 파일 URL을 검색합니다.

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