CREATE CATALOG INTEGRATION
CREATE CATALOG INTEGRATION (AWS Glue)
AWS Glue를 카탈로그로 사용하는 Apache Iceberg™ 테이블용 카탈로그 통합(catalog integration)을 계정에 새로 만들거나 기존 카탈로그 통합을 교체하는 명령이에요.
출처: 문서
본문
중요
AWS Glue와 통합할 때는 추가 Iceberg 테이블 기능(예: catalog-vended 자격 증명)을 지원하는 AWS Glue Iceberg REST 엔드포인트용 카탈로그 통합을 만드는 것을 권장해요. 자세한 설명은 CREATE CATALOG INTEGRATION (Apache Iceberg™ REST)을 참고하세요.
참고
AWS Glue용 카탈로그 통합을 만들 때는 Snowflake와 Glue Data Catalog 사이에 신뢰 관계를 구축하기 위한 추가 단계를 완료해야 해요. 자세한 내용은 Configure a catalog integration for AWS Glue를 참고하세요.
관련 명령: ALTER CATALOG INTEGRATION, DROP CATALOG INTEGRATION, SHOW CATALOG INTEGRATIONS, DESCRIBE CATALOG INTEGRATION
구문 (Syntax)
CREATE [ OR REPLACE ] CATALOG INTEGRATION [IF NOT EXISTS]
<name>
CATALOG_SOURCE = GLUE
TABLE_FORMAT = ICEBERG
GLUE_AWS_ROLE_ARN = '<arn-for-AWS-role-to-assume>'
GLUE_CATALOG_ID = '<glue-catalog-id>'
[ GLUE_REGION = '<AWS-region-of-the-glue-catalog>' ]
[ CATALOG_NAMESPACE = '<catalog-namespace>' ]
ENABLED = { TRUE | FALSE }
[ REFRESH_INTERVAL_SECONDS = <value> ]
[ COMMENT = '<string_literal>' ]
필수 파라미터 (Required parameters)
*name*
카탈로그 통합의 식별자(이름)를 지정하는 문자열이에요. 계정 내에서 고유해야 해요.
식별자는 영문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요(예: "My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분해요.
자세한 내용은 Identifier requirements를 참고하세요.
CATALOG_SOURCE = GLUE
통합이 AWS Glue용임을 지정해요.
TABLE_FORMAT = ICEBERG
Glue Iceberg 테이블을 지정해요.
GLUE_AWS_ROLE_ARN = '*arn-for-AWS-role-to-assume*'
가정(assume)할 AWS Identity and Access Management(IAM) 역할의 Amazon Resource Name(ARN)을 지정해요.
GLUE_CATALOG_ID = '*glue-catalog-id*'
AWS 계정의 ID를 지정해요.
ENABLED = { TRUE | FALSE }
카탈로그 통합을 Iceberg 테이블에 사용할 수 있는지 여부를 지정해요.
-
TRUE는 사용자가 이 통합을 참조하는 새 Iceberg 테이블을 만들 수 있게 해요. 이 통합을 참조하는 기존 Iceberg 테이블은 정상적으로 작동해요. -
FALSE는 사용자가 이 통합을 참조하는 새 Iceberg 테이블을 만들지 못하게 해요. 이 통합을 참조하는 기존 Iceberg 테이블은 테이블 정의의 카탈로그에 접근할 수 없어요.
값은 대소문자를 구분하지 않아요.
기본값은 TRUE예요.
선택 파라미터 (Optional parameters)
[ GLUE_REGION = '*AWS-region-of-the-glue-catalog*' ]
AWS Glue Data Catalog의 AWS 리전을 지정해요. Snowflake 계정이 AWS에 호스팅되지 않으면 이 파라미터 값을 지정해야 해요. 그렇지 않으면 기본 리전은 계정의 Snowflake 배포 리전이에요.
CATALOG_NAMESPACE = '*catalog-namespace*'
AWS Glue Data Catalog 네임스페이스(예: my_glue_database)를 지정해요. 이 통합과 연결하는 모든 Iceberg 테이블의 기본 네임스페이스예요.
-
지정하면 테이블을 만들 때 테이블 수준에서 네임스페이스를 지정해 이 값을 덮어쓸 수 있어요.
-
지정하지 않으면 테이블을 만들 때 테이블 수준에서 네임스페이스를 지정해야 해요.
REFRESH_INTERVAL_SECONDS = value
자동 새로고침(automated refresh)을 위해 외부 Iceberg 카탈로그에서 메타데이터 업데이트를 폴링하는 시도 사이에 Snowflake가 기다리는 시간(초)을 지정해요.
Delta 기반 테이블의 경우 외부 클라우드 스토리지에서 새 메타데이터를 폴링하는 시도 사이에 Snowflake가 기다리는 시간(초)을 지정해요.
값: 30~86400(포함)
기본값: 30초
COMMENT = '*string_literal*'
통합에 대한 주석을 지정하는 문자열(리터럴)이에요.
기본값: 값 없음
접근 제어 요구사항 (Access control requirements)
이 작업을 실행하는 역할(role)은 최소한 다음 권한(privileges)을 가져야 해요:
| Privilege | Object | Notes |
|---|---|---|
| CREATE INTEGRATION | Account | 기본적으로 ACCOUNTADMIN 역할만 이 권한을 가져요. 필요에 따라 다른 역할에도 부여할 수 있어요. |
특정 권한 집합으로 사용자 지정 역할을 만드는 방법은 Creating custom roles을 참고하세요.
사용 참고사항 (Usage notes)
-
기존 카탈로그 통합은 수정할 수 없어요. 대신
CREATE OR REPLACE CATALOG INTEGRATION문을 사용하세요. -
하나 이상의 Apache Iceberg™ 테이블이 카탈로그 통합과 연결되어 있으면 카탈로그 통합을 삭제하거나 교체할 수 없어요.
카탈로그 통합에 의존하는 테이블을 보려면 SHOW ICEBERG TABLES 명령과 catalog_name 열로 필터링하는 파이프 연산자(pipe operator)(->>)를 사용하는 쿼리를 사용할 수 있어요.
참고
열 식별자(catalog_name)는 대소문자를 구분해요. SHOW ICEBERG TABLES 출력에 표시된 그대로 열 식별자를 지정하세요.
예:
SHOW ICEBERG TABLES
->> SELECT *
FROM $1
WHERE "catalog_name" = 'my_catalog_integration_1';
-
메타데이터에 관해: 고객은 Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감 데이터, 수출 통제 데이터 또는 기타 규제 데이터를 입력하지 않도록 해야 해요. 자세한 내용은 Metadata fields in Snowflake를 참고하세요.
-
OR REPLACE와IF NOT EXISTS절은 상호 배타적이에요. 같은 문에서 둘 다 사용할 수 없어요. -
CREATE OR REPLACE <object>문은 원자적(atomic)이에요. 즉 객체를 교체할 때 기존 객체가 삭제되고 새 객체가 단일 트랜잭션으로 만들어져요.
예제 (Examples)
AWS Glue 카탈로그 소스를 사용하는 카탈로그 통합을 만드는 예제예요. Glue용 카탈로그 통합을 만들 때는 Snowflake와 Glue Data Catalog 사이의 신뢰 관계를 구축하기 위한 추가 단계를 완료해야 해요. 자세한 내용은 Configure a catalog integration for AWS Glue를 참고하세요.
CREATE CATALOG INTEGRATION glueCatalogInt
CATALOG_SOURCE = GLUE
CATALOG_NAMESPACE = 'myNamespace'
TABLE_FORMAT = ICEBERG
GLUE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myGlueRole'
GLUE_CATALOG_ID = '123456789012'
GLUE_REGION = 'us-east-2'
ENABLED = TRUE;
더 알아보기 (Learn more)
ALTER CATALOG INTEGRATION, DROP CATALOG INTEGRATION, SHOW CATALOG INTEGRATIONS, DESCRIBE CATALOG INTEGRATION