本指南概述了 ClickHouse Cloud 在功能和运维方面的预期表现。虽然 ClickHouse Cloud 基于开源发行版 ClickHouse,但在架构和实现上可能存在一些差异。作为背景资料,你可能会对这篇介绍我们如何构建 ClickHouse Cloud的博文感兴趣。
ClickHouse Cloud 显著简化了运维负担,并降低了大规模运行 ClickHouse 的成本。您无需预先确定部署规模、为高可用配置复制、手动对数据进行分片、在工作负载增加时扩容服务器,或在不使用时将其缩容——这些都由我们代为处理。
这些优势得益于 ClickHouse Cloud 底层的架构设计:
- 计算与存储相互分离,因此可以分别沿不同维度自动扩缩容。这样一来,您无需在静态实例配置中对存储或计算资源进行过度预配。
- 基于对象存储的分层存储与多级缓存相结合,提供了近乎无限的扩展能力和良好的性价比,因此您无需预先规划存储容量,也不必担心高昂的存储成本。
- 默认启用高可用,且复制由系统透明管理,因此您可以专注于构建应用程序或分析数据。
- 默认启用针对持续变化工作负载的自动扩缩容,因此您无需预先确定服务规模,也无需在工作负载增加时扩容服务器,或在活动减少时手动将服务器缩容
- 默认启用针对间歇性工作负载的无缝休眠。我们会在一段时间无活动后自动暂停您的计算资源,并在有新查询到达时透明地重新启动,因此您无需为空闲资源付费。
- 高级扩缩容控制允许您设置自动扩缩容上限,以进一步控制成本;也可以设置自动扩缩容下限,为有特定性能要求的应用程序预留计算资源。
ClickHouse Cloud 提供对 ClickHouse 开源发行版中一系列精选功能的访问。下表列出了当前在 ClickHouse Cloud 中已禁用的部分功能。
ClickHouse Cloud 默认提供高可用的副本服务。因此,所有数据库引擎和表引擎都属于“Replicated”类型。你无需显式指定“Replicated”——例如,在 ClickHouse Cloud 中,ReplicatedMergeTree 与 MergeTree 的效果相同。
支持的表引擎
- ReplicatedMergeTree (默认,未指定时使用)
- ReplicatedSummingMergeTree
- ReplicatedAggregatingMergeTree
- ReplicatedReplacingMergeTree
- ReplicatedCollapsingMergeTree
- ReplicatedVersionedCollapsingMergeTree
- MergeTree (会转换为 ReplicatedMergeTree)
- SummingMergeTree (会转换为 ReplicatedSummingMergeTree)
- AggregatingMergeTree (会转换为 ReplicatedAggregatingMergeTree)
- ReplacingMergeTree (会转换为 ReplicatedReplacingMergeTree)
- CollapsingMergeTree (会转换为 ReplicatedCollapsingMergeTree)
- VersionedCollapsingMergeTree (会转换为 ReplicatedVersionedCollapsingMergeTree)
- URL
- View
- MaterializedView
- GenerateRandom
- Null
- Buffer
- Memory
- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
- Kafka
ClickHouse Cloud 支持 HTTPS、原生接口以及 MySQL wire 协议。对 Postgres 等更多接口的支持即将上线。
字典是在 ClickHouse 中加速查找操作的常用方式。ClickHouse Cloud 目前支持基于 PostgreSQL、MySQL、远程和本地 ClickHouse 服务器、Redis、MongoDB 以及 HTTP 源的字典。
我们支持在云环境中通过联邦 ClickHouse 查询实现跨集群通信,也支持与外部自管理 ClickHouse 集群进行通信。ClickHouse Cloud 目前支持使用以下集成引擎的联邦查询:
- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
目前尚不支持通过某些外部数据库和表引擎进行联邦查询,例如 SQLite、ODBC、JDBC、Redis、HDFS 和 Hive。
ClickHouse Cloud 中的用户自定义函数目前处于Public Beta阶段。
重要ClickHouse Cloud 中的 UDFs 不会继承用户级设置,而是以默认系统设置执行。
这意味着:
- 会话级设置 (通过
SET 语句设置) 不会传递到 UDF 的执行上下文中
- 用户 profile 设置不会被 UDFs 继承
- 查询级设置在 UDF 执行期间不生效
为确保服务部署的稳定性,ClickHouse Cloud 服务默认禁用 Experimental 功能。
ClickHouse Cloud 目前暂不支持命名集合。
以下是 ClickHouse Cloud 服务的默认设置。其中部分设置为固定值,以确保服务正常运行;其余设置则可以调整。
max_parts_in_total: 10,000
MergeTree 表的 max_parts_in_total 设置默认值已从 100,000 下调至 10,000。之所以做出这一调整,是因为我们观察到,大量数据分区片段很可能会导致云环境中服务启动缓慢。大量 parts 通常表明分区键划分得过细,而这往往是无意中造成的,应当避免。此次默认值调整将有助于更早发现这类情况。
max_concurrent_queries: 1,000
将此服务器级设置从默认的 100 提高到 1000,以支持更高的并发能力。
这样一来,所提供的各层级服务可支持的并发查询数将为 副本数量 * 1,000。
对于仅限单个副本的基础版服务,可支持 1000 个并发查询;对于 Scale 和 Enterprise,
则可支持 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 证书身份验证在数据库内启用以下安全功能。
我们正在评估 ClickHouse Cloud 中许多其他功能的用户需求。如果你有反馈,或希望申请某项特定功能,请在此提交。