지원 매트릭스

지원 매트릭스 (Support matrix)

ClickHouse 데이터 레이크 통합에 대한 포맷별·카탈로그별 지원 매트릭스를 정리한 페이지예요.

출처: 문서

본문

이 페이지는 ClickHouse 데이터 레이크 통합에 대한 종합적인 지원 매트릭스를 제공해요. 각 오픈 테이블 포맷에서 사용 가능한 기능, ClickHouse가 연결할 수 있는 카탈로그, 각 카탈로그에서 지원되는 기능을 다뤄요. 지원 상태는 ClickHouse Cloud와 자체 관리 ClickHouse에 대해 별도로 표시돼요. 실험적 기능은 ClickHouse Cloud에서 기본적으로 비활성화되어 있고 Support를 통해 요청해야 해요. 가용성은 기능별로 다르므로 특정 실험적 기능을 활성화할 수 있는지 Support에 문의해 확인하세요. 배포별 구성과 제한 사항은 Notes 컬럼에 설명되어 있어요.

오픈 테이블 포맷 지원

ClickHouse는 네 가지 오픈 테이블 포맷과 통합돼요: Apache Iceberg, Delta Lake, Apache Hudi, Apache Paimon. 아래에서 포맷을 선택해 지원 매트릭스를 확인하세요. 범례: ✅ 지원 | ⚠️ 부분적, 실험적 또는 폐기 예정 | ❌ 미지원

Apache Iceberg

기능 ClickHouse Cloud 자체 관리 참고
스토리지 백엔드
AWS S3 icebergS3() 또는 iceberg() 별칭 사용
GCS icebergS3() 또는 iceberg() 별칭 사용
Azure Blob Storage icebergAzure() 사용
HDFS ⚠️ 폐기 예정 icebergHDFS() 사용
로컬 파일시스템 icebergLocal() 사용
접근 방법
테이블 함수 icebergS3(), 백엔드별 변형 제공
테이블 엔진 IcebergS3, 백엔드별 변형 제공
클러스터 분산 읽기 icebergS3Cluster, icebergAzureCluster, icebergHDFSCluster
Named collections ⚠️ DDL로 생성된 named collections을 일부 ClickHouse Cloud 서비스에서 활성화 가능. 가용성은 Support에 문의
읽기 기능
읽기 지원 모든 ClickHouse SQL 함수를 포함한 전체 SELECT 지원
파티션 프루닝 파티션 프루닝 참고
숨겨진 파티셔닝 Iceberg 변환 기반 파티셔닝 지원
파티션 진화 시간이 지나며 파티션 스펙이 바뀌는 테이블 읽기 지원
스키마 진화 컬럼 추가, 제거, 재정렬. 스키마 진화 참고
타입 승격/확장 intlong, floatdouble, decimal(P,S)decimal(P',S)(P' > P). 스키마 진화 참고
타임 트래블 / 스냅샷 iceberg_timestamp_ms 또는 iceberg_snapshot_id 설정 사용. 타임 트래블 참고
Position deletes 삭제된 행 처리 참고
Equality deletes 테이블 함수와 테이블 엔진, v25.8+부터. 삭제된 행 처리 참고
Merge-on-read ⚠️ ⚠️ 실험적. delete 작업에 대해 지원
포맷 버전 ⚠️ 부분적 ⚠️ 부분적 v1과 v2 지원. v3 지원은 부분적: deletion vector 읽기는 지원, 매니페스트 압축은 미지원
컬럼 통계
블룸 필터 / puffin 파일 Puffin 파일의 블룸 필터 인덱스 미지원
가상 컬럼 _path, _file, _size, _time, _etag. 가상 컬럼 참고
쓰기 기능
테이블 생성 ⚠️ ⚠️ 실험적. allow_insert_into_iceberg = 1 필요. v25.7+부터. 테이블 생성 참고
INSERT ✅ Beta ✅ Beta 26.2부터 Beta. allow_insert_into_iceberg = 1 필요. 데이터 삽입 참고
DELETE ⚠️ ⚠️ 실험적. allow_insert_into_iceberg = 1 필요. ALTER TABLE ... DELETE WHERE 사용. 데이터 삭제 참고
ALTER TABLE(스키마 변경) ⚠️ ⚠️ 실험적. allow_insert_into_iceberg = 1 필요. 컬럼 추가, 드롭, 수정, 이름 변경. 스키마 진화 참고
압축(Compaction) ⚠️ ⚠️ 실험적. allow_experimental_iceberg_compaction = 1 필요. Compaction 참고
UPDATE / MERGE 미지원. Compaction 참고
Copy-on-write 미지원
스냅샷 만료 ⚠️ ⚠️ 실험적. Iceberg v2, allow_insert_into_iceberg = 1, allow_experimental_expire_snapshots = 1 필요. 스냅샷 만료 참고
고아 파일 제거 ⚠️ ⚠️ 실험적. Iceberg v2 이상, allow_insert_into_iceberg = 1, allow_iceberg_remove_orphan_files = 1 필요. 고아 파일 제거 참고
파티션 쓰기 ✅ Beta ✅ Beta Iceberg 쓰기에 대해 지원
파티션 변경 ClickHouse에서 파티셔닝 스킴 변경은 미지원. ClickHouse는 진화된 파티셔닝 스킴의 Iceberg 테이블에 쓸 수 있음
메타데이터
브랜칭 및 태깅 Iceberg branch/tag 참조 미지원
메타데이터 파일 해석 카탈로그, 디렉터리 목록, version-hint, 특정 경로를 통한 해석 지원. 메타데이터 파일 해석 참고
데이터 캐싱 S3/Azure/HDFS 스토리지 엔진과 동일한 메커니즘. 데이터 캐시 참고
메타데이터 캐싱 use_iceberg_metadata_files_cache로 기본 활성화. 메타데이터 캐시 참고

