Cassandra 文档

版本

DataStax 词汇表

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

A

反熵

节点上副本数据的同步,以确保数据新鲜。

近似最近邻 (ANN)

一种机器学习算法,它在数据集中找到与给定项目最相似的向量。

身份验证

建立用户或应用程序身份的过程。

授权

通过角色建立对数据库资源的权限的过程。

B

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

背压

在达到阈值后暂停或阻止传入请求的缓冲,直到缓冲请求的内部处理赶上来。

布隆过滤器

与每个 SSTable 关联的堆外结构,在执行任何磁盘 I/O 之前检查请求行的任何数据是否存在于 SSTable 中。

引导

新节点透明地加入集群的过程,从现有节点收集所需数据。

C

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

基数

列中唯一值的个数。例如,每个员工唯一的 ID 号列的基数很高,而员工邮政编码列的基数很低,因为多个员工可以有相同的邮政编码。

基数低的列上的索引可以提高读取性能,因为索引明显小于列。高基数列的索引可能会降低性能。如果您的应用程序需要搜索高基数列,则物化视图是理想的选择。

单元格

存储数据的最小增量。包含行-列交叉点中的值。

集群

使用八卦协议交换消息的两个或多个数据库实例。

聚类

存储引擎过程,它创建索引并根据索引按顺序保存数据。

聚类列

在表定义中,聚类列是复合主键定义的一部分的列。请注意,聚类列**不能**是第一列,因为该位置保留给分区键。列在单个分区内的多行中聚类。聚类顺序由复合主键定义中列的位置决定。

合并策略

将多个网络消息合并为单个数据包,用于发送到同一数据中心 (内部 DC) 中的节点或不同数据中心 (跨 DC) 中的节点的出站 TCP 连接。合并策略提供了一个带有待处理消息阻塞队列和用于发送消息的输出集合。

数据的最小增量。包含名称、值和时间戳。

列族

行的容器,类似于关系系统中的表。在 CQL 3 中称为

提交日志

数据库将更改后的数据追加到该文件中的文件,以便在硬件故障时进行恢复。

压缩

合并SSTable、丢弃墓碑并重新生成 SSTable 索引的过程。可用的压缩策略是

复合分区键

由多个列组成的分区键。

复合主键

主键由分区键(决定数据存储的节点)和一个或多个其他组成,这些列决定聚类。

一致性

集群中副本上数据的同步。一致性分为

一致性级别

一个设置,通过确认写入或响应读取请求的集群副本数量来定义成功的写入或读取。

协调节点

根据集群配置的 snitch 确定环中哪些节点应该获得请求的节点。

余弦相似度

一种度量多维空间中两个非零向量之间相似度的指标。它量化了向量之间角度的余弦;角度表示每个向量相对于彼此的方向和方向。零 (0) 表示完全不同。负一 (-1) 表示向量的完全相反方向。一 (1) 表示完全相似。

CQL shell

Cassandra 查询语言 shell (cqlsh) 实用程序。

跨数据中心转发

一种优化跨数据中心复制的技术,通过将数据从一个数据中心发送到另一个数据中心的节点。接收节点然后将数据转发到其数据中心中的其他节点。

D

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

数据中心

一组相关的节点,它们在集群内配置在一起,用于复制和工作负载隔离目的。不一定是单独的位置或物理数据中心。数据中心名称区分大小写,不能更改。

数据类型

一种特定类型的数据项,由它可以取的值或可以对其执行的操作定义。

反规范化

反规范化是指通过添加冗余数据或对数据进行分组来优化数据库读取性能的过程。此过程是通过在多个表中复制数据或对查询进行分组来完成的。

E

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

EBNF

EBNF (扩展巴科斯-诺尔范式) 语法表达了一种上下文无关语法,它正式描述了一种语言。EBNF 通过扩展中允许的额外运算符扩展了其前身 BNF (巴科斯-诺尔范式)。语法 (铁路) 图表以图形方式描绘了 EBNF 语法。

嵌入

机器学习中的一种数学技术,其中复杂的高维数据表示为低维空间中的点。创建嵌入的过程保留了原始数据的相关属性,例如距离和相似度,从而使计算处理更容易。例如,在自然语言处理 (NLP) 中,具有相似含义的词可以在缩减的空间中彼此靠近,从而便于它们在机器学习模型中的使用。

欧几里得距离

两个点之间的坐标几何非负距离度量,量化表示为向量的这些数据点之间的相似度或差异。使用它将生成的样本与真实数据点进行比较。

