Skip to main content
Nessie 카탈로그와의 통합은 Iceberg 테이블에서만 작동합니다. 이 통합은 AWS S3와 기타 클라우드 스토리지 제공업체를 모두 지원합니다.
ClickHouse는 여러 카탈로그(Unity, Glue, REST, Polaris 등)와의 통합을 지원합니다. 이 가이드에서는 ClickHouse와 Nessie 카탈로그를 사용하여 데이터를 쿼리하는 방법을 안내합니다. Nessie는 데이터 레이크를 위한 오픈 소스 트랜잭션 카탈로그로, 다음 기능을 제공합니다.
  • Git에서 영감을 받은 브랜치와 커밋 기반 데이터 버전 관리
  • 테이블 간 트랜잭션 및 가시성 보장
  • Iceberg REST 카탈로그 사양을 준수하는 REST API
  • Hive, Spark, Dremio, Trino 등을 지원하는 개방형 데이터 레이크 접근 방식
  • Docker 또는 Kubernetes에서의 프로덕션 환경에 적합한 배포
이 기능은 아직 실험적 기능이므로, 다음을 사용해 활성화해야 합니다: SET allow_experimental_database_iceberg = 1;

로컬 개발 환경 설정

로컬에서 개발하고 테스트할 때는 컨테이너화된 Nessie 환경을 사용할 수 있습니다. 이 방식은 학습, 프로토타입 제작, 개발 환경에 적합합니다.

사전 준비 사항

  1. Docker 및 Docker Compose: Docker가 설치되어 있고 실행 중인지 확인하세요
  2. 예제 설정: 공식 Nessie docker-compose 구성을 사용할 수 있습니다

로컬 Nessie 카탈로그 설정

Nessie, 인메모리 버전 저장소, 객체 스토리지용 MinIO를 포함한 전체 환경을 제공하는 공식 Nessie docker-compose setup을 사용할 수 있습니다. 1단계: 예시를 실행할 새 폴더를 만든 다음, 아래 구성으로 docker-compose.yml 파일을 생성합니다:
2단계: 서비스를 시작하려면 다음 명령을 실행하세요:
3단계: 모든 서비스가 준비될 때까지 기다리십시오. 로그는 다음과 같이 확인할 수 있습니다:
Nessie 설정은 인메모리 버전 저장소를 사용하므로, 먼저 샘플 데이터를 Iceberg 테이블에 로드해야 합니다. ClickHouse를 통해 해당 테이블에 쿼리하기 전에 환경에서 테이블이 생성되고 데이터가 채워져 있는지 확인하십시오.

로컬 Nessie 카탈로그에 연결하기

ClickHouse 컨테이너에 연결하세요:
그런 다음 Nessie 카탈로그에 대한 데이터베이스 연결을 생성합니다:

ClickHouse로 Nessie 카탈로그 테이블 쿼리하기

이제 연결이 설정되었으므로 Nessie 카탈로그를 통해 쿼리할 수 있습니다. 예시는 다음과 같습니다:
구성에 샘플 데이터(예: 택시 데이터셋)가 포함된 경우 다음과 같은 테이블이 표시됩니다:
테이블이 하나도 보이지 않으면 일반적으로 다음 중 하나를 의미합니다:
  1. 환경에서 아직 샘플 테이블을 생성하지 않았습니다
  2. Nessie 카탈로그 서비스가 아직 완전히 초기화되지 않았습니다
  3. 샘플 데이터 로드 프로세스가 아직 완료되지 않았습니다
카탈로그 활동을 확인하려면 Nessie 로그를 확인하십시오:
테이블을 쿼리하려면(사용 가능한 경우):
백틱 사용 필수ClickHouse는 네임스페이스를 1개 이상 지원하지 않으므로 백틱이 필요합니다.
테이블 DDL을 확인하려면:

데이터 레이크의 데이터를 ClickHouse로 로드하기

Nessie 카탈로그의 데이터를 ClickHouse로 로드해야 한다면, 먼저 로컬 ClickHouse 테이블을 생성하십시오:
그런 다음 INSERT INTO SELECT를 사용해 Nessie 카탈로그 테이블의 데이터를 불러옵니다:
마지막 수정일 2026년 7월 24일