跳至主要内容
跳至主要内容

术语表

原子性

原子性确保一个事务(一系列数据库操作)被视为一个单一的、不可分割的单元。这意味着事务内的所有操作要么全部发生,要么全部不发生。原子性事务的一个例子是从一个银行账户向另一个银行账户转账。如果转账的任何一步失败,事务就会失败,资金会留在第一个账户中。原子性确保不会丢失或凭空产生资金。

块是组织数据处理和存储的逻辑单元。每个块包含列式数据,这些数据一起处理以提高查询执行期间的性能。通过以块为单位处理数据,ClickHouse 通过最大限度地减少缓存未命中并促进向量化执行来有效地利用 CPU 核心。ClickHouse 使用各种压缩算法,例如 LZ4、ZSTD 和 Delta,来压缩块中的数据。

集群

一组协同工作以存储和处理数据的节点(服务器)。

CMEK

客户管理的加密密钥 (CMEK) 允许客户使用他们的密钥管理服务 (KMS) 密钥来加密 ClickHouse 磁盘数据密钥,并保护静态数据。

字典

字典是键值对的映射,对于各种类型的参考列表非常有用。它是一个强大的功能,允许在查询中有效地使用字典,通常比使用引用表的 JOIN 更有效。

分布式表

ClickHouse 中的分布式表是一种特殊类型的表,它本身不存储数据,而是为集群中多个服务器上的分布式查询处理提供统一视图。

粒度

粒度是未压缩块中的行批次。在读取数据时,ClickHouse 访问粒度,而不是单个行,这使得在分析工作负载中更快地处理数据成为可能。默认情况下,一个粒度包含 8192 行。主索引包含每个粒度的一个条目。

增量物化视图

在 ClickHouse 中,增量物化视图是一种在插入时处理和聚合数据的物化视图。当新数据插入到源表时,物化视图仅对新插入的块执行预定义的 SQL 聚合查询,并将聚合结果写入目标表。

轻量级更新

ClickHouse 中的轻量级更新是一项实验性功能,它允许您使用标准的 SQL UPDATE 语法更新表中的行,但与传统变异不同,它不会重写整个列或数据部分,而是创建仅包含更新的列和行的“补丁部分”。这些更新通过应用补丁在 SELECT 查询中立即可见,但物理数据仅在后续合并期间更新。

标记文件

ClickHouse 中的标记文件是一种存储“标记”或索引条目的文件,这些条目有助于 ClickHouse 快速找到数据文件中特定数据范围的位置。

物化视图

ClickHouse 中的物化视图是一种机制,它会在数据插入到源表时自动运行查询,并将转换或聚合的结果存储在单独的目标表中,以加快查询速度。

MergeTree

MergeTree 是 ClickHouse 中的一种表引擎,专为高数据摄取速率和大数据量而设计。它是 ClickHouse 中的核心存储引擎,提供列式存储、自定义分区、稀疏主索引以及对后台数据合并的支持等功能。

变异

ClickHouse 中的变异是指修改或删除表中现有数据的一种操作,通常使用诸如 ALTER TABLE ... UPDATE 或 ALTER TABLE ... DELETE 之类的命令。变异被实现为异步后台进程,它重写受更改影响的整个数据部分,而不是就地修改行。

实时变异

ClickHouse 中的实时变异是一种机制,它允许在提交变异后立即在后续 SELECT 查询中看到更新或删除,而无需等待后台变异过程完成。

部分

存储在磁盘上的表数据部分的文件。这与分区不同,分区是使用分区键创建的表的逻辑划分。

分区键

ClickHouse 中的分区键是在创建表时在 PARTITION BY 子句中定义的 SQL 表达式。它确定数据如何在磁盘上逻辑地分组到分区中。分区键的每个唯一值形成其自身的物理分区,从而可以高效地执行数据管理操作,例如删除、移动或归档整个分区。

主键

在 ClickHouse 中,主键确定数据在磁盘上存储的顺序,并用于构建稀疏索引,从而加快查询过滤速度。与传统数据库不同,ClickHouse 中的主键不强制唯一性——多个行可以具有相同的主键值。

投影

ClickHouse 中的投影是一个隐藏的、自动维护的表,它以不同的顺序存储数据或进行预计算的聚合,以加快查询速度,尤其是那些过滤不在主主键中的列的查询。

可刷新物化视图

可刷新物化视图是一种物化视图,它会定期对整个数据集重新执行其查询,并将结果存储在目标表中。与增量物化视图不同,可刷新物化视图会按计划进行更新,并且可以支持复杂的查询,包括 JOIN 和 UNION,而没有限制。

副本

ClickHouse 数据库中存储的数据的副本。您可以拥有相同数据的任意数量的副本,以实现冗余和可靠性。副本与 ReplicatedMergeTree 表引擎结合使用,使 ClickHouse 能够在不同的服务器上保持数据的同步。

分片

数据的子集。ClickHouse 始终至少有一个分片用于您的数据。如果您没有在多个服务器上拆分数据,您的数据将存储在一个分片中。在多个服务器上分片数据可用于在您超出单个服务器的容量时划分负载。

跳过索引

跳过索引用于存储多个连续粒度级别的少量元数据,从而使 ClickHouse 能够避免扫描不相关的行。跳过索引为投影提供了一种轻量级的替代方案。

排序键

在 ClickHouse 中,排序键定义了磁盘上行的物理顺序。如果您没有指定主键,ClickHouse 将排序键用作主键。如果您同时指定了两者,则主键必须是排序键的前缀。

稀疏索引

当主索引包含一组行的条目而不是单个行时,这是一种索引类型。与一组行对应的条目称为标记。使用稀疏索引,ClickHouse 首先识别可能匹配查询的行组,然后单独处理它们以找到匹配项。因此,主索引足够小,可以加载到内存中。

表引擎

ClickHouse 中的表引擎决定了数据写入、存储和访问的方式。MergeTree 是最常用的表引擎,允许快速插入大量数据,这些数据在后台进行处理。

TTL

生存时间 (TTL) 是 ClickHouse 的一项功能,可以自动移动、删除或汇总在特定时间段后的列或行。这使您可以更有效地管理存储,因为您可以删除、移动或归档不再需要频繁访问的数据。

    © . This site is unofficial and not affiliated with ClickHouse, Inc.