Unity Catalog 익스텐션
Unity Catalog 익스텐션 (Unity Catalog Extension)
unity_catalog 익스텐션은 Delta Lake 포맷과 DuckDB Delta 익스텐션 위에 Unity Catalog 지원을 더해 줘요.
delta 익스텐션은 Delta Lake 오픈소스 스토리지 포맷을 지원해요. Delta Kernel로 빌드됐어요. 이 익스텐션은 로컬·원격 Delta 테이블에 대한 읽기 지원을 제공해요.
구현 세부 사항은 발표 블로그 포스트를 참고해요.
참고 두 익스텐션 모두 지원되는 플랫폼에서만 지원돼요.
출처: 문서
본문
설치와 로드 (Installing and Loading)
설치하고 로드하려면:
INSTALL unity_catalog;
LOAD unity_catalog;
사용법 (Usage)
Databricks나 Unity Catalog OSS로 Unity Catalog를 이미 구성했다면, 토큰·엔드포인트·리전으로 secret을 설정하고 카탈로그에 attach 해요:
CREATE SECRET (
TYPE unity_catalog,
TOKEN '⟨token⟩',
ENDPOINT '⟨endpoint⟩',
AWS_REGION '⟨region⟩'
);
ATTACH 'my_catalog' AS my_catalog (TYPE unity_catalog, DEFAULT_SCHEMA 'main');
여기서 ENDPOINT는 Unity Catalog REST API 엔드포인트이고 TOKEN은 적절한 자격 증명이에요. Databricks의 경우 ENDPOINT는 Workspace URL(보통 https://⟨instance⟩.cloud.databricks.com/)이고, TOKEN은 예를 들어 unity-catalog 범위의 personal access token일 수 있어요 — 전체 옵션은 Unity Catalog의 접근 제어를 참고해요. OSS Unity Catalog의 경우 OSS Unity Catalog 문서를 참고해요.
읽기 (Reading)
SHOW ALL TABLES;
SELECT * FROM my_catalog.my_schema.my_table LIMIT 10;
쓰기 (Writing)
표준 INSERT가 지원돼요:
INSERT INTO my_catalog.my_schema.my_table VALUES (1, 'hello');
INSERT INTO my_catalog.my_schema.my_table SELECT * FROM other_table;
카탈로그 관리 커밋 (Catalog-Managed Commits)
Databricks Unity Catalog 테이블은 카탈로그 관리 커밋(Catalog-Coordinated Commits/CCv2)을 사용할 수 있는데, 이 경우 커밋 조정을 Delta 로그에 직접 쓰는 대신 Databricks가 처리해요. DuckDB는 attach된 테이블이 이를 요구하면 이 프로토콜을 투명하게 사용해요 — INSERT 문법은 동일해요:
INSERT INTO my_catalog.my_schema.my_catalog_managed_table VALUES (1, 'hello');
참고 DuckDB는 아직
CREATE TABLEDDL을 지원하지 않으므로, CMC 활성 테이블은 Spark나 UC CLI로 만들어야 해요(delta.feature.catalogManaged테이블 속성 설정). 테이블이 CMC 활성화되면 DuckDB가 투명하게 읽고 써요.
기능 (Features)
이 익스텐션은 다음을 지원해요:
- 사용 가능한 테이블 나열:
SHOW ALL TABLES; - 표준 SQL로 테이블과 상호작용:
SELECT * FROM ⟨catalog⟩.⟨schema⟩.⟨table⟩; - 타임 트래블:
SELECT * FROM ... AT (VERSION => ...); - 삽입:
INSERT INTO ... VALUES (...); - 개별 테이블 체크포인트:
CALL unity_catalog_checkpoint_table('my_catalog.my_schema.my_table');
현재는 다음을 지원하지 않아요:
DELETE또는UPDATE- 테이블, 뷰, 스키마의 생성 또는 조작
지원되는 DuckDB 버전과 플랫폼
unity_catalog(그리고 delta) 익스텐션은 현재 다음 플랫폼을 지원해요:
- Linux AMD64(x86_64와 ARM64):
linux_amd64와linux_arm64 - macOS Intel과 Apple Silicon:
osx_amd64와osx_arm64 - Windows AMD64:
windows_amd64
다른 DuckDB 플랫폼 지원은 진행 중이에요.