TO_FILE

파일 위치 또는 메타데이터에서 FILE 타입의 값을 생성합니다.

구문

다음 중 하나를 사용하십시오.

TO_FILE( <stage_name>, <relative_path> )

TO_FILE( <file_url> )

TO_FILE( <metadata> )

인자

stage_name

파일이 위치한 스테이지의 이름으로, '@stage_name' 형식의 문자열입니다.

relative_path

stage_name 에서 문자열로 지정한 스테이지에 있는 파일의 경로입니다.

file_url

유효한 스테이지 또는 범위가 지정된 파일 URL 을 문자열로 입력합니다.

metadata

필수적인 FILE 메타데이터가 포함된 OBJECT 입니다. FILE 에는 CONTENT_TYPE, SIZE, ETAG 및 LAST_MODIFIED 필드가 있어야 합니다. 또한 다음 방법 중 하나로 파일의 위치를 지정해야 합니다.

  • STAGE 및 RELATIVE_PATH 모두

  • STAGE_FILE_URL

  • SCOPED_FILE_URL

반환

스테이징된 파일을 나타내는 FILE.

사용법 노트

다음과 같은 경우에 오류를 발생시킵니다.

  • 제공된 URL 이 유효하지 않은 경우.

  • 사용자가 액세스할 권한이 없는 스테이지에 파일이 있는 경우.

  • 제공된 메타데이터에 필수적인 FILE 필드가 포함되지 않은 경우.

스테이징된 파일 URL 과 함께 TO_FILE 함수를 간단하게 사용합니다.

SELECT TO_FILE(BUILD_STAGE_FILE_URL('@mystage', 'image.png'));
Copy
+--------------------------------------------------------------------------------------------------------------------+
| TO_FILE(BUILD_STAGE_FILE_URL('@MYSTAGE', 'IMAGE.PNG'))                                                             |
|--------------------------------------------------------------------------------------------------------------------|
| {                                                                                                                  |
|   "CONTENT_TYPE": "image/png",                                                                                     |
|   "ETAG": "..."                                                                                                    |
|   "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT",                                                                |
|   "RELATIVE_PATH": "image.png",                                                                                    |
|   "SIZE": 105859,                                                                                                  |
|   "STAGE": "@MYDB.MYSCHEMA.MYSTAGE",                                                                               |
|   "STAGE_FILE_URL": "https://snowflake.account.snowflakecomputing.com/api/files/MYDB/MYSCHEMA/MYSTAGE/image.png"   |
| }                                                                                                                  |
+--------------------------------------------------------------------------------------------------------------------+

또는 스테이지의 디렉터리 테이블에서 FILE_URL 을 사용합니다.

SELECT TO_FILE(file_url) FROM DIRECTORY(@mystage) LIMIT 1;
Copy
+--------------------------------------------------------------------------------------------------------------------+
| TO_FILE(FILE_URL)                                                                                                  |
|--------------------------------------------------------------------------------------------------------------------|
| {                                                                                                                  |
|   "CONTENT_TYPE": "image/png",                                                                                     |
|   "ETAG": "..."                                                                                                    |
|   "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT",                                                                |
|   "RELATIVE_PATH": "image.png",                                                                                    |
|   "SIZE": 105859,                                                                                                  |
|   "STAGE": "@MYDB.MYSCHEMA.MYSTAGE",                                                                               |
|   "STAGE_FILE_URL": "https://snowflake.account.snowflakecomputing.com/api/files/MYDB/MYSCHEMA/MYSTAGE/image.png"   |
| }                                                                                                                  |
+--------------------------------------------------------------------------------------------------------------------+

이 예제에서는 TO_FILE 함수를 범위가 지정된 파일 URL 과 함께 직접 사용합니다.

SELECT TO_FILE(`https://snowflake.account.snowflakecomputing.com/api/files/01ba4df2-0100-0001-0000-00040002e2b6/299017/Y6JShH6KjV`);

+------------------------------------------------------------------------------------------------------------------------------------------------+
| TO_FILE(https://snowflake.account.snowflakecomputing.com/api/files/01ba4df2-0100-0001-0000-00040002e2b6/299017/Y6JShH6KjV                      |
|------------------------------------------------------------------------------------------------------------------------------------------------|
| {                                                                                                                                              |
|   "CONTENT_TYPE": "image/png",                                                                                                                 |
|   "ETAG": "..."                                                                                                                                |
|   "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT",                                                                                            |
|   "SCOPED_FILE_URL": "https://snowflake.account.snowflakecomputing.com/api/files/01ba4df2-0100-0001-0000-00040002e2b6/299017/Y6JShH6KjV",      |
|   "SIZE": 105859                                                                                                                               |
| }                                                                                                                                              |
+-----------------------------------------------------------------------------------------------------------------------------------------------+|
Copy

다음은 필수 메타데이터가 포함된 오브젝트에서FILE 을 구성하는 예제입니다.

SELECT TO_FILE(OBJECT_CONSTRUCT('STAGE', 'MYSTAGE', 'RELATIVE_PATH', 'image.png', 'ETAG', '<ETAG value>',
  'LAST_MODIFIED', 'Wed, 11 Dec 2024 20:24:00 GMT', 'SIZE', 105859, 'CONTENT_TYPE', 'image/png'));

+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| TO_FILE(OBJECT_CONSTRUCT('STAGE', 'MYSTAGE', 'RELATIVE_PATH', 'IMAGE.PNG', 'ETAG', '<ETAG value>', 'LAST_MODIFIED', 'WED, 11 DEC 2024 20:24:00 GMT', 'SIZE', 105859, 'CONTENT_TYPE', 'IMAGE/PNG')) |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| {                                                                                                                                                                                                  |
|   "CONTENT_TYPE": "image/png",                                                                                                                                                                     |
|   "ETAG": "<ETAG value>>"                                                                                                                                                                          |
|   "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT",                                                                                                                                                |
|   "RELATIVE_PATH": "image.png",                                                                                                                                                                    |
|   "SIZE": 105859,                                                                                                                                                                                  |
|   "STAGE": "@MYDB.MYSCHEMA.MYSTAGE"                                                                                                                                                                |
| }                                                                                                                                                                                                  |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Copy

알려진 제한 사항

  • TO_FILE 을 INSERT INTO TABLE <t> VALUES 절에서 사용할 수 없습니다. 대신 INSERT INTO TABLE <t> SELECT 를 사용합니다.

  • TO_FILE 은 현재 @”MYsTAgE”와 같이 스테이징 이름이 큰따옴표로 묶인 스테이지에서는 작동하지 않습니다.