存储数据
编辑教程存储数据
集群(Cluster)
Cassandra数据库分布在几个一起操作的机器上。最外层容器被称为群集。对于故障处理,每个节点包含一个副本,如果发生故障,副本将负责。Cassandra按照环形格式将节点排列在集群中,并为它们分配数据。
键空间 (Keyspace)
键空间是Cassandra中数据的最外层容器。Cassandra中的一个键空间的基本属性是 -
复制因子 | 它是集群中将接收相同数据副本的计算机数。 |
---|---|
副本放置策略 | 它只是把副本放在戒指中的策略。我们有简单策略(机架感知策略),旧网络拓扑策略(机架感知策略)和网络拓扑策略(数据中心共享策略)等策略。 |
列族 | 键空间是一个或多个列族的列表的容器。列族又是一个行集合的容器。每行包含有序列。列族表示数据的结构。每个键空间至少有一个,通常是许多列族。 |
创建键空间的语法
CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
下图显示了键空间的示意图。
列族
列族是有序收集行的容器。每一行又是一个有序的列集合。下表列出了区分列系列和关系数据库表的要点。
关系表 | Cassandra列族 |
---|---|
关系模型中的模式是固定的。 一旦为表定义了某些列,在插入数据时, 在每一行中,所有列必须至少填充一个空值。 |
在Cassandra中,虽然定义了列族,但列不是。 您可以随时向任何列族自由添加任何列。 |
关系表只定义列,用户用值填充表。 | 在Cassandra中,表包含列,或者可以定义为超级列族。 |
Cassandra列族具有以下属性
keys_cached | 它表示每个SSTable保持缓存的位置数。 |
---|---|
rows_cached | 它表示其整个内容将在内存中缓存的行数。 |
preload_row_cache | 它指定是否要预先填充行缓存。 |
注 - 与不是固定列族的模式的关系表不同,Cassandra不强制单个行拥有所有列。
下图显示了Cassandra列族的示例。
列
列是Cassandra的基本数据结构,具有三个值,即键或列名称,值和时间戳。下面给出了列的结构。
超级列
超级列是一个特殊列,因此,它也是一个键值对。但是超级列存储了子列的地图。
通常列族被存储在磁盘上的单个文件中。因此,为了优化性能,重要的是保持您可能在同一列族中一起查询的列,并且超级列在此可以有所帮助。下面是超级列的结构。
Cassandra 和 RDBMS 的数据模型
下表列出了区分Cassandra的数据模型和RDBMS的数据模型的要点。
RDBMS | Cassandra |
---|---|
RDBMS处理结构化数据。 | Cassandra处理非结构化数据。 |
它具有固定的模式。 | Cassandra具有灵活的架构。 |
在RDBMS中,表是一个数组的数组。 (ROW x COLUMN) | 在Cassandra中,表是“嵌套的键值对”的列表。 (ROW x COLUMN键x COLUMN值) |
数据库是包含与应用程序对应的数据的最外层容器。 | Keyspace是包含与应用程序对应的数据的最外层容器。 |
表是数据库的实体。 | 表或列族是键空间的实体。 |
Row是RDBMS中的单个记录。 | Row是Cassandra中的一个复制单元。 |
列表示关系的属性。 | Column是Cassandra中的存储单元。 |
RDBMS支持外键的概念,连接。 | 关系是使用集合表示。 |
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