基本概念

最近更新时间:2026-04-21 18:26:52

我的收藏
本文介绍使用 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)
实际存储数据的表,每个分片上各有一份,使用 MergeTreeReplicatedMergeTree 引擎
分布式表(Distributed Table)
逻辑路由表,不存储数据,将查询自动分发到各分片的本地表并合并结果
说明:
数据写入推荐直接写入本地表(或通过分布式表路由写入),查询通过分布式表进行,以获得全局视图。

分区(Partition)

在表引擎层面,数据可按某个字段(通常是日期)进行分区。分区的好处:
查询时自动裁剪无关分区,减少扫描数据量;
支持按分区快速删除历史数据(ALTER TABLE ... DROP PARTITION);
分区粒度建议按月或按天,避免分区数过多导致元数据膨胀。

数据压缩

ClickHouse 默认对列式数据进行高效压缩,TCHouse-C 支持 LZ4(默认,速度优先)和 ZSTD(压缩比优先)两种算法。实测典型业务数据压缩比可达 10:1,大幅降低存储成本。

概念关系总览

集群 (Cluster)
├── ZooKeeper 节点 × 3(协调服务)
├── 分片 1 (Shard 1)
│ ├── 副本 A(计算节点)── 本地表 + 数据
│ └── 副本 B(计算节点)── 本地表 + 数据(与 A 同步)
├── 分片 2 (Shard 2)
│ ├── 副本 A
│ └── 副本 B
└── 分布式表(Distributed Table)── 查询路由到所有分片