ClickHouse Cloud에서 Iceberg 카탈로그 연결하기

ClickHouse Cloud에서 Iceberg 카탈로그 연결하기

Iceberg 호환 데이터 레이크를 사용하고 있다면, ClickHouse Cloud에서 Iceberg REST 카탈로그에 연결해서 데이터를 복사하지 않고도 Iceberg 테이블에 SQL 쿼리를 실행할 수 있어요. 이 퀵스타트에서 그 전체 과정을 따라 해 볼게요.

출처: How to connect your Iceberg catalog in ClickHouse Cloud

본문

사전 요구사항 (Prerequisites)

이 퀵스타트를 시작하기 전에 다음이 준비되어 있어야 해요:

  • 실행 중인 ClickHouse Cloud 서비스. 아직 없다면 ClickHouse Cloud 퀵 스타트를 먼저 완료하세요.
  • Iceberg 호환 데이터 레이크에 접근할 수 있어야 함
  • 데이터 레이크 카탈로그 (URL + 자격 증명)
  • 데이터 레이크 카탈로그 유형에 따라: 오브젝트 스토리지 자격 증명 (예: S3 호환 스토리지)
  • 카탈로그에 등록된 Iceberg 테이블이 하나 이상 있어야 함

Iceberg 카탈로그에 데이터가 아직 없다면, 이 데이터셋을 업로드해서 사용할 수 있어요. 이 문서에서는 여기 있는 데이터셋으로 데모를 진행할 거예요.

만들게 될 것 (What you'll build)

이 퀵스타트에서는 다음을 하게 돼요:

  • ClickHouse Cloud에서 Iceberg REST 카탈로그에 연결하기
  • 그 카탈로그가 지원하는 ClickHouse 데이터베이스 만들기
  • 기존 Iceberg 테이블을 ClickHouse에서 직접 쿼리하기
  • ClickHouse가 데이터 레이크에서 데이터를 읽고 있는지 확인하기

끝나면 ClickHouse Cloud가 Iceberg 카탈로그에 연결되어, 데이터를 복사하지 않고 Iceberg 테이블에 SQL 쿼리를 실행할 수 있게 돼요.

1. DataLakeCatalog 연결 만들기

이 단계에서는 ClickHouse Cloud에서 데이터 레이크 카탈로그에 연결해요.

  1. ClickHouse Cloud 서비스를 엽니다.
  2. Data Sources → Connect to your Data Lake Catalog로 이동합니다.
  3. 드롭다운에서 데이터 카탈로그를 선택합니다.
  4. 폼에 자격 증명과 연결 정보를 입력합니다. Unity Catalog의 경우 다음을 입력하세요:
    • Open Table Format (Iceberg)
    • ClickHouse Database name. Iceberg 테이블을 쿼리할 ClickHouse 데이터베이스의 이름이에요.
    • Workspace ID
    • Databricks catalog name
    • Client ID
    • Client Secret
  5. 카탈로그를 저장합니다. 이제 Data Sources 페이지에 데이터베이스에서 사용 가능한 테이블 수와 함께 데이터 카탈로그가 로드된 걸 볼 수 있어요.

2. Iceberg 테이블 쿼리하기

이 단계에서는 데이터 카탈로그의 Iceberg 테이블을 쿼리해요.

  1. Show Tables 또는 SQL Console을 클릭하면, 데이터 레이크에 연결된 새 데이터베이스가 materialize된 상태로 SQL 콘솔에 들어가게 돼요. SQL Console로 갔다면 데이터베이스 드롭다운을 Iceberg 데이터베이스로 바꾸세요.
  2. 파일 트리에서 Iceberg 테이블이 하나 이상 보일 거예요. 다음 쿼리를 실행해 보세요:
select * from iceberg_database.`iceberg_db.your_table`
  1. ClickHouse가 Iceberg 테이블의 행들을 반환할 거예요.

다음 단계 (Next steps)

이제 데이터 레이크에 연결했으니, ClickHouse에서 Iceberg 테이블을 쓰는(write) 것도 시험해 볼 수 있어요.

따옴표 사용에 주의하세요. ClickHouse는 3부분 네임스페이스(three part namespace)를 지원하지 않아서, schema.table을 따옴표로 감싸야 해요.

더 알아보기 (Learn more)