메인 콘텐츠로 건너뛰기
DataLakeCatalog 데이터베이스 엔진을 사용하면 ClickHouse를 외부 데이터 카탈로그에 연결하고, 데이터 복제 없이 오픈 테이블 포맷 데이터를 쿼리할 수 있습니다. 이를 통해 ClickHouse는 기존 데이터 레이크 인프라와 원활하게 연동되는 강력한 쿼리 엔진이 됩니다.

지원되는 카탈로그

DataLakeCatalog 엔진은 다음 카탈로그를 지원합니다:
  • AWS Glue Catalog - AWS 환경의 Iceberg 테이블에 사용
  • Databricks Unity Catalog - Delta Lake 및 Iceberg 테이블에 사용
  • Hive Metastore - 전통적인 Hadoop 생태계 카탈로그
  • REST Catalogs - Iceberg REST 사양을 지원하는 모든 카탈로그

데이터베이스 생성

DataLakeCatalog 엔진을 사용하려면 아래 관련 설정을 활성화해야 합니다:
SET allow_experimental_database_iceberg = 1;
SET allow_experimental_database_unity_catalog = 1;
SET allow_experimental_database_glue_catalog = 1;
SET allow_experimental_database_hms_catalog = 1;
SET allow_experimental_database_paimon_rest_catalog = 1;
DataLakeCatalog 엔진을 사용하는 데이터베이스는 다음 구문으로 생성할 수 있습니다:
CREATE DATABASE database_name
ENGINE = DataLakeCatalog(catalog_endpoint[, user, password])
SETTINGS
catalog_type,
[...]
다음 설정이 지원됩니다:
설정설명
catalog_type카탈로그 유형: glue, unity (Delta), rest (Iceberg), hive, onelake (Iceberg)
warehouse카탈로그에서 사용할 웨어하우스/데이터베이스 이름입니다.
catalog_credential카탈로그 인증에 사용할 자격 증명입니다(예: API Key 또는 토큰).
auth_header카탈로그 서비스 인증에 사용할 사용자 지정 HTTP 헤더
auth_scope인증용 OAuth2 스코프입니다(OAuth를 사용하는 경우).
storage_endpoint기본 스토리지의 엔드포인트 URL입니다.
oauth_server_uri인증에 사용할 OAuth2 authorization server의 URI입니다.
vended_credentials카탈로그에서 제공하는 자격 증명을 사용할지 여부를 나타내는 불리언 값입니다(AWS S3 및 Azure ADLS Gen2 지원).
aws_access_key_idS3/Glue 액세스에 사용할 AWS access key ID입니다(vended credentials를 사용하지 않는 경우).
aws_secret_access_keyS3/Glue 액세스에 사용할 AWS secret access key입니다(vended credentials를 사용하지 않는 경우).
region서비스의 AWS 리전입니다(예: us-east-1).
dlf_access_key_idDLF 액세스에 사용할 access key ID입니다.
dlf_access_key_secretDLF 액세스에 사용할 access key secret입니다.

예시

아래 섹션에서 DataLakeCatalog 엔진 사용 예시를 확인할 수 있습니다:
  • Unity Catalog
  • Glue Catalog
  • OneLake Catalog allow_experimental_database_iceberg 또는 allow_database_iceberg를 활성화하여 사용할 수 있습니다.
CREATE DATABASE database_name
ENGINE = DataLakeCatalog(catalog_endpoint)
SETTINGS
   catalog_type = 'onelake',
   warehouse = warehouse,
   onelake_tenant_id = tenant_id,
   oauth_server_uri = server_uri,
   auth_scope = auth_scope, 
   onelake_client_id = client_id, 
   onelake_client_secret = client_secret;
SHOW TABLES IN database_name;
SELECT count() from database_name.table_name;
마지막 수정일 2026년 6월 10일