ClickHouse Cloud 아키텍처
ClickHouse Cloud는 운영 부담을 크게 줄이고, 대규모로 ClickHouse를 운영하는 비용을 절감합니다. 배포 규모를 미리 산정하거나, 고가용성을 위해 복제를 설정하거나, 데이터를 수동으로 세그먼트로 나누거나, workload가 증가할 때 서버를 확장하거나, 사용하지 않을 때 서버를 축소할 필요가 없습니다. 이러한 작업은 ClickHouse Cloud가 대신 처리합니다. 이러한 이점은 ClickHouse Cloud의 기반이 되는 아키텍처 선택에서 비롯됩니다.- 컴퓨트와 스토리지가 분리되어 있으므로 각각을 별도로 자동 스케일링할 수 있으며, 정적인 인스턴스 구성에서 스토리지나 컴퓨트를 과도하게 프로비저닝할 필요가 없습니다.
- 객체 스토리지 기반의 계층형 스토리지와 다단계 캐싱은 사실상 무제한에 가까운 스케일링과 우수한 가격 대비 성능을 제공하므로, 스토리지 용량을 미리 산정하거나 높은 스토리지 비용을 걱정할 필요가 없습니다.
- 고가용성은 기본적으로 활성화되어 있으며 복제는 자동으로 관리되므로, 애플리케이션 구축이나 데이터 분석에 집중할 수 있습니다.
- 변동이 있는 지속적 workload를 위한 자동 스케일링이 기본적으로 활성화되어 있으므로, 서비스 규모를 미리 산정하거나, workload가 증가할 때 서버를 확장하거나, 활동이 줄었을 때 서버를 수동으로 축소할 필요가 없습니다.
- 간헐적인 workload를 위한 원활한 최대 절전 기능이 기본적으로 활성화되어 있습니다. 일정 기간 동안 활동이 없으면 컴퓨트 리소스를 자동으로 일시 중지하고, 새 쿼리가 도착하면 이를 다시 자동으로 시작하므로, 유휴 리소스에 비용을 지불할 필요가 없습니다.
- 고급 스케일링 제어를 통해 비용을 추가로 관리할 수 있도록 자동 스케일링 최대값을 설정하거나, 특수한 성능 요구 사항이 있는 애플리케이션을 위해 컴퓨트 리소스를 예약할 수 있도록 자동 스케일링 최소값을 설정할 수 있습니다.
기능
ClickHouse Cloud는 오픈 소스 ClickHouse 배포판에서 엄선한 기능 집합을 제공합니다. 아래 표에는 현재 ClickHouse Cloud에서 사용할 수 없는 일부 기능이 나와 있습니다.데이터베이스 및 테이블 엔진
ClickHouse Cloud는 기본적으로 SharedMergeTree 테이블 엔진 계열을 기반으로 하는 고가용성 복제 서비스입니다. 표준 MergeTree 계열 엔진으로 테이블을 생성하면 Cloud가 해당Shared* 엔진으로 자동 치환합니다. Shared 또는 Replicated 접두사를 직접 추가할 필요는 없습니다.
Replicated* 엔진도 동일한 Shared* 대응 엔진으로 변환됩니다. 이 치환은 SHOW CREATE TABLE에서 확인할 수 있으며, SQL 문에서 일반 변형을 지정했더라도 Shared* 엔진으로 표시됩니다.
다음 테이블 엔진도 지원되며 작성한 그대로 사용됩니다. 지원되는 MySQL 테이블 엔진은 지원되지 않는 MySQL 데이터베이스 엔진과 구별됩니다:
- URL
- View
- MaterializedView
- GenerateRandom
- Null
- Buffer
- Memory
IcebergS3및IcebergAzure- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
- Kafka
PaimonS3 및 PaimonAzure 테이블 엔진은 일부 ClickHouse Cloud 서비스에서 활성화할 수 있습니다. 사용 가능 여부를 확인하려면 Support에 문의하십시오.
인터페이스
ClickHouse Cloud는 HTTPS, 네이티브 인터페이스, 그리고 MySQL wire protocol을 지원합니다. Postgres와 같은 추가 인터페이스도 곧 지원될 예정입니다.Dictionaries
Dictionaries는 ClickHouse에서 키 조회 속도를 높이는 데 널리 사용되는 기능입니다. 현재 ClickHouse Cloud에서는 PostgreSQL, MySQL, 원격 및 로컬 ClickHouse 서버, Redis, MongoDB, HTTP 소스의 Dictionaries를 지원합니다.페더레이티드 쿼리
Cloud에서는 클러스터 간 통신을 위한 페더레이티드 ClickHouse 쿼리와 외부 자가 관리형 ClickHouse 클러스터와의 통신을 지원합니다. 현재 ClickHouse Cloud는 다음 integration 엔진을 사용한 페더레이티드 쿼리를 지원합니다.IcebergS3및IcebergAzurePaimonS3및PaimonAzure(실험적 기능이며, 사용 가능 여부는 Support에 문의하십시오)- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
사용자 정의 함수
ClickHouse Cloud에서는 SQL 및 실행형 사용자 정의 함수가 일반 제공됩니다. 자세한 내용은 Cloud의 사용자 정의 함수를 참조하십시오.설정 동작
이는 다음을 의미합니다:- 세션 수준 설정(
SET문으로 설정)은 UDF 실행 Context에 전달되지 않습니다 - 사용자 프로필 설정은 UDF에 상속되지 않습니다
- 쿼리 수준 설정은 UDF 실행 중에는 적용되지 않습니다
실험적 기능
서비스 배포의 안정성을 위해 ClickHouse Cloud 서비스에서는 실험적 기능이 비활성화되어 있습니다.명명된 컬렉션
DDL로 생성된 명명된 컬렉션은 일부 ClickHouse Cloud 서비스에서 활성화할 수 있습니다. 사용 가능 여부는 Support에 문의하십시오. ClickHouse Cloud에서는 사용자가 서버 설정 파일을 수정할 수 없으므로 설정 파일에 정의된 명명된 컬렉션은 사용할 수 없습니다.운영 기본값 및 고려 사항
다음은 ClickHouse Cloud 서비스의 기본 설정입니다. 일부 설정은 서비스의 올바른 운영을 위해 고정되어 있으며, 일부는 조정할 수 있습니다.운영 제한 사항
max_parts_in_total: 10,000
MergeTree 테이블의 max_parts_in_total 설정 기본값이 100,000에서 10,000으로 낮아졌습니다. 이렇게 변경한 이유는 많은 수의 데이터 파트(data part)가 Cloud에서 서비스 시작 시간을 느리게 할 가능성이 높은 것으로 확인되었기 때문입니다. 파트 수가 많다는 것은 대개 파티션 키(partition key)를 지나치게 세분화해 선택했음을 의미하며, 이는 보통 실수로 발생하므로 피해야 합니다. 기본값을 변경하면 이러한 사례를 더 이른 시점에 감지할 수 있습니다.
max_concurrent_queries: 1,000
더 높은 동시성을 지원하기 위해 이 서버 수준 설정의 기본값을 100에서 1000으로 늘렸습니다.
그 결과, 서비스는 레플리카 수 * 1,000개의 동시 쿼리를 처리할 수 있습니다. 단일 레플리카 서비스는 tier와 관계없이 동시 쿼리를 최대 1000개까지 지원합니다. Scale 및 Enterprise tier의 다중 레플리카 서비스는 레플리카당 동시 쿼리를 최대 1000개까지 지원합니다.
max_table_size_to_drop: 1,000,000,000,000
이 설정을 50GB에서 상향 조정하여 최대 1TB 크기의 테이블/파티션을 삭제할 수 있도록 했습니다.
시스템 설정
ClickHouse Cloud는 가변적인 워크로드에 맞게 최적화되어 있으므로 현재 대부분의 시스템 설정은 구성할 수 없습니다. 대부분의 사용자에게는 시스템 설정을 조정할 필요가 없을 것으로 보이지만, 고급 시스템 튜닝과 관련해 질문이 있으면 ClickHouse Cloud Support에 문의하십시오.고급 보안 관리
ClickHouse 서비스를 생성하는 과정에서 기본 데이터베이스와 이 데이터베이스에 대한 광범위한 권한을 가진 기본 사용자(default)를 생성합니다. 이 초기 사용자는 추가 사용자를 생성하고 이 데이터베이스에 대한 권한을 할당할 수 있습니다. 이와 별개로, 현재는 Kerberos, LDAP 또는 SSL X.509 인증서 인증을 사용해 데이터베이스 내에서 다음 보안 기능을 활성화하는 기능은 지원되지 않습니다.