SYSTEM$VERIFY_EXTERNAL_VOLUME

SYSTEM$VERIFY_EXTERNAL_VOLUME

SYSTEM$VERIFY_EXTERNAL_VOLUME는 지정한 외부 볼륨(external volume)의 구성을 검증하는 시스템 함수예요. 쓰기 접근이 가능한 외부 볼륨의 경우, Snowflake는 구성을 검증하기 위해 다음 추가 작업을 시도해요: 테스트 파일 쓰기, 테스트 파일 읽기, 스토리지 위치의 파일 목록 나열, 테스트 파일 삭제.

출처: Snowflake SQL Reference

본문

카테고리: 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');

더 알아보기