
# 基本概念
#### HBase表
HBase的表是三个维度排序的映射。从行主键、列主键和时间戳映射为单元格的值。所有的数据存储在HBase的表单元格中。
#### 列
HBase表的一个维度。列名称的格式为"\<family\>:\<label\>"，\<family\>和\<label\>为任意字符组合。表由\<family\>的集合组成（\<family\>又称为列族）。HBase表中的每个列都归属于某个列族。
#### 列族
列族是预定义的列集合，存储在HBase Schema中。如果需要在列族下创建一些列，首先需创建列族。列族将HBase中具有相同性质的数据进行重组，且没有类型的限制。同一列族的每行数据存储在同一个服务器中。每个列族像一个属性，如压缩包、时间戳、数据块缓存等。
#### 时间戳
用于索引同一份数据的不同版本，时间戳的类型是64位整型。时间戳可以由HBase在数据写入时自动赋值或者由客户显式赋值。
#### 索引
CloudTable作为大数据存储服务，提供高效的kv随机查询能力。在此基础上，CloudTable服务引入自研的**分布式多维标签索引**能力，存储格式与计算基于位图进行。用户可以根据自身业务需求来定义HBase表中的哪些字段需要构建标签索引，用户写入数据时将自动生成标签数据。同时，标签索引基于Lucene的语法，提供高效的多维标签查询接口。可应用于用户画像、推荐系统、人工智能、时空数据等场景。
CloudTable服务支持标签索引能力，您只需要创建CloudTable集群，就可以在弹性云服务器（ECS）上开发客户端应用进行多维标签查询。
#### 分区
分区用于将数据划分成不同区间，逻辑上可以理解为将原始表划分成了多个子表，可以方便的按分区对数据进行管理。
#### 分桶
根据分桶列的Hash值将数据划分成不同的Bucket。
#### FE（Frontend）
主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
#### BE（Backend）
主要负责数据存储、查询计划的执行。数据会被切分成分片，在BE中多副本存储。
#### 副本
为了在异常情况下保证数据的安全性和服务的高可用性，云数据库ClickHouse提供了副本机制，将单台服务器的数据冗余存储在两台或多台服务器上。
#### ClickHouse分片
在超大规模海量数据处理场景下，单台服务器的存储与计算资源可能会成为瓶颈。为了进一步提高服务效率，云数据库ClickHouse将海量数据分散存储至多台服务器上，每台服务器只存储和处理海量数据的一部分。在这种架构下，每台服务器被称为一个分片（Shard）。
#### Doris数据分片
Doris表按两层结构进行数据划分，分别是分区和分桶。
每个分桶文件就是一个数据分片（Tablet），Tablet是数据划分的最小逻辑单元。每个Tablet包含若干数据行。各个Tablet之间的数据没有交集，并且在物理上是独立存储的。
一个Tablet只属于一个Partition，相应的多个Tablet在逻辑上归属于不同的分区（Partition）。而一个Partition包含若干个Tablet。因为Tablet在物理上是独立存储的，所以可以视为Partition在物理上也是独立。Tablet是数据移动、复制等操作的最小物理存储单元。
