SYSTEM$VERIFY_EXTERNAL_VOLUME
SYSTEM$VERIFY_EXTERNAL_VOLUME
SYSTEM$VERIFY_EXTERNAL_VOLUME는 지정한 외부 볼륨(external volume)의 구성을 검증하는 시스템 함수예요. 쓰기 접근이 가능한 외부 볼륨의 경우, Snowflake는 구성을 검증하기 위해 다음 추가 작업을 시도해요: 테스트 파일 쓰기, 테스트 파일 읽기, 스토리지 위치의 파일 목록 나열, 테스트 파일 삭제.
본문
카테고리: System 함수 (System Information)
구문 (Syntax)
SYSTEM$VERIFY_EXTERNAL_VOLUME('<external_volume_name>')
인자 (Arguments)
<external_volume_name> — 검증할 외부 볼륨의 이름이에요. 식별자에 공백이나 특수 문자가 있으면 전체 문자열을 큰따옴표로 감싸야 해요. 큰따옴표로 감싼 식별자는 대소문자를 구분해요.
반환값 (Returns)
이 함수는 아래에 설명된 속성을 가진 JSON 객체를 반환해요:
| 속성 | 설명 |
|---|---|
| success | 검증 테스트의 상태. 모든 작업이 끝나면 TRUE, 어떤 작업이 예상대로 끝나지 않으면 FALSE를 반환해요. |
| storageLocationSelectionResult | 외부 볼륨에 대해 활성 스토리지 위치를 선택한 결과. Snowflake가 활성 위치를 성공적으로 선택할 수 있으면 TRUE, 아니면 FALSE. |
| storageLocationName | 활성 스토리지 위치의 이름. |
| servicePrincipalProperties | 활성 스토리지 위치의 클라우드 제공자를 위한 Snowflake 서비스 주체의 속성. |
| location | 활성 스토리지 위치의 BASE_URL. |
| storageAccount | Azure의 경우, 활성 스토리지 위치의 스토리지 계정. |
| region | 활성 스토리지 위치의 리전. |
| writeResult | 활성 스토리지 위치에 테스트 파일을 쓴 결과. 읽기 전용 외부 볼륨에서는 건너뜀. |
| readResult | 활성 스토리지 위치에서 테스트 파일을 읽은 결과. 읽기 전용 외부 볼륨에서는 건너뜀. |
| listResult | 활성 스토리지 위치의 내용을 나열한 결과. 읽기 전용 외부 볼륨에서는 건너뜀. |
| deleteResult | 활성 스토리지 위치에 쓴 테스트 파일을 삭제한 결과. 읽기 전용 외부 볼륨에서는 건너뜀. |
| awsRoleArnValidationResult | Amazon S3의 경우, 외부 볼륨이 사용하는 IAM 역할의 Amazon Resource Name(ARN) 검증 결과. |
| azureGetUserDelegationKeyResult | Azure의 경우, 사용자 위임 키(user delegation key)를 가져온 결과. |
결과 값 (Result values)
결과를 나타내는 반환 속성은 다음 값을 가질 수 있어요:
| 결과 값 | 설명 |
|---|---|
| PASSED | 작업이 성공했어요. |
| SKIPPED | 작업이 지정한 외부 볼륨에 적용되지 않아요. 예를 들어 읽기 전용 외부 볼륨에서는 읽기·쓰기·나열·삭제 작업이 건너뛰어져요. |
| <error_message> | 상세 오류 메시지. |
예시 출력 (Example output)
{
"success": true,
"storageLocationSelectionResult": "PASSED",
"storageLocationName": "my-azure-westus-1",
"servicePrincipalProperties": "AZURE_MULTI_TENANT_APP_NAME: powerful-azure-ad-auth-test-snowflake-app_...; AZURE_CONSENT_URL: https://login.microsoftonline.com...",
"location": "azure://myStorageAccount.blob.core.windows.net/myStorageLocation/",
"storageAccount": "myStorageAccount",
"region": "westus",
"writeResult": "PASSED",
"readResult": "PASSED",
"listResult": "PASSED",
"deleteResult": "PASSED",
"awsRoleArnValidationResult": "SKIPPED",
"azureGetUserDelegationKeyResult": "PASSED"
}
접근 제어 요구 사항 (Access control requirements)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 가져야 해요:
| 권한 | 객체 | 주석 |
|---|---|---|
| OWNERSHIP | 외부 볼륨 |
지정된 권한 집합으로 커스텀 역할을 만드는 방법은 커스텀 역할 만들기를 참고해요.
보호 가능한 객체(securable objects)에 대한 SQL 작업 시 역할과 권한 부여에 관한 일반 정보는 접근 제어 개요를 참고해요.
사용 시 유의사항 (Usage notes)
- Amazon S3 외부 볼륨의 경우: 다음 오류를 받으면 계정 관리자가 Snowflake 배포 리전에서 AWS STS를 활성화해야 해요. 자세한 내용은 AWS 문서의 Manage AWS STS in an AWS Region을 참고해요.
Error assuming AWS_ROLE:
STS is not activated in this region for account:<external volume id>. Your account administrator can activate STS in this region using the IAM Console.
예시 (Examples)
my_s3_external_volume이라는 외부 볼륨을 검증해요:
SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');