> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ClickHouse Cloud 架构

> 本页介绍 ClickHouse Cloud 的架构

export const PrivatePreviewBadge = () => {
  return <div className="privatePreviewBadge">
            <div className="privatePreviewIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M5.33301 6.66667V4.66667V4.66667C5.33301 3.194 6.52701 2 7.99967 2V2C9.47234 2 10.6663 3.194 10.6663 4.66667V4.66667V6.66667" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path d="M8.00033 9.33337V11.3334" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path fillRule="evenodd" clipRule="evenodd" d="M11.333 14H4.66634C3.92967 14 3.33301 13.4033 3.33301 12.6666V7.99996C3.33301 7.26329 3.92967 6.66663 4.66634 6.66663H11.333C12.0697 6.66663 12.6663 7.26329 12.6663 7.99996V12.6666C12.6663 13.4033 12.0697 14 11.333 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'私有预览'}
        </div>;
};

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

<Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/0fJmlhAIfr-a5jJ9/images/cloud/reference/architecture.webp?fit=max&auto=format&n=0fJmlhAIfr-a5jJ9&q=85&s=3548c8937a100197b708bde81410087d" size="lg" alt="Cloud 的架构" width="2048" height="1376" data-path="images/cloud/reference/architecture.webp" />

<div id="storage-backed-by-object-store">
  ## 基于对象存储的存储
</div>

* 几乎无限的存储容量
* 无需手动对数据进行分片
* 存储数据的成本显著更低，尤其适合访问频率较低的数据

<div id="compute">
  ## 计算资源
</div>

* 自动扩缩容和自动闲置：无需预先估算规模，也无需为峰值使用而过度配置
* 自动闲置和恢复：无人使用时，无需让闲置的计算资源持续运行
* 默认安全且高可用

<div id="administration">
  ## 管理
</div>

* 配置、监控、备份和计费均由我们代您处理。
* 成本控制默认已启用，您可以通过 Cloud 控制台进行调整。

<div id="service-isolation">
  ## 服务隔离
</div>

<div id="network-isolation">
  ### 网络隔离
</div>

所有服务在网络层彼此隔离。

<div id="compute-isolation">
  ### 计算隔离
</div>

所有服务都部署在各自的 Kubernetes 命名空间中的独立 pod (容器组) 内，并实现了网络级隔离。

<div id="storage-isolation">
  ### 存储隔离
</div>

所有服务都使用共享 bucket (AWS、GCP) 或存储容器 (Azure) 中的独立子路径。

对于 AWS，存储访问由 AWS IAM 控制，并且每个服务都有唯一的 IAM role。对于 Enterprise service，可启用 [CMEK](/zh/products/cloud/guides/security/cmek)，以提供更高级别的静态数据隔离。目前，CMEK 仅支持 AWS services。

对于 GCP 和 Azure，服务具备对象存储隔离 (所有服务都有各自的 bucket 或存储容器) 。

<div id="compute-compute-separation">
  ## Compute-compute separation
</div>

[Compute-compute separation](/zh/products/cloud/features/infrastructure/warehouses) 让您可以创建多个计算节点组，每个节点组都有各自的服务 URL，但共享同一个对象存储。这使您能够在共享同一份数据的前提下，隔离不同用例的计算资源，例如将读取与写入分离。它还支持根据需要对各个计算组进行独立扩缩容，从而更高效地利用资源。

<h2 id="on-demand-compute">
  按需计算
</h2>

<PrivatePreviewBadge />

按需计算会通过您现有的 ClickHouse Cloud 服务，从 ClickHouse 托管的资源池中临时为受支持的工作负载分配**工作线程**。您的服务负责身份验证并协调查询，而所分配的工作线程会在服务自身的计算资源之外，承担大部分符合条件的扫描、join 和聚合工作。该资源池由多个 ClickHouse Cloud 服务共享，但每个工作线程在同一时刻只服务于一个服务。

在私有预览期间，按需计算仅支持符合条件的 `SELECT` 查询。可用性为尽力而为，性能会有波动，且 ClickHouse Cloud 的 SLO 和 SLA 不适用于该功能。

[私有预览服务条款](https://clickhouse.com/legal/agreements/private-preview-terms-of-service)

<h2 id="concurrency-limits">
  并发限制
</h2>

您的 ClickHouse Cloud 服务对每秒查询数 (QPS) 没有限制。不过，每个副本的并发查询上限为 1000。QPS 最终取决于平均查询执行时间以及服务中的副本数量。

与自管理 ClickHouse 实例或其他数据库/数据仓库相比，ClickHouse Cloud 的一大优势在于，您可以通过[添加更多副本 (横向扩缩容) ](/zh/products/cloud/features/autoscaling/horizontal#manual-horizontal-scaling)轻松提升并发能力。
