카테고리:

시스템 함수 (시스템 정보)

SYSTEM$VALIDATE_STORAGE_INTEGRATION

지정된 저장소 통합에 대한 구성의 유효성을 검사합니다. 이 함수는 경로로 지정한 저장소 위치에 파일을 쓰거나 읽거나 나열하거나 삭제하기 위해 저장소 통합을 사용하려고 합니다.

저장소 통합 구성에 대한 자세한 내용은 다음을 참조하십시오.

참고 항목:

CREATE STORAGE INTEGRATION, ALTER STORAGE INTEGRATION

구문

SYSTEM$VALIDATE_STORAGE_INTEGRATION( '<storage_integration_name>', '<storage_path>', '<test_file_name>', '<validate_action>' )
Copy

인자

storage_integration_name

테스트할 저장소 통합의 이름입니다.

저장소 통합 이름은 대/소문자를 구분합니다.

storage_path

유효성 검사를 수행할 저장 위치의 전체 경로입니다. 저장소 통합을 위해 저장소 경로는 STORAGE_ALLOWED_LOCATIONS 목록에서 URL이어야 합니다.

Amazon S3

's3://bucket/path/'

  • s3 접두사는 공용 AWS 리전의 S3 저장소를 나타냅니다. s3gov 접두사는 정부 리전 의 S3 저장소를 나타냅니다.

  • bucket 은 데이터 파일을 저장하는 S3 버킷의 이름입니다.

  • path 는 버킷의 선택적 경로 또는 디렉터리입니다.

Google Cloud Storage

'gcs://bucket/path/'

  • bucket 은 데이터 파일을 저장하는 GCS 버킷의 이름입니다.

  • path 는 버킷의 선택적 경로 또는 디렉터리입니다.

Microsoft Azure

'azure://account.blob.core.windows.net/container/path/'

  • account 는 Azure 저장소 계정의 이름입니다.

  • container 는 데이터 파일을 저장하는 Azure Storage 컨테이너의 이름입니다.

  • path 는 버킷의 선택적 경로 또는 디렉터리입니다.

test_file_name

저장소 통합 유효성 검사에 사용할 파일의 이름입니다.

validate_action

수행할 유효성 검사 작업입니다.

값:
  • read - Snowflake가 저장 위치에서 읽을 수 있는지 확인합니다. 파일이 존재하지 않으면 이 작업은 실패합니다.

  • write - Snowflake가 저장 위치에 쓸 수 있는지 확인합니다. 파일이 이미 있는 경우 이 작업은 실패합니다.

  • list - Snowflake가 저장 위치에 있는 파일을 나열할 수 있는지 유효성을 검사합니다.

  • delete - Snowflake가 저장 위치에서 파일을 삭제할 수 있는지 확인합니다.

  • all - 저장 위치에서 가능한 모든 작업의 유효성을 검사합니다.

반환

이 함수는 아래에 설명된 속성이 있는 JSON 오브젝트를 반환합니다.

속성

설명

status

유효성 검사 테스트의 상태입니다. 모든 작업이 성공적으로 완료되면 success 상태를 반환하고 작업이 예상대로 완료되지 않으면 failure 를 반환합니다.

actions

요청된 유효성 검사 작업(READ, DELETE, LIST, WRITE) 및 상태를 포함하는 오브젝트로 구성된 배열입니다.

{
  "status" : "success",
  "actions" : {
    "READ" : {
      "status" : "success"
    },
    "DELETE" : {
      "status" : "success"
    },
    "LIST" : {
      "status" : "success"
    },
    "WRITE" : {
      "status" : "success"
    }
  }
}
Copy

다음 예제에서는 모든 유효성 검사 작업에 대한 저장소 통합 example_integration 의 구성에 대한 유효성을 검사합니다. 예제는 성공 결과를 JSON으로 반환합니다.

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    's3://example_bucket/test_path/'',
    'validate_all.txt', 'all');
Copy

출력:

+----------------------------+
|           RESULT           |
+----------------------------+
| {                          |
|   "status" : "success",    |
|   "actions" : {            |
|     "READ" : {             |
|       "status" : "success" |
|     },                     |
|     "DELETE" : {           |
|       "status" : "success" |
|     },                     |
|     "LIST" : {             |
|       "status" : "success" |
|     },                     |
|     "WRITE" : {            |
|       "status" : "success" |
|     }                      |
|   }                        |
| }                          |
+----------------------------+

다음 예제는 저장소 통합에 read 권한이 없는 경우의 결과를 보여줍니다.

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    'gcs://example_bucket/test_path/'',
    'read_fail.txt', 'all');
Copy

출력:

+----------------------------------------------------------------------------------------------------------------+
|                                                     RESULT                                                     |
+----------------------------------------------------------------------------------------------------------------+
| {                                                                                                              |
|   "status" : "failure",                                                                                        |
|   "actions" : {                                                                                                |
|     "READ" : {                                                                                                 |
|       "message" : "Access Denied (Status Code: 403; Error Code: AccessDenied)",                                |
|       "status" : "failure"                                                                                     |
|     },                                                                                                         |
|     "DELETE" : {                                                                                               |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "LIST" : {                                                                                                 |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "WRITE" : {                                                                                                |
|       "status" : "success"                                                                                     |
|     }                                                                                                          |
|   },                                                                                                           |
|   "message" : "Some of the integration checks failed. Check the Snowflake documentation for more information." |
| }                                                                                                              |
+----------------------------------------------------------------------------------------------------------------+