- Cassandra是什么?
- Cassandra历史
- Cassandra的特点
- Cassandra的架构
- Cassandra应用场景(案例)
- Cassandra数据类型
- Cassandra数据模型
- Cassandra与HBase比较(区别)
- Cassandra与关系数据库比较(区别)
- Cassandra安装与配置
- Cassandra CQLsh
- Cassandra键空间操作
- Cassandra表操作
- Cassandra数据CRUD操作
- Cassandra CQL数据类型
Cassandra数据模型
Cassandra中的数据模型与RDBMS中正常情况完全不同。 我们来看看Cassandra如何存储数据。
群集
Cassandra数据库分布在运行的几(多)台机器上。 最外层的容器被称为包含不同节点的群集。 每个节点都包含一个副本,如果发生故障,副本将负责顶上。 Cassandra将节点以环形格式排列在群集中,并为其分配数据。
键空间
键空间(Keyspace)是Cassandra中数据的最外层容器。 以下是Cassandra中Keyspace的基本属性:
- 复制因子:它指定集群中的机器数量,将接收相同数据的副本。
复制放置策略:这是一个策略,如何数据将复制品放在环中。有三种类型的策略,如:
- 简单策略(机架感知策略)
- 旧网络拓扑策略(机架感知策略)
- 网络拓扑策略(数据中心共享策略)
列家族:列家族置于键空间之下。 键空间是一个或多个列族的列表的容器,而列族是一组行的容器。 每行包含已排序的列。列家族表示数据的结构。每个键空间至少有一个并且经常有很多列家族。
在Cassandra中,良好的数据模型非常重要,因为不良数据模型可能会降低性能,特别是当您尝试在Cassandra上实现RDBMS概念时。
Cassandra数据模型规则
- Cassandra不支持JOINS,GROUP BY,OR子句,聚合等等。因此必须按照需要存储数据的方式存储数据。
- 最大化数据重复,因为Cassandra是分布式数据库,数据重复提供即时可用性而无单点故障。
数据建模目标
在Cassandra中建模数据时,您应该有以下目标:
- 在群集周围均匀传播数据:要在Cassandra群集的每个节点上传播相等数量的数据,您必须选择整数作为主键。 数据根据作为主键的第一部分的分区键传播到不同的节点。
- 查询数据时读取的分区数最小化:分区用于将一组记录与相同的分区键绑定。 当读取查询发出时,它从不同的分区收集不同节点的数据。
在许多分区的情况下,需要访问所有这些分区来收集查询数据。 这并不意味着不应该创建分区。 如果您的数据非常大,则无法在单个分区上保留大量数据。 单个分区将会减慢。 所以必须有一个平衡数量的分区。
上一篇:Cassandra数据类型
扫描二维码
程序员编程王