最终一致性

数据库最大限度地提高了可用性和分区容忍度。数据库通过在读取操作期间更新所有副本并定期检查和更新任何未直接访问的副本,来确保最终数据一致性。更新和检查确保任何查询始终返回结果集的最新版本,并且任何给定行的所有副本最终都变得彼此完全一致。

F

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

G

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

垃圾收集器

一个 Java 后台进程,当程序不再使用堆内存时释放堆内存。Java 分配和清理内存的主要算法是连续标记清除 (CMS) 和垃圾优先 (G1)。

八卦

一种点对点通信协议,用于在节点之间交换位置和状态信息。

H

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

HDD

硬盘驱动器 (HDD) 或旋转磁盘是一种数据存储设备,用于使用一个或多个刚性快速旋转的磁盘存储和检索数字信息。与SSD相比。

HDFS

Hadoop 分布式文件系统 (HDFS) 将数据存储在节点上以提高性能。HDFS 是 Hadoop 发行版中除了 MapReduce 之外的一个必要组件。

净空

除正在处理的数据所占用的空间外,进程(如压缩)所需的磁盘空间量。

提示

除了读取修复和完整/增量反熵修复之外,Cassandra 实现最终一致性保证(所有更新最终都会被所有副本接收)的三种方式之一。

I

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

幂等

可以多次执行而不会改变结果的操作,例如多次执行相同的更新而不会影响结果。

不可变

磁盘上无法覆盖的数据。

索引

一种本机功能,用于查找数据库中的列,不涉及使用主键。

J

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

Jaccard 相似度

度量生成数据和真实数据中两个特征集或元素集之间的相似度。数学计算是两个集合交集的大小除以它们并集的大小,范围从零 (0) 到一 (1)。一 (1) 表示相同的集合。

K

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

键空间

一个命名空间容器,它定义了数据如何在每个数据中心的节点上复制。

L

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

分层压缩策略 (LCS)

这种压缩策略创建固定大小的、相对较小的 SSTable,并将它们分组到不同的层级中。在每个层级内,SSTable 保证不重叠。每个层级(L0、L1、L2 等)的大小是前一个层级的十倍。由于 SSTable 持续被压缩到越来越高的层级,因此在更高层级上的磁盘 I/O 比在更低层级上更加均匀和可预测。在每个层级中,行键都会合并到下一个层级中不重叠的 SSTable 中。此过程提高了读取性能,因为数据库可以确定每个层级中哪些 SSTable 需要检查以确定行键数据的是否存在。

线性一致性

线性一致性也称为可序列化一致性,它是一种限制,即在另一个操作完成之前,不能执行任何操作。

数据库支持轻量级事务,以确保写入操作的线性一致性。轻量级事务的第一阶段在 SERIAL 一致性级别上运行,并遵循 Paxos 协议以确保所需的操作成功。如果此阶段成功,则写入操作将在为该操作指定的 一致性级别上执行。在 SERIAL 一致性级别上执行的读取操作不会执行数据库内置的读取修复操作。

监听地址

绑定到该地址或接口,并告诉其他 Cassandra 节点连接到该节点。

M

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

机器学习 (ML)

机器学习是人工智能 (AI) 和计算机科学的一个分支,它使用和开发能够在没有明确指令的情况下学习和适应的计算机系统。ML 使用算法和统计模型来分析数据并识别模式,做出决策并改进其系统。

MapReduce

Hadoop 的并行处理引擎,可以快速处理大型数据集。它是 Hadoop 发行版中除了 MapReduce 之外的一个必要组件。

物化视图

物化视图是一个表,其中包含从另一个基础表自动插入和更新的数据。它具有与基础表不同的主键,允许实现不同的查询。

Memtable

一个特定于数据库表的内存数据结构,类似于写回缓存。

变异

变异是指插入或删除操作。

N

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

自然语言处理 (NLP)

帮助计算机解释和共享人类语言,以便为用户提供最佳的使用体验。

节点

一个 Java 虚拟机(一个平台无关的执行环境,将 Java 字节码转换为机器语言并执行它),它运行许可软件的实例。

节点修复

一个使副本上的所有数据一致的过程。

规范化

规范化指的是一系列用于消除冗余并降低数据库模式中数据不一致可能性的步骤。在 DataStax Enterprise 中,此过程效率低下,因为在多个表中联接数据以进行查询需要访问更多节点。

O

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

OLTP

