Cassandra中的数据模型与RDBMS中正常情况完全不同。 我们来看看Cassandra如何存储数据。
Cassandra数据库分布在运行的几(多)台机器上。 最外层的容器被称为包含不同节点的群集。 每个节点都包含一个副本,如果发生故障,副本将负责顶上。 Cassandra将节点以环形格式排列在群集中,并为其分配数据。
键空间(Keyspace)是Cassandra中数据的最外层容器。 以下是Cassandra中Keyspace的基本属性:
复制放置策略:这是一个策略,如何数据将复制品放在环中。有三种类型的策略,如:
列家族:列家族置于键空间之下。 键空间是一个或多个列族的列表的容器,而列族是一组行的容器。 每行包含已排序的列。列家族表示数据的结构。每个键空间至少有一个并且经常有很多列家族。
在Cassandra中,良好的数据模型非常重要,因为不良数据模型可能会降低性能,特别是当您尝试在Cassandra上实现RDBMS概念时。
在Cassandra中建模数据时,您应该有以下目标:
在许多分区的情况下,需要访问所有这些分区来收集查询数据。 这并不意味着不应该创建分区。 如果您的数据非常大,则无法在单个分区上保留大量数据。 单个分区将会减慢。 所以必须有一个平衡数量的分区。