SYSTEM$SET_CATALOG_INTEGRATION
SYSTEM$SET_CATALOG_INTEGRATION
외부 관리(externally managed) Apache Iceberg™ 테이블과 연결된 카탈로그 통합(catalog integration)을 교체하는 시스템 함수예요.
이 함수를 사용해 외부 관리 Iceberg 테이블에 대한 쓰기 지원 같은 더 넓은 범위의 Iceberg 기능을 지원하는 Iceberg REST 카탈로그 통합에서 작동하도록 테이블을 업데이트할 수 있어요. 필요하다면 원래 Glue 카탈로그 통합으로 롤백하는 데도 이 함수를 사용할 수 있어요.
또한 이 함수를 사용해 테이블을 한 Iceberg REST 카탈로그 통합에서 다른 통합으로 마이그레이션할 수도 있어요.
본문
Syntax
SYSTEM$SET_CATALOG_INTEGRATION(
'<table_name>' ,
'<new_catalog_integration_name>'
)
Arguments
'table_name':
카탈로그 통합을 교체하려는 Iceberg 테이블의 이름이에요.
'new_catalog_integration_name':
지정한 table_name을 마이그레이션하려는 카탈로그 통합의 이름이에요.
Returns
이 함수는 테이블의 카탈로그 통합이 성공적으로 마이그레이션되었다는 상태 메시지를 반환해요. 예시는 Examples를 참고하세요.
Access control requirements
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 가져야 해요:
| Privilege | Object | | OWNERSHIP | 카탈로그 통합이 교체되는 테이블. | | USAGE | 현재 카탈로그 통합. | | USAGE | 대상 카탈로그 통합. |
스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한이 하나 이상, 상위 스키마에 대한 권한이 하나 이상 필요해요.
지정된 권한 집합으로 사용자 지정 역할을 만드는 방법은 Creating custom roles을 참고하세요.
보안 가능 객체에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반 정보는 Overview of Access Control을 참고하세요.
Usage notes
- 표준 Snowflake 데이터베이스의 외부 관리 Iceberg 테이블에 대해서만 카탈로그 통합을 교체할 수 있어요. 카탈로그 연결(catalog-linked) 데이터베이스의 Iceberg 테이블에 대한 카탈로그 통합이나 다른 유형의 Iceberg 테이블에 대한 카탈로그 통합은 교체할 수 없어요.
- 테이블과 연결된 현재 카탈로그 통합의 유형이 교체로 사용할 수 있는 카탈로그 통합 유형을 제한해요. 다음 표는 한 카탈로그 통합 유형을 다른 유형으로 교체할 때 지원되는 전환(transition)을 나열해요:
| Current catalog integration type | New catalog integration type | Notes | | AWS Glue | AWS Glue Iceberg REST | | | AWS Glue Iceberg REST | AWS Glue | AWS Glue 카탈로그 소스를 사용하는 카탈로그 통합으로 롤백. | | Iceberg REST | Iceberg REST | 대체 카탈로그 통합으로 테이블 마이그레이션. | | 다른 전환 조합은 지원되지 않아요. | | |
table_name과new_catalog_integration_name은 문자열 리터럴이므로 값을 작은따옴표로 묶어야 해요.- 현재 및 대상 카탈로그 통합은 둘 다 같은 외부 카탈로그를 가리켜야 해요.
- 현재 및 대상 카탈로그 통합은 둘 다 자격 증명 공급(credential vending)이 활성화되어 있으면 안 돼요.
Examples
glue_table이라는 Iceberg 테이블과 연결된 AWS Glue 카탈로그 통합을 glue_rest_catalog_int라는 AWS Glue Iceberg REST 카탈로그 통합으로 교체하기:
SELECT SYSTEM$SET_CATALOG_INTEGRATION('glue_table', 'glue_rest_catalog_int');
샘플 출력:
+------------------------------------------------------------------------------------------------------------------------------+
| SYSTEM$SET_CATALOG_INTEGRATION |
+------------------------------------------------------------------------------------------------------------------------------+
| Catalog integration for table GLUE_TABLE has been migrated from 'GLUE_CATALOG_INTEGRATION' to 'GLUE_REST_CATALOG_INT' |
+------------------------------------------------------------------------------------------------------------------------------+
Troubleshooting
함수가 실패하면 오류 응답을 반환해요. 일반적인 오류 메시지는 다음과 같아요:
| Error Message | Situation and Solution | | SYSTEM$SET_CATALOG_INTEGRATION does not support transitioning from catalog integration '[CURRENT_CATALOG_INTEGRATION]' to '[TARGET_CATALOG_INTEGRATION]' due to unsupported type combination | 제공된 현재 또는 대상 카탈로그 통합이 지원되는 카탈로그 통합 유형과 일치하지 않아요. 지원되는 유형은 usage notes를 참고하세요. | | SYSTEM$SET_CATALOG_INTEGRATION cannot transition from '[CURRENT_CATALOG_INTEGRATION]' to '[TARGET_CATALOG_INTEGRATION]' due to incompatible catalog integration configurations | 주어진 카탈로그 통합은 지원되는 유형이지만 지원되는 전환 조합 중 하나와 일치하지 않아요. 지원되는 전환 조합은 usage notes를 참고하세요. | | Currently doesn't support performing transition when catalog integration '[CATALOG_INTEGRATION]' has credential vending enabled | 제공된 카탈로그 통합에 자격 증명 공급이 활성화되어 있어요. 자격 증명 공급이 비활성화된 카탈로그 통합을 제공하고 다시 시도하세요. | | SYSTEM$SET_CATALOG_INTEGRATION can only be used on unmanaged Iceberg tables | 제공된 테이블이 외부 관리 Iceberg 테이블이 아니에요. 외부 관리 Iceberg 테이블을 제공하고 다시 시도하세요. |