跳到主要内容
跳到主要内容

词汇表

原子性

原子性确保一个事务(数据库操作系列)被视为一个单独且不可分割的单元。这意味着事务内的所有操作要么全部执行,要么都不执行。原子事务的一个例子是将资金从一个银行账户转移到另一个账户。如果转账的任何一步失败,则事务失败,资金仍停留在第一个账户中。原子性确保没有资金丢失或产生。

块是组织数据处理和存储的逻辑单元。每个块包含列式数据,这些数据一起处理以提高查询执行的性能。通过以块的形式处理数据,ClickHouse有效利用CPU核心,最小化缓存未命中,并促进矢量化执行。ClickHouse使用多种压缩算法,如LZ4、ZSTD和Delta,以压缩块中的数据。

集群

一组节点(服务器),共同存储和处理数据。

客户自管理加密密钥

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

字典

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

分布式表

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

粒度

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

增量物化视图

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

轻量级更新

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

物化视图

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

MergeTree

在ClickHouse中,MergeTree是一种旨在支持高数据摄取率和大量数据的表引擎。它是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的一项功能,允许在特定时间段后自动移动、删除或合并列或行。这使您可以更有效地管理存储,因为您可以删除、移动或归档不再需要频繁访问的数据。