ALTER ICEBERG TABLE … CONVERT TO MANAGED¶
외부 Iceberg 카탈로그를 사용하는 Apache Iceberg™ 테이블 을 Snowflake를 카탈로그로 사용하는 테이블(Snowflake 관리 Iceberg 테이블)로 변환합니다.
변환된 테이블은 읽기 및 쓰기 작업을 모두 지원하며 Snowflake는 테이블에 대해 압축과 같은 모든 수명 주기 유지 관리를 처리합니다. 자세한 내용은 테이블 변환 전과 후 섹션을 참조하십시오.
구문¶
ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> CONVERT TO MANAGED
[ BASE_LOCATION = '<directory_for_table_files>' ]
[ STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED } ]
매개 변수¶
table_name
변환할 테이블의 식별자입니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
[ BASE_LOCATION = 'directory_for_table_files' ]
Snowflake가 테이블에 대한 데이터 및 메타데이터 파일을 쓸 수 있는 디렉터리의 경로입니다. 테이블의
EXTERNAL_VOLUME
위치에서 상대 경로를 지정합니다. 자세한 내용은 데이터 및 메타데이터 디렉터리 섹션을 참조하십시오.원래 CREATE ICEBERG TABLE 문이
BASE_LOCATION
을 허용하거나 포함하지 않은 경우 이 속성의 값을 지정해야 합니다.테이블을 변환한 후에는 이 디렉터리를 변경할 수 없습니다.
STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED }
테이블에 대한 저장소 직렬화 정책을 지정합니다. 변환 중에 지정하지 않으면 테이블은 스키마, 데이터베이스 또는 계정 수준에서 설정된 값을 상속합니다. 어느 수준에도 값이 지정되지 않으면 테이블은 기본값을 사용합니다.
테이블을 변환한 후에는 이 매개 변수의 값을 변경할 수 없습니다.
COMPATIBLE
: Snowflake는 서드 파티 컴퓨팅 엔진과의 상호 운용성을 보장하는 인코딩 및 압축을 수행합니다.OPTIMIZED
: Snowflake는 Snowflake 내에서 최상의 테이블 성능을 보장하는 인코딩 및 압축을 수행합니다.
기본값:
OPTIMIZED
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
OWNERSHIP |
Iceberg 테이블 |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
USAGE |
외부 볼륨 |
|
USAGE |
카탈로그 통합 |
스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
테이블 소유자(즉, 테이블에 대한 OWNERSHIP 권한을 가진 역할) 이상만이 명령을 실행할 수 있습니다.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
다음 예에서는 ALTER ICEBERG TABLE … CONVERT TO MANAGED 문을 사용하여 Snowflake에서 관리하지 않는 테이블을 Snowflake를 Iceberg 카탈로그로 사용하는 테이블로 변환합니다.
ALTER ICEBERG TABLE myTable CONVERT TO MANAGED
BASE_LOCATION = 'my/relative/path/from/external_volume';