Delta Lake

버전 25.6부터 ClickHouse는 Delta Lake Rust 커널을 사용해 Delta Lake 테이블을 읽어 더 넓은 기능 지원을 제공해요(버전 26.4부터 Azure Blob Storage에서 활성화). 아래에서 어떤 기능이 이 커널을 요구하는지 표시할게요.

기능 ClickHouse Cloud 자체 관리 참고
스토리지 백엔드
AWS S3 deltaLake() 또는 deltaLakeS3() 사용
GCS deltaLake() 또는 deltaLakeS3() 사용
Azure Blob Storage deltaLakeAzure() 사용
HDFS 미지원
로컬 파일시스템 deltaLakeLocal() 사용
접근 방법
테이블 함수 deltaLake(), 백엔드별 변형 제공
테이블 엔진 DeltaLake
클러스터 분산 읽기 deltaLakeCluster, deltaLakeAzureCluster
Named collections ⚠️ DDL로 생성된 named collections을 일부 ClickHouse Cloud 서비스에서 활성화 가능. 가용성은 Support에 문의
읽기 기능
읽기 지원 모든 ClickHouse SQL 함수를 포함한 전체 SELECT 지원
파티션 프루닝 ✅ Beta ✅ Beta Delta Kernel 필요
스키마 진화 ✅ Beta ✅ Beta Delta Kernel 필요
타임 트래블 ✅ Beta ✅ Beta Delta Kernel 필요
Deletion vectors
컬럼 매핑
Change data feed ✅ Beta ✅ Beta Delta Kernel 필요
가상 컬럼 _path, _file, _size, _time, _etag. 가상 컬럼 참고
쓰기 기능
INSERT ✅ Beta ✅ Beta Delta Kernel 필요. S3와 GCS, 그리고 v26.9부터 Azure에 대해 쓰기 지원. v26.7부터 allow_delta_lake_writes = 1 필요; 이전 버전에서는 allow_experimental_delta_lake_writes = 1 사용. Delta Lake 쓰기 참고
DELETE / UPDATE / MERGE 미지원
빈 테이블 생성 CREATE TABLE 작업은 Delta Lake 테이블이 오브젝트 스토리지에 이미 존재한다고 가정
캐싱
데이터 캐싱 S3/Azure/HDFS 스토리지 엔진과 동일한 메커니즘. 데이터 캐시 참고

Apache Hudi

