📜  Cassandra数据模型

📅  最后修改于: 2020-11-22 09:03:49             🧑  作者: Mango

Cassandra数据模型

Cassandra中的数据模型与通常在RDBMS中看到的完全不同。让我们看看Cassandra如何存储其数据。

Cassandra数据库分布在一起操作的多台计算机上。最外面的容器称为群集,其中包含不同的节点。每个节点都包含一个副本,如果发生故障,则由副本负责。 Cassandra以环形格式将节点排列在群集中,并为其分配数据。

键空间

键空间是Cassandra中数据的最外层容器。以下是Cassandra中Keyspace的基本属性:

  • 复制因子:它指定集群中将接收相同数据副本的计算机的数量。
  • 复制品放置策略:这是一种选择如何在环中放置复制品的策略。共有三种策略,例如:

1)简单策略(机架感知策略)

2)旧的网络拓扑策略(机架感知策略)

3)网络拓扑策略(数据中心共享策略)

  • 列族:列族放置在键空间下。键空间是一个或多个列族列表的容器,而列族是行集合的容器。每行包含有序的列。列族代表数据的结构。每个键空间至少有一个列族,经常有许多列族。

在Cassandra中,良好的数据模型非常重要,因为不良的数据模型会降低性能,尤其是当您尝试在Cassandra上实现RDBMS概念时。

Cassandra数据模型规则

数据建模目标

在Cassandra中进行数据建模时,您应该有以下目标:

  • 在群集中均匀分布数据:要在Cassandra群集的每个节点上均匀分布数据量,您必须选择整数作为主键。基于作为主键第一部分的分区键,数据被传播到不同的节点。
  • 最小化查询数据时读取的分区数:分区用于绑定具有相同分区键的一组记录。发出读取查询时,它将从不同分区的不同节点收集数据。

对于许多分区,需要访问所有这些分区以收集查询数据。这并不意味着不应创建分区。如果您的数据非常大,则无法将大量数据保留在单个分区上。单个分区将变慢。因此,您必须具有均衡数量的分区。