CREATE ICEBERG TABLE
CREATE ICEBERG TABLE (AWS Glue as the Iceberg catalog)
현재/지정한 스키마에 AWS Glue Data Catalog에 등록된 Iceberg 테이블을 사용해 Apache Iceberg™ 테이블을 만들거나 교체하는 명령이에요. 이 유형의 Iceberg 테이블은 Snowflake를 AWS Glue에 연결하는 카탈로그 인티그레이션(catalog integration)이 필요해요.
출처: 문서
본문
AWS Glue와 통합하려면 추가 Iceberg 테이블 기능(카탈로그 제공 자격 증명 등)을 지원하는 AWS Glue Iceberg REST 사용을 권장해요. 관련 지침은 CREATE CATALOG INTEGRATION (Apache Iceberg™ REST)과 CREATE ICEBERG TABLE (Iceberg REST catalog)을 참조하세요.
테이블을 만들기 전에 외부 볼륨과 카탈로그 인티그레이션을 만들어야 해요.
구문 (Syntax)
CREATE [ OR REPLACE ] ICEBERG TABLE [ IF NOT EXISTS ] <table_name>
[ EXTERNAL_VOLUME = '<external_volume_name>' ]
[ CATALOG = '<catalog_integration_name>' ]
CATALOG_TABLE_NAME = '<catalog_table_name>'
[ CATALOG_NAMESPACE = '<catalog_namespace>' ]
[ REPLACE_INVALID_CHARACTERS = { TRUE | FALSE } ]
[ AUTO_REFRESH = { TRUE | FALSE } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ WITH CONTACT ( <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ] ) ]
필수 매개변수
<table_name>: 테이블의 식별자예요. 스키마 내에서 고유해야 해요.CATALOG_TABLE_NAME = 'catalog_table_name': AWS Glue Data Catalog가 인식하는 테이블 이름을 지정해요. 테이블을 만든 후에는 변경할 수 없어요.
선택 매개변수
EXTERNAL_VOLUME = 'external_volume_name': Iceberg 테이블이 메타데이터 파일과 데이터를 Parquet 형식으로 저장하는 외부 볼륨의 식별자를 지정해요. 지정하지 않으면 기본값을 사용해요.CATALOG = 'catalog_integration_name': 이 테이블의 카탈로그 인티그레이션 이름을 지정해요. AWS Glue용으로 구성한 인티그레이션을 지정해야 해요. 지정하지 않으면 기본값을 사용해요.CATALOG_NAMESPACE = 'catalog_namespace': AWS Glue Data Catalog 소스의 네임스페이스(예:my_glue_database)를 선택적으로 지정해요. 지정하지 않으면 카탈로그 인티그레이션과 연결된 기본 카탈로그 네임스페이스를 사용해요. 인티그레이션에 기본 네임스페이스가 없으면 테이블에 네임스페이스를 지정해야 해요.REPLACE_INVALID_CHARACTERS = { TRUE | FALSE }: 쿼리 결과에서 잘못된 UTF-8 문자를 유니코드 대체 문자(�)로 바꿀지 지정해요. 외부 Iceberg 카탈로그 테이블에만 설정할 수 있어요. 기본값:FALSE.AUTO_REFRESH = { TRUE | FALSE }: Snowflake가 테이블과 연관된 외부 Iceberg 카탈로그를 메타데이터 업데이트에 대해 자동으로 폴링할지 지정해요. 카탈로그 인티그레이션에REFRESH_INTERVAL_SECONDS값이 없으면 기본 30초 간격을 사용해요. 기본값: FALSE. (INFER_SCHEMA와 병용은 지원되지 않아요.)COMMENT = 'string_literal',TAG,WITH CONTACT도 지원돼요.
접근 제어 요구 사항
| 권한 | 객체 | 참고 |
|---|---|---|
| CREATE ICEBERG TABLE | 스키마 | |
| CREATE EXTERNAL VOLUME | 계정 | 새 외부 볼륨 생성 시 필요. |
| USAGE | 외부 볼륨 | 기존 외부 볼륨 참조 시 필요. |
| CREATE INTEGRATION | 계정 | 새 카탈로그 인티그레이션 생성 시 필요. |
| USAGE | 카탈로그 인티그레이션 | 기존 카탈로그 인티그레이션 참조 시 필요. |
사용법 참고 사항
- 외부 볼륨/카탈로그 인티그레이션을 큰따옴표로 감싼 식별자로 만들었다면
CREATE ICEBERG TABLE문에서도 그대로 지정해야 해요. - 같은 스키마에는 같은 이름의 테이블과 뷰가 공존할 수 없어요. 같은 이름의 뷰/테이블이 이미 있으면 오류가 반환되고 테이블이 생성되지 않아요 (
OR REPLACE키워드 제외). CREATE OR REPLACE <object>문은 원자적이에요.
더 알아보기 (Learn more)
- ALTER ICEBERG TABLE
- DROP ICEBERG TABLE
- SHOW ICEBERG TABLES
- DESCRIBE ICEBERG TABLE
- UNDROP ICEBERG TABLE
- 외부 볼륨 구성, AWS Glue용 카탈로그 인티그레이션 구성, 자동 새로 고침