本文介绍使用 TCHouse-C 前需要了解的核心概念。分为基础设施层和数据引擎层两个部分,帮助您快速建立对产品的整体认知。
基础设施概念
地域(Region)
指 TCHouse-C 集群所在的物理地理区域(如北京、上海、广州、新加坡等)。不同地域之间网络完全隔离,跨地域数据访问需通过公网或专线。集群创建后不可更换地域,请根据业务用户分布就近选择。
可用区(Availability Zone)
同一地域内电力和网络相互独立的物理数据中心,在同一地域内选择不同可用区可提升容灾能力。
集群(Cluster)
TCHouse-C 的基本服务单元。一个集群由以下组件构成:
组件 | 说明 |
ClickHouse 计算节点 | 负责数据存储和查询计算,可包含 1 个或多个分片 |
ZooKeeper/ClickHouse Keeper 管理节点 | 负责分布式协调,管理副本同步、DDL 操作等元数据 |
CLB 负载均衡 | 提供统一的集群访问入口,自动分发查询请求 |
分片(Shard)
TCHouse-C 将海量数据水平切分后分散到不同节点,每个节点承载数据的一部分。分片是数据水平扩展的基本单位。
模式 | 分片与节点的关系 |
单副本(非高可用) | 1 个分片 = 1 个节点 |
双副本(高可用) | 1 个分片 = 2 个节点(互为副本) |
副本(Replica)
为保障数据安全和服务高可用,TCHouse-C 支持将同一分片的数据冗余存储在两个节点上。两个节点互为副本,数据实时同步。
高可用(High Availability)
高可用模式下,每个分片配置两个副本。当某个节点发生故障时,查询自动路由到副本节点,实现用户无感知的故障切换,保障服务连续性。
说明:
生产环境请务必选择高可用模式。非高可用模式(单副本)适用于开发测试或对可用性要求不高的场景。
数据引擎概念
以下概念源自 ClickHouse 数据引擎,是理解 TCHouse-C 数据模型的关键。
表引擎(Table Engine)
表引擎决定了数据如何存储、索引、是否支持副本等核心行为。TCHouse-C 支持 ClickHouse 的完整引擎家族,最常用的包括:
引擎 | 说明 | 适用场景 |
MergeTree | 基础列式存储引擎,支持主键排序、分区、数据生命周期管理 | 单副本场景下的通用分析表 |
ReplicatedMergeTree | MergeTree 的副本版本,通过 ZooKeeper 实现跨节点数据同步 | 高可用场景下的标准选择 |
Distributed | 分布式路由表,将查询分发到所有分片并汇总结果 | 跨分片的全局查询入口 |
MaterializedView | 物化视图,数据写入时自动触发聚合计算并存储结果 | 预聚合加速、实时指标计算 |
本地表 vs 分布式表
类型 | 说明 |
本地表(Local Table) | 实际存储数据的表,每个分片上各有一份,使用 MergeTree 或 ReplicatedMergeTree 引擎 |
分布式表(Distributed Table) | 逻辑路由表,不存储数据,将查询自动分发到各分片的本地表并合并结果 |
说明:
数据写入推荐直接写入本地表(或通过分布式表路由写入),查询通过分布式表进行,以获得全局视图。
分区(Partition)
在表引擎层面,数据可按某个字段(通常是日期)进行分区。分区的好处:
查询时自动裁剪无关分区,减少扫描数据量;
支持按分区快速删除历史数据(
ALTER TABLE ... DROP PARTITION);分区粒度建议按月或按天,避免分区数过多导致元数据膨胀。
数据压缩
ClickHouse 默认对列式数据进行高效压缩,TCHouse-C 支持 LZ4(默认,速度优先)和 ZSTD(压缩比优先)两种算法。实测典型业务数据压缩比可达 10:1,大幅降低存储成本。
概念关系总览
--基础设施层(集群 = 三层架构)--集群 (Cluster)├── 接入层:CLB 负载均衡 + TCP/MySQL/HTTP/HTTPS 端口├── 计算层:│ ├── 分片 1 (Shard 1) - 副本 A、B(计算节点, 本地表 + 数据)│ ├── 分片 2 (Shard 2) - 副本 A、B(计算节点, 本地表 + 数据)│ └── .......└── 协调层:ZooKeeper / ClickHouseKeeper x 3--数据引擎层(逻辑对象、运行与集群之上)--分布式表(Distributed Table)├── 引擎:Distributed├── 不存储数据├── 写入:按 sharding_key 路由到个分片的本地表└── 查询:分发到所有分片并执行,汇总结果返回
术语字典
术语 | 说明 |
标准版 | 存算一体部署形态,计算与存储一体部署。 |
弹性版 | 存算分离部署形态,计算节点无状态、数据持久化到共享托管存储,支持按计算资源组弹性伸缩。 |
计算资源组 | 弹性版中计算能力的组织与弹性伸缩单元;用户可新建自定义资源组以隔离不同业务负载。命名规范:6–24 个字符,仅支持小写字母/数字/下划线,以字母或数字开头和结尾,创建后不可修改。 |
共享托管存储 | 弹性版持久化数据的存储层,多个计算节点共享访问,按存储资源用量计费。 |
存储资源用量 | 弹性版托管存储中实际占用的数据量,作为存储计费依据;因统计机制存在约 2~3 小时的更新延迟。 |
存储容量包 | 用于抵扣存储资源用量的预付费资源包,购买后按容量抵扣托管存储用量。 |
Shard(分片) | 数据的逻辑分片。弹性版采用单 Shard 结构。 |
Replica(副本) | 计算副本,承载查询与写入。弹性版副本由系统统一管理。 |
缓存空间 | 弹性版计算节点本地盘/云硬盘,用于缓存热数据加速查询,不持久化数据本体。 |
Common 节点 | 承载协调/公共服务的节点,弹性版仅支持 ClickHouse Keeper。 |
ClickHouseKeeper / ZooKeeper | 分布式协调服务,管理副本元数据与一致性。弹性版强制高可用部署。 |
冷热分层 | 依数据访问热度自动分层存储的能力,弹性版默认开启。 |