- 카테고리:
BUILD_STAGE_FILE_URL¶
스테이지 이름과 상대 파일 경로를 입력으로 사용하여 스테이징된 파일에 대한 Snowflake 파일 URL 을 생성합니다. 파일 URL을 통해 지정된 파일에 장기간 액세스할 수 있습니다. 즉, 파일 URL이 만료되지 않습니다.
쿼리, 사용자 정의 함수(UDF) 또는 저장 프로시저에서 이 SQL 함수를 호출합니다.
파일 지원을 위해 REST API에 요청의 파일 URL을 전송하여 스테이지의 파일에 액세스합니다. 파일에 액세스하기 위해 사용자가 파일 URL을 REST API로 보내면 Snowflake는 다음 작업을 수행합니다.
- 사용자를 인증합니다. 
- 역할에 파일이 포함된 스테이지에 대한 충분한 권한이 있는지 확인합니다. 
- 사용자를 클라우드 저장소 서비스의 스테이징된 파일로 리디렉션합니다. 
구문¶
BUILD_STAGE_FILE_URL( @<stage_name> , '<relative_file_path>' )
인자¶
- stage_name
- 파일이 저장된 내부 또는 외부 스테이지의 이름입니다. - 참고 - 스테이지 이름에 공백이나 특수 문자가 포함된 경우 작은따옴표로 묶어야 합니다(예: - "my stage"라는 스테이지의 경우- '@"my stage"').
- relative_file_path
- 스테이지에서의 위치와 관련된 파일의 경로 및 파일 이름입니다. 
반환¶
이 함수는 다음 형식의 파일 URL을 반환합니다.
https://<account_identifier>/api/files/<db_name>/<schema_name>/<stage_name>/<relative_path>
여기서:
- 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');
https://my_account.snowflakecomputing.com/api/files/MY_DB/PUBLIC/IMAGES_STAGE/us/yosemite/half_dome.jpg