联机事务处理 (OLTP) 的特点是大量短的在线事务,用于数据输入和检索。

P

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

分区

分区是可以通过 寻址的数据集合。这些数据驻留在 Cassandra 集群中的一个节点上。分区根据 复制因子 的指定在多个节点上进行复制。

分区索引

主键列表和数据起始位置。

分区键

分区键表示一个逻辑实体,它帮助 Cassandra 集群知道某些请求的数据驻留在哪个节点上。

分区键是在主键定义中声明的第一个列。在复合键中,多列可以声明构成主键的列。

分区范围

分区的限制,根据配置的分区器而有所不同。Murmur3Partitioner(默认)范围为 -263 到 +263,RandomPartitioner 范围为 0 到 2127-1。

分区摘要

分区索引 的一个子集。默认情况下,每 128 个分区键中会采样 1 个分区键。

分区器

将数据分布到集群中。分区器类型包括 Murmur3Partitioner(默认)、RandomPartitioner 和 OrderPreservingPartitioner。

模块/ROOT/pages/glossary.adoc 中的未解析的 include 指令 - include::ROOT:partial$persistent-volume.adoc[]

模块/ROOT/pages/glossary.adoc 中的未解析的 include 指令 - include::ROOT:partial$persistent-volume-claim.adoc[]

主键

分区键。一个或多个唯一标识 中行的列。

R

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

范围移动

分配给节点的令牌范围发生变化。

读取修复

一个使用最新版本的频繁读取数据来更新数据库副本的过程。

副本

整个数据库的一部分的副本。每个节点都保存一些副本。

副本放置策略

一个规范,用于确定每行数据的副本。

复制因子 (RF)

集群中副本的总数,缩写为 RF。复制因子为 1 表示集群中只有一份每行的副本。如果包含该行的节点出现故障,则无法检索该行。复制因子为 2 表示每行有两份副本,并且每份副本都在不同的节点上。所有副本都同等重要;没有主副本或主副本。

复制组

请参见 数据中心

角色

分配给用户的权限集,限制他们对数据库资源的访问权限。在使用内部身份验证时,角色也可以具有密码,并代表单个用户、DSE 客户端工具或应用程序。

滚动重启

在集群中升级节点期间执行的零停机时间过程。节点会逐个升级和重启,而其他节点继续在线运行。

1) 具有相同主键的列。
2) 存储引擎中每种列组合的单元集合。

行缓存

一个数据库组件,用于提高读取密集型操作的性能。行缓存将最近读取的本地 SSTable 中的行存储在堆外内存中。每个本地读取操作都会将其结果集存储在行缓存中,并将其发送到协调器节点。下一个读取操作首先检查行缓存。如果所需数据存在,则数据库会立即将其返回。此初始读取可以节省在布隆过滤器、分区键缓存、分区摘要、分区索引和 SSTable 中进行进一步搜索的时间。

数据库使用 LRU(最近最少使用)驱逐策略来确保行缓存始终使用最常访问的行进行刷新。可以在 cassandra.yaml 文件中配置行缓存的大小。

S

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

种子

种子节点或种子节点用于引导新加入集群的节点的八卦过程。种子节点不提供任何其他功能,并且不是集群的单点故障。

模块/ROOT/pages/glossary.adoc 中的未解析的 include 指令 - include::ROOT:partial$segment.adoc[]

可序列化一致性

请参见 线性一致性

SizeTieredCompactionStrategy (STCS)

默认压缩策略。当磁盘上存在多个类似大小的 SSTable 时,此策略会触发次要压缩,如表子属性 min_threshold 所配置。次要压缩不涉及键空间中的所有表。另请参见相关 CQL 文档中的“STCS 压缩子属性”。

切片

分区中的一组聚簇列,您可以使用条件 WHERE 子句等将其作为一个集合进行查询。

Snitch

节点 IP 地址到物理和虚拟位置(如机架和数据中心)的映射。请求路由机制会受到使用哪种 Snitch 类型的影响。

SSD

固态硬盘 (SSD) 是一种固态存储设备,它使用集成电路来持久存储数据。与 HDD 相比。

SSTable

排序字符串表 (SSTable) 是一个不可变的数据文件,数据库会定期将 Memtable 写入该文件。SSTable 按顺序存储在磁盘上,并为每个数据库表维护。

静态列

一个由分区的所有行共享的特殊列。

流式传输

一个处理集群中节点之间数据交换的组件。它是 SSTable 文件的一部分。