기능 ClickHouse Cloud 자체 관리 참고
스토리지 백엔드
AWS S3 hudi() 사용
GCS hudi() 사용
Azure Blob Storage 미지원
HDFS 미지원
로컬 파일시스템 미지원
접근 방법
테이블 함수 hudi()
테이블 엔진 Hudi
클러스터 분산 읽기 hudiCluster(S3 전용)
Named collections ⚠️ DDL로 생성된 named collections을 일부 ClickHouse Cloud 서비스에서 활성화 가능. 가용성은 Support에 문의
읽기 기능
읽기 지원 모든 ClickHouse SQL 함수를 포함한 전체 SELECT 지원
스키마 진화 미지원
타임 트래블 미지원
가상 컬럼 _path, _file, _size, _time, _etag. 가상 컬럼 참고
쓰기 기능
INSERT / DELETE / UPDATE 읽기 전용 통합
캐싱
데이터 캐싱 미지원

Apache Paimon

기능 ClickHouse Cloud 자체 관리 참고
스토리지 백엔드
S3 ⚠️ ⚠️ 실험적. paimon() 또는 paimonS3() 사용
GCS ⚠️ ⚠️ 실험적. paimon() 또는 paimonS3() 사용
Azure Blob Storage ⚠️ ⚠️ 실험적. paimonAzure() 사용
HDFS ⚠️ 실험적이며 폐기 예정. paimonHDFS() 사용
로컬 파일시스템 ⚠️ 실험적. paimonLocal() 사용
접근 방법
테이블 함수 ⚠️ ⚠️ 실험적. paimon(), 백엔드별 변형 제공
테이블 엔진 ⚠️ ⚠️ 실험적. Paimon, 백엔드별 변형 제공. allow_experimental_paimon_storage_engine = 1 필요
클러스터 분산 읽기 ⚠️ ⚠️ 실험적. paimonS3Cluster, paimonAzureCluster, paimonHDFSCluster
Named collections ⚠️ ⚠️ 실험적. DDL로 생성된 named collections을 일부 ClickHouse Cloud 서비스에서 활성화 가능. 가용성은 Support에 문의
읽기 기능
읽기 지원 ⚠️ ⚠️ 실험적. 모든 ClickHouse SQL 함수를 포함한 전체 SELECT 지원
스키마 진화 미지원
타임 트래블 미지원
가상 컬럼 ⚠️ ⚠️ 실험적. _path, _file, _size, _time, _etag. 가상 컬럼 참고
쓰기 기능
INSERT / DELETE / UPDATE 읽기 전용 통합
캐싱
데이터 캐싱 미지원

카탈로그 지원

ClickHouse는 DataLakeCatalog 데이터베이스 엔진을 사용해 외부 데이터 카탈로그에 연결할 수 있어요. 이 엔진은 카탈로그를 ClickHouse 데이터베이스로 노출해요. 카탈로그에 등록된 테이블이 자동으로 나타나고 표준 SQL로 조회할 수 있어요. 다음 카탈로그가 현재 지원돼요. 전체 설정 방법은 각 카탈로그의 참조 가이드를 참고하세요.

카탈로그 포맷 읽기 테이블 생성 INSERT 참조 가이드
AWS Glue Catalog Iceberg ✅ Beta Glue catalog 가이드
BigLake Metastore Iceberg ✅ Beta BigLake Metastore 가이드
Databricks Unity Catalog Delta, Iceberg ✅ Beta ✅ Beta ✅ Beta Unity Catalog 가이드
Iceberg REST Iceberg ✅ Beta REST catalog 가이드
Lakekeeper Iceberg ✅ Beta Lakekeeper catalog 가이드
Project Nessie Iceberg ✅ Experimental Nessie catalog 가이드
Microsoft OneLake Iceberg ✅ Beta ✅ Beta ✅ Beta OneLake catalog 가이드
SeaweedFS Iceberg ✅ Beta ✅ Beta ✅ Beta SeaweedFS catalog 가이드

모든 카탈로그 통합은 현재 실험적 또는 베타 설정을 활성화해야 해요. Microsoft OneLake, Databricks Unity Catalog, SeaweedFS를 제외한 모든 카탈로그는 읽기 전용 접근을 노출해요 — 카탈로그 연결을 통해 테이블을 조회할 수는 있지만 만들거나 쓸 수는 없어요. 카탈로그에서 ClickHouse로 더 빠른 분석을 위해 데이터를 로드하려면 분석 가속화 가이드에 설명된 대로 INSERT INTO SELECT를 사용해요. 오픈 테이블 포맷으로 다시 쓰려면 데이터 쓰기 가이드에 설명된 대로 독립형 Iceberg 테이블을 만들어요.

더 알아보기 (Learn more)