Cassandra标准列和超级列
列(column)是Cassandra数据模型中的最基本的数据结构单元。列是一个由列名(key)、值(value)、时间戳(timestamp)构成的三元组。在关系型数据库中,你需要先定义列的名称和和列类型来组成表结构,在插入数据的时候,客户端只需要往预先定义好的表结构插入数值就行了,数据库提供表名称和列名,客户端负责插入数据;而在Cassandra中,数据库只负责提供表名称,列名和数值是由客户端提供的。在关系型数据库中,每行都有相同的列,但在Cassandra中,每行可以有相同的列,也可以有不同的列
标准列(Standard Columm)
标准列的数据结构
| 标准列 | ||
| 名称【】 | 值 | 【】时间戳【】 |
['CF']['Row Key']['Column']
列的实际存放例子
(name=age, value=18, timestamp=1527692421898000)
在上面的例子中,列名是年龄age,值是18。
[default@mytest] get users['zhangpeng'];
=> (name=age, value=18, timestamp=1527692421898000)
=> (name=birthday, value=19890507, timestamp=1529333838055000)
=> (name=first, value=zhang, timestamp=1527692409752000)
=> (name=last, value=peng, timestamp=1527692416150000)
在该例子中,标准列users中的用户“zhangpeng”作为该行数据区分其他行数据的唯一的row key(主键)。
超级列(Super Column)
超级列是一种特殊的列。两种列都是键/值对。但标准列的值是字节组,而超级列的值是一个子列的映射,超级列不能存储其他超级列的映射,也就是说,超级列仅允许使用一层,但是会它不并不限制列的数量。
超级列的数据结构包含它的名字和它存储的列,它的名字和标准列一样,但是存储的值是一个列的映射。
| 超级列 | ||
| 名称【】 | col1:key1,col2:key2,col3:key3,col4:key4 | 【】时间戳【】 |
['CF']['Row Key']['SuperColumn']['SubColumn']
[default@mytest] create column family hg18
... with column_type = Super
... and comparator = UTF8Type
... and key_validation_class=UTF8Type
... and default_validation_class=UTF8Type
... and subcomparator = UTF8Type
... and column_metadata = [
... {column_name:isExon, validation_class:UTF8Type}
... {column_name:cons, validation_class:IntegerType}
... ];
278c4430-bcea-3ae9-a845-079687db907d [default@mytest] set hg18['chr1:000000004']['geneFeatures']['isExon'] = 'T';
Value inserted.
Elapsed time: 2.76 msec(s).
[default@mytest] set hg18['chr1:000000004']['conservation']['cons'] = '';
Value inserted.
Elapsed time: 1.74 msec(s).
[default@mytest] list hg18;
Using default limit of 100
Using default cell limit of 100
-------------------
RowKey: chr1:000000004
=> (super_column=conservation,
(name=cons, value=13, timestamp=1529817745740000))
=> (super_column=geneFeatures,
(name=isExon, value=T, timestamp=1529817725916000)) 1 Row Returned.
Elapsed time: 97 msec(s).
Cassandra标准列和超级列的更多相关文章
- web标准(复习)--3 二列和三列布局
今天学习二列和三列布局,将涉及到以下内容和知识点 二列自适应宽度 二列固定宽度 二列固定宽度居中 xhtml的块级元素(div)和内联元素(span) float属性 三列自适应宽度 三列固定宽度 三 ...
- Web标准:三、二列和三列布局
知识点: 1.二列自适应宽度 2.二列固定宽度 3.二列固定宽度居中 4.xhtml的块级元素(div)和内联元素(span) 5.float属性 6.三列自适应宽度 7.三列固定宽度 8.三列固定宽 ...
- update批量更新某一列成其它列对应的值【原】
update批量更新某一列成其它列对应的值 postgresql 标准sql语句 update AA set name = BB.name , AA.sex = BB.sex from BB wher ...
- SQL Server-聚焦计算列或计算列持久化查询性能(二十二)
前言 上一节我们详细讲解了计算列以及计算列持久化的问题,本节我们依然如前面讲解来看看二者查询性能问题,简短的内容,深入的理解,Always to review the basics. 持久化计算列比非 ...
- android手机旋转屏幕时让GridView的列数与列宽度自适应
无意中打开了一年前做过的一个android应用的代码,看到里面实现的一个小功能点(如题),现写篇文章做个笔记.当时面临的问题是,在旋转屏幕的时候需要让gridview的列数与宽度能自适应屏幕宽度,每个 ...
- 关于DataTable添加新列到指定列的方法
在开发新项目的时候发现了一个问题 dtResult.Columns.Add()方法只能将指定的列添加到DataTable的列的最后的位置,但是不能添加到指定的列上.举例来说,假设dtResult总共有 ...
- .NET组件控件实例编程系列——5.DataGridView数值列和日期列
在使用DataGridView编辑数据的时候,编辑的单元格一般会显示为文本框,逻辑值和图片会自动显示对应类型的列.当然我们自己可以手工选择列的类型,例如ComboBox列.Button列.Link列. ...
- MySQL 添加列, 修改列, 删除列
ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 查看数据库创建语句: show create database 数据库名: 查看创建表的语句: show c ...
- DataTable 删除列 调整列顺序 修改列标题名称
DataTable dt = new DataTable(); //删除列 dt.Columns.Remove("Sex"); dt.Columns.Remove("Ag ...
随机推荐
- 在 JSDOM v11 中使用jQuery
在JSDOM v11中使用jQuery 从v10开始,jsdom提供了更灵活的API. https://swashata.me/blog/use-jquery-jsdom-v11/ const tes ...
- Java的反射机制Reflect
简介: 动态获取类的信息.动态调用对象的方法的功能叫做:Java 的反射(Reflection)机制. Reflection是不同于C++等静态语言,而被视为准动态语言的关键性质.反射机制允许程序在运 ...
- java web 工程更改名字
如图: 将工程名字struts2Project02更改为struts2Project03,步骤如下: 1. 右键工程名字,选中properties,如图 2.更改项目名字 3.第2步已经真正把项目名字 ...
- Qt基础学习(3)-----滑动条之QSlider
//mydialog.h #ifndef MYDIALOG_H #define MYDIALOG_H #include <QDialog> class QLineEdit; class Q ...
- C#支付宝多次回调问题
//必须删除掉页面上的默认内容,不然支付宝会多次回调 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml&q ...
- perl hash array 嵌套 push
$hash{"A"}=["pp"];想变成:$hash{"A"}=["p","q"];因为 $has ...
- BZOJ 4826 【HNOI2017】 影魔
题目链接:影魔 这道题就是去年序列的弱化版啊…… 我们枚举最大值的位置\(i\),找出左边第一个比\(a_i\)大的位置\(l\),右边第一个比\(a_i\)大的位置\(r\),然后我们分开考虑一下\ ...
- module.exports小程序模块化,require
小程序模块化 可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块.模块只有通过 module.exports 或者 exports 才能对外暴露接口. tips:exports 是 mo ...
- 记录一次在centos下使用gmp的悲伤
有个作业是需要在linux下做的,并且需要用到gmp这个 library : 我使用的是虚拟机centos7.很久没碰过linux了,忘得差不多了,一点点百度出来的 1. 首先检查是否已存在gmp库 ...
- 关于Java实现的进制转化(位运算)
一.需求: 最近在做文件传输的东西,文件传输当然是传输很重要,包括编码格式以及进制的统一. 简略的说一下这次做的东西:首先文件是按照块来发送的,一块一块大的发,但是,发送的过程是这样的: 先发送头部, ...