- Shared
- PostgreSQL
- MySQL
- DataLakeCatalog
아키텍처 및 메타데이터 저장소
- 모든 레플리카 간의 일관된 상태
- 컴퓨트 노드의 무상태성
- 빠르고 안정적인 레플리카 부트스트래핑
SharedMergeTree와 같은 무상태 테이블 엔진을 사용하는 테이블이 포함된 데이터베이스를 관리합니다. 이러한 테이블 엔진은 디스크에 영구적인 상태를 기록하지 않으며, 동적 컴퓨트 환경과 호환됩니다.
공유 데이터베이스 엔진은 Replicated 데이터베이스 엔진의 동작을 기반으로 이를 개선하는 한편, 추가적인 보장과 운영상 이점도 제공합니다.
주요 이점
- Atomic CREATE TABLE … AS SELECT 테이블 생성과 데이터 삽입이 원자적으로 수행됩니다. 즉, 전체 작업이 완료되거나 테이블이 아예 생성되지 않습니다.
-
데이터베이스 간 RENAME TABLE
데이터베이스 간에 테이블을 원자적으로 이동할 수 있습니다.
-
UNDROP TABLE을 통한 자동 테이블 복구
삭제된 테이블은 기본적으로 8시간 동안 유지되며 복원할 수 있습니다.
유지 기간은 서버 설정으로 조정할 수 있습니다.
- 개선된 컴퓨트-컴퓨트 분리 DROP 쿼리를 처리하려면 모든 레플리카가 온라인 상태여야 하는 Replicated 데이터베이스 엔진과 달리, Shared Catalog는 메타데이터 삭제를 중앙에서 처리합니다. 따라서 일부 레플리카가 오프라인 상태여도 작업을 성공적으로 수행할 수 있습니다.
- 자동 메타데이터 복제 Shared Catalog는 시작 시 데이터베이스 정의가 모든 서버에 자동으로 복제되도록 합니다. 운영자는 새 인스턴스에서 메타데이터를 수동으로 구성하거나 동기화할 필요가 없습니다.
- 중앙에서 관리되는 버전별 메타데이터 상태 Shared Catalog는 ZooKeeper에 단일 정보 원본을 저장합니다. 레플리카가 시작되면 최신 상태를 가져와 diff를 적용해 일관성을 맞춥니다. 쿼리 실행 중에는 정확성을 보장하기 위해 다른 레플리카가 최소한 필요한 메타데이터 버전에 도달할 때까지 시스템이 대기할 수 있습니다.
ClickHouse Cloud에서의 사용
요약
- 상태 비저장 엔진을 위한 안정적이고 자동화된 메타데이터 복제
- 로컬 메타데이터를 영구 저장하지 않는 상태 비저장 컴퓨트
- 복잡한 DDL을 위한 원자적 연산
- 탄력적이고 일시적이거나 부분적으로 오프라인 상태인 컴퓨트 환경에 대한 향상된 지원
- ClickHouse Cloud 사용자를 위한 원활한 사용 경험