On-Demand Compute는 비공개 프리뷰 단계입니다. ClickHouse Cloud의 SLO 또는 SLA가 적용되지 않으며, 알려진 제약과 알려지지 않은 제약이 있을 수 있습니다. 제한 사항을 참조하십시오.대기 목록에 등록하십시오.
SELECT 쿼리만 지원합니다. 쿼리/세션/사용자 수준 설정을 통해 쿼리를 대상에 포함시키면, ClickHouse가 풀에서 worker를 할당하여 기존 서비스와 엔드포인트를 통해 해당 쿼리를 실행합니다.
이는 컴퓨트-컴퓨트 분리와 다릅니다. warehouse는 데이터를 공유하는 여러 서비스를 통해 전용의 장기 지속 컴퓨트를 제공합니다. 반면 On-Demand Compute는 기존 서비스를 통해 공유 풀의 임시 worker를 제공합니다.
온디맨드 컴퓨트는 다음과 같은 완전히 새로운 기능을 활용합니다:
On-Demand Compute를 사용해야 하는 경우
비공개 프리뷰 기간에는 기본 서비스의 컴퓨트 외부에서 실행하려는, 지원 대상이면서 컴퓨트 사용량이 많은SELECT 쿼리에 On-Demand Compute를 사용하십시오:
- 애드혹 및 분석 쿼리: 컴퓨트 사용량이 많은
SELECT쿼리를 추가 worker에서 실행합니다. - 중요도가 낮은 읽기 워크로드: 일부 읽기 작업을 기본 서비스에서 분리합니다.
- 데이터 레이크 쿼리: 지원되는 Apache Iceberg, Delta Lake 또는
SharedMergeTree데이터를 추가 worker에서 쿼리합니다. - 일시적인 추가 컴퓨트: 기본 서비스의 크기를 조정하지 않고도 지원 대상 쿼리용 worker를 요청합니다.
SELECT 쿼리만 지원합니다. worker는 INSERT 쿼리, DDL, 뮤테이션, 백그라운드 작업을 실행하지 않습니다.
작동 방식
- 조건을 충족하는
SELECT쿼리를 ClickHouse Cloud 서비스로 전송하면서 특정 수의 worker를 요청합니다. endpoint, authentication, RBAC 구성은 변경되지 않습니다 - 그러면 클러스터가 풀에 연결하여 지정된 수의 worker를 요청합니다
- worker는 최소 60초 동안 임대되며, 쿼리가 그보다 오래 지속되면 임대가 자동으로 갱신됩니다
- worker가 쿼리를 전달받아 실행합니다
- 그 결과가 클라이언트로 반환됩니다
- worker는 초기화됩니다.
8 vCPUs와 32 GiB 메모리를 사용합니다. 쿼리가 요청할 worker 수는 distributed_plan_workers_num으로 지정하십시오.
온디맨드 컴퓨트 사용
설정
on-demand 컴퓨트를 사용하려면 다음 설정을 지정하십시오.예시
일부 쿼리는 worker에 분산할 수 없습니다.distributed_plan_fallback_to_local_execution 설정을 사용하십시오:
동시 쿼리
동일한 ClickHouse Cloud 서비스에서 실행되는 동시 쿼리는 할당된 worker를 공유할 수 있습니다. ClickHouse는 쿼리가 서비스에 이미 할당된 worker 수보다 많은 worker를 필요로 할 때만 추가 worker를 요청합니다. 예를 들어, 두 개의 동시 쿼리가 각각 worker 3개를 요청하는 경우 동일한 worker 3개를 공유할 수 있습니다. 또 다른 쿼리가 worker 5개를 요청하면 ClickHouse는 이미 할당된 worker 3개를 사용하고 풀에서 2개를 추가로 요청할 수 있습니다. 아래 예시를 참조하십시오:풀이 요청을 충족할 수 없는 경우
비공개 프리뷰 기간 동안 worker 가용성은 최선 노력(best effort) 기준으로 제공됩니다. 요청한 수보다 사용 가능한 worker가 적으면 ClickHouse가 할당할 수 있는 worker만으로 쿼리가 실행됩니다. 예를 들어 worker 5개를 요청해도 3개로 실행될 수 있습니다. 임대할 수 있는 worker가 하나도 없으면 쿼리는 실패합니다. 쿼리를 다시 시도하십시오. 문제가 계속되면 ClickHouse 계정 담당 팀에 문의하십시오. 미리 보기 풀이 소진되었거나 규모가 잘못 설정되었을 수 있습니다.모니터링
서비스의system.query_log를 사용하여 해당 쿼리에 worker가 몇 개나 할당되었는지 확인하십시오.
할당된 worker 수
사용 가능한 리전
On-Demand Compute는 리전 단위로 동작하며, worker는 서비스와 동일한 리전에서 실행됩니다.
원하는 리전이 목록에 없다면 대기자 명단에 신청하십시오. 수요에 따라 지원 리전을 계속 확대할 예정입니다.
가격
비공개 프리뷰 기간 동안 On-Demand Compute는 무료로 제공되며, 사용량 한도가 적용됩니다(제한 사항 참조). 한도 상향이 필요한 경우 ClickHouse 계정 담당팀에 문의하십시오. 가격 정책은 프리뷰가 종료되는 시점에 도입됩니다. 프리뷰 참가자에게는 이 기능이 베타로 전환되기 전과 과금이 시작되기 전에 미리 안내가 제공됩니다. 적용 예정인 모델은 ClickHouse Cloud 컴퓨트와 동일합니다. 즉, 스캔한 데이터나 읽은 행 수가 아니라 실제로 사용한 컴퓨트(임대한 worker 시간)에 대해 비용을 지불합니다.제한 사항
비공개 프리뷰 기간에는 다음과 같은 제한 사항이 적용됩니다. 이 외의 제한 사항도 적용될 수 있습니다. 예기치 않은 동작이 발생하면 ClickHouse 지원팀 또는 담당 어카운트 팀에 보고하십시오.SELECT쿼리만 지원. worker는INSERT쿼리, 뮤테이션, DDL, 백그라운드 작업을 실행하지 않습니다.- 지원되는 포맷. 비공개 프리뷰에서는 Apache Iceberg, Delta Lake,
SharedMergeTree를 지원합니다. - 병렬 레플리카. 병렬 레플리카를 비활성화해야 합니다.
- worker 크기. 각 worker는
8 vCPUs와32 GiB메모리를 갖습니다. - worker 제한. 비공개 프리뷰 기간에는 쿼리당 최대 5개의 worker를 요청할 수 있습니다.
- 풀 용량. worker 확보는 최선 노력(best effort) 방식입니다. 쿼리가 요청한 수보다 적은 worker를 할당받을 수 있으며, 사용 가능한 worker가 없으면 쿼리는 실패합니다.
- 성능. 성능은 쿼리에 따라 달라집니다. worker 할당, 분산 계획 수립, 계획 단계 전송으로 인해 지연 시간이 늘어날 수 있습니다. 일부 쿼리 형태는 기본 서비스에서 실행할 때보다 성능이 낮을 수 있습니다(일반적인 1초 미만 쿼리는 cluster에서 실행하는 것이 더 빠를 가능성이 높습니다).
- 쿼리 호환성. distributed planner가 모든 쿼리 계획을 원격으로 실행할 수 있는 것은 아닙니다. 지원되지 않는 쿼리는
SUPPORT_IS_DISABLED예외를 반환할 수 있습니다.
Roadmap
On-Demand Compute는 시작에 불과합니다. 현재 진행 중이거나 다음으로 예정된 작업은 다음과 같습니다.- 알려진 제약 사항 해소(
SUPPORT_IS_DISABLED관련 미지원 항목) - 다양한 워커 크기의 풀 제공
- 스테이트풀(stateful) 실행 대비 쿼리 성능 안정화
- 백그라운드 머지 지원
- 가격 정책
- 워커 풀 자동 스케일러 보정
- 내장 관측성
- On-Demand Compute 전용 권한
- 데이터 레이크 워크로드 확장(쓰기, compaction 등)
보안
worker는 동일한 region 내 여러 service가 공유하는 사전 준비(pre-warm) 풀에서 할당되므로, 한 가지 절대 원칙이 있습니다. 하나의 worker는 한 번에 하나의 service만 담당하며, 한 service에서 다른 service로 넘겨지는 일은 결코 없습니다. ClickHouse에 접속하는 방식은 전혀 달라지지 않습니다. 클라이언트는 기존 authentication을 사용해 그대로 service endpoint에 연결하며, 사용자를 대신해 worker와 통신하는 것은 service뿐입니다. worker에는 고객이 직접 접근할 수 있는 endpoint가 없습니다.- worker당 하나의 service: worker는 임대 기간 동안 단일 service에만 임대됩니다. 두 개의 service가 하나의 worker를 동시에 공유하는 일은 없습니다.
- service 간 재사용 없음: 임대가 종료되면 해당 worker는 삭제되고 새로운 worker로 대체됩니다. worker가 다른 service에 재할당되는 일은 없습니다.
- 영속 데이터 없음: worker는 영속 스토리지를 보유하지 않으며, 임대가 종료되면 함께 사라집니다.
- service와 동일한 region: worker는 이를 임대하는 service와 동일한 region에서 실행되며, 엄격한 데이터 레지던시 규칙을 따릅니다.
- 기존 access controls가 그대로 적용됨: IP 액세스 목록과 private endpoints는 이전과 완전히 동일하게 service endpoint를 제어합니다. On-Demand Compute는 사용자가 별도로 구성하거나 보호해야 할 endpoint를 추가하지 않습니다.
- 기존 authentication과 RBAC 사용: 쿼리는 해당 service의 다른 모든 쿼리와 동일한 USER 및 privileges로 실행됩니다. worker는 별도의 아이덴티티나 permission 모델을 가지지 않습니다.
네트워크 격리
worker가 서비스에 임대되어 있는 동안 플랫폼은 해당 worker와 서비스 간의 네트워크 트래픽만 허용하고 그 외의 모든 트래픽은 차단합니다. 이 제한은 query engine이 아니라 네트워크 계층에서 적용되므로 쿼리, 쿼리 설정, 최적화기가 생성한 계획과 무관하게 동작합니다.- 사용자의 서비스만 해당 worker에 연결할 수 있습니다. 이 경로는 worker의 현재 임대 기간 동안, 그리고 해당 서비스 하나에 대해서만 존재합니다.
- 할당되지 않은 worker에는 연결할 수 없습니다. 풀에서 대기 중인 worker는 임대되기 전까지 어떤 서비스와도 오가는 네트워크 경로가 없습니다.
- 서로 다른 서비스에 임대된 worker끼리는 연결할 수 없습니다. 동일한 임대에 속한 worker들은 서로 plan stages와 중간 결과를 주고받습니다. 서로 다른 임대에 속한 worker들은 같은 풀을 공유하더라도 서로 격리된 상태를 유지합니다.
- 경로는 worker와 함께 제거됩니다. 임대를 종료하면 worker가 삭제되고, 트래픽이 도달할 수 있었던 유일한 대상도 함께 사라집니다.
- request 경로는 최소한으로 유지됩니다. 사용자의 서비스는 worker를 임대하고 갱신하기 위해 worker assignment service에 접근합니다. 이 경로로는 쿼리 데이터가 전달되지 않으며, assignment API로만 제한됩니다.
내부 인증 및 권한 부여
네트워크 격리는 무엇이 worker에 도달할 수 있는지를 통제합니다. 인증은 caller가 worker에 도달한 뒤 무엇을 할 수 있는지를 통제하며, 두 가지는 서로 독립적으로 적용됩니다. 즉, caller는 두 조건을 모두 충족해야 합니다. 사용자의 service, worker 할당 service, worker 간의 모든 connection은 인증을 거칩니다. 어떤 것도 기본적으로 신뢰되지 않으며, 모든 자격 증명은 플랫폼이 발급하여 임대 단위로 배포합니다.- worker당 하나의 자격 증명: worker가 service에 임대될 때, 플랫폼은 각 worker마다 고유한 서명된 token을 발급합니다. 각 token은 해당 worker 하나에 대해서만, 그리고 사용자의 service에 대해서만 유효합니다.
- 짧은 수명과 임대 연동: token은 이를 발급한 임대와 함께 만료됩니다. 임대를 갱신하면 새 token이 발급되고, 임대가 종료되면 해당 token은 더 이상 어떤 것도 인증하지 못합니다.
- 플랫폼을 통한 검증: worker는 request에 담겨 전달된 값을 그대로 신뢰하지 않고, 제시된 token을 플랫폼의 아이덴티티 service를 통해 검사합니다.
이러한 자격 증명은 ClickHouse Cloud가 쿼리를 실행하는 방식에 관한 내부 요소입니다. 클라이언트에 노출되는 일은 결코 없으며, ClickHouse에 인증하는 방식과도 무관합니다. 클라이언트는 기존 자격 증명으로 계속 연결하고, 쿼리 privilege는 여전히 사용자 service의 RBAC에 의해 통제됩니다.
FAQ
On-Demand Compute는 오픈 소스입니까?
On-Demand Compute는 오픈 소스입니까?
아니요. 이는 ClickHouse Cloud 아키텍처로, ClickHouse 서버(distributed plan), data plane(worker 풀 및 임대), 컨트롤 플레인으로 구성됩니다. 실험적
make_distributed_plan 설정과 CBO는 ClickHouse OSS에도 있지만, 공유 worker 풀과 stateless 실행은 Cloud에서만 제공됩니다.비공개 프리뷰에 참여하려면 특정 버전이 필요합니까?
비공개 프리뷰에 참여하려면 특정 버전이 필요합니까?
예. 비공개 프리뷰 기간에 사용되는 버전은 커스텀 빌드입니다. 프리뷰 기간 중 추가 업그레이드가 필요할 수 있습니다.
가격 정책은 어떻게 됩니까?
가격 정책은 어떻게 됩니까?
현재 공개할 수 있는 가격 정책은 없습니다. 다만 비공개 프리뷰 기간에는 이 기능을 무료로 사용할 수 있습니다. 가격 책정 철학은 ClickHouse Cloud와 동일합니다. 즉, 스캔한 데이터나 읽은 행 수가 아니라 사용한 컴퓨트에 대해 과금합니다. 정확한 요율은 가격 정책 적용 전에 공개될 예정입니다.
production 환경에서 사용할 수 있습니까?
production 환경에서 사용할 수 있습니까?
실제 workload를 실행할 수는 있지만, 이는 비공개 프리뷰입니다. 알려진 제한 사항과 아직 알려지지 않은 제한 사항이 있으며, worker 풀 availability에 대한 SLO/SLA는 제공되지 않습니다.
서비스의 자동 스케일링과는 어떻게 다릅니까?
서비스의 자동 스케일링과는 어떻게 다릅니까?
자동 스케일링은 기본 서비스에 할당된 컴퓨트를 변경합니다. 반면 비공개 프리뷰 기간의 On-Demand Compute는 기본 서비스 크기를 변경하지 않고, 조건을 충족하는
SELECT 쿼리가 관리형 풀의 worker를 일시적으로 사용할 수 있도록 합니다. 즉, 자동 스케일링은 상시 서비스 용량을 관리하고, On-Demand Compute는 특정 workload에 일시적인 컴퓨트를 제공합니다.질문은 어디에 할 수 있습니까?
질문은 어디에 할 수 있습니까?
account team에 문의하시면 On-Demand Compute 담당 제품 매니저를 연결해 드립니다.
버그는 어디에 보고할 수 있습니까?
버그는 어디에 보고할 수 있습니까?
support 티켓(severity 3)을 열거나 제품 매니저에게 보고하십시오.
query_id, service ID, 전체 exception을 함께 기재하십시오.다른 ClickHouse Cloud 서비스가 제 쿼리를 실행하는 worker에 접근할 수 있습니까?
다른 ClickHouse Cloud 서비스가 제 쿼리를 실행하는 worker에 접근할 수 있습니까?
아니요. worker가 사용자의 서비스에 임대되어 있는 동안 플랫폼은 해당 worker와 사용자의 서비스 간 트래픽만 허용하고, 다른 모든 서비스의 트래픽은 차단합니다. 할당되지 않은 worker와 다른 서비스에 임대된 worker에는 사용자의 서비스로 연결되는 네트워크 경로가 없습니다. 네트워크 격리를 참조하십시오.
쿼리가 완료된 후 해당 worker가 다른 서비스에서 재사용됩니까?
쿼리가 완료된 후 해당 worker가 다른 서비스에서 재사용됩니까?
아니요. 임대가 종료되면 해당 worker는 다음 서비스로 넘겨지지 않고 폐기되며, 새로운 worker로 대체됩니다.
ClickHouse BYOC 또는 ClickHouse Private에서도 사용할 수 있습니까?
ClickHouse BYOC 또는 ClickHouse Private에서도 사용할 수 있습니까?
아니요. 비공개 프리뷰는 ClickHouse BYOC 또는 ClickHouse Private에서는 제공되지 않습니다.