示例包括

  • 在引导新节点时,新节点会使用流式传输从现有节点获取数据。

  • 在运行 nodetool repair 时,节点会使用流式传输交换不同步的数据。

  • 在从备份中批量加载数据时,sstableloader 会使用流式传输来完成任务。

强一致性

当数据库读取数据时,它会在返回结果之前执行 读取修复

超级用户

超级用户是一个角色属性,它提供根数据库访问权限。超级用户对所有对象拥有所有权限。Apache Cassandra 数据库默认包含超级用户角色 cassandra,其密码为 cassandra。此帐户使用 QUORUM 一致性级别运行查询,包括登录。建议用户为部署创建超级用户,并删除 cassandra 角色。

T

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

按名称排序的列集合,通过行获取。行由列组成,并具有主键;键的第一部分是列名。复合键的后续部分是定义表中列顺序的其他列名。

TimeWindowCompactionStrategy (TWCS)

这种压缩策略根据一系列时间窗口压缩 SSTables。在当前时间窗口内,SSTables 会被压缩成一个或多个 SSTables。在当前时间窗口结束时,所有 SSTables 会被压缩成一个更大的 SSTable。压缩过程会在下一个时间窗口开始时重复。每个 TWCS 时间窗口包含指定范围内的数据,并包含不同数量的数据。

token

环上的一个元素,它取决于分区器。确定节点在环上的位置以及它负责的数据部分。Murmur3Partitioner(默认)的范围是 -263 到 +263。RandomPartitioner 的范围是 0 到 2127-1。

tombstone

行中指示列被删除的标记。在压缩过程中,标记的列会被删除。

TTL

生存时间 (TTL) 是插入列的值的可选过期日期。

可调一致性

数据库确保任何给定行的所有副本最终变得完全一致。对于需要立即和完全一致性的情况,可以调整数据库以对指定的运算、数据中心或集群提供 100% 的一致性。数据库无法针对所有数据和运算进行调整以实现完全一致性。

U

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

统一压缩策略 (UCS)

这种压缩策略根据一系列时间窗口压缩 SSTables。在当前时间窗口内,SSTables 会被压缩成一个或多个 SSTables。在当前时间窗口结束时,所有 SSTables 会被压缩成一个更大的 SSTable。压缩过程会在下一个时间窗口开始时重复。每个 TWCS 时间窗口包含指定范围内的数据,并包含不同数量的数据。

涵盖了分层、分级和时间窗口压缩策略的应用,包括在压缩层次结构的不同级别中分层和分级的组合。这种压缩可以在类似于[STCS](w = T4 与 STCS 的默认阈值 4 相匹配)、LCS(w = L10 与 LCS 的默认扇出因子 10 相匹配)的模式下工作,并且在与较大的分级扇出因子(例如 w = T20)一起使用时,也能很好地适用于时间序列工作负载。读密集型工作负载,尤其是无法从布隆过滤器或时间顺序中受益的工作负载(即宽分区非时间序列),最适合分层配置。写密集型、时间序列或键值工作负载最适合分级配置。

upsert

数据库中的更改,如果列存在,则更新行中指定的列。如果列不存在,则插入该列。

V

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

向量

表示特定对象或实体的浮点类型数组。

查看数据库中的数据以确定向量之间的距离。它们越接近,数据就越相似。距离越大,数据就越不相似。

Vnode

Vnode 是虚拟节点。通常,节点负责集群完整令牌范围内的单个分区范围。启用 vnodes 后,每个节点负责多个虚拟节点,有效地将分区范围分散到集群中的更多节点。启用 vnodes 可以降低热点或集群中一个节点过载的风险。

W

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

弱一致性

读取数据时,数据库在返回结果后执行读取修复

宽行

CQL 3 将其转置为熟悉的基于行的结果集的数据分区。

X、Y、Z

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X, Y, Z

僵尸

在删除后重新出现在数据库表中的行或单元格。如果节点长时间宕机,然后在未修复的情况下恢复,则可能会发生这种情况。

已删除的数据不会从数据库表中删除;它会用墓碑标记,直到压缩。在一个节点上创建的墓碑必须传播到包含已删除数据的节点。如果这些节点之一在发生这种情况之前宕机,则该节点可能无法接收最新的墓碑。如果该节点在恢复联机之前未修复,则数据库会找到未标记墓碑的项目,并将它们作为新数据传播到其他节点。

为了避免此问题,在将任何已恢复的节点重新加入其集群之前,请在该节点上运行 nodetool repair。