有人请帮助我理解为什么Cassandra在跳过的列中插入空值?它不应该跳过这个专栏吗?如果我在插入数据时完全跳过列,它不应该插入任何值(甚至不是null)?我有点困惑,因为根据以下教程,数据按行键与列(列族中的图表)存储,如果为真,那么我不应该为列获取null。
或者我了解Cassandra色谱柱系列的整个概念是错误的?
http://www.tutorialspoint.com/cassandra/cassandra_data_model.htm
这是CQL脚本
create keyspace test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'};
create table users (firstname text,lastname text,age int, gender ascii, primary key(firstname))
insert into users(firstname,age,gender,lastname) values("Michael",30,"male","smith");
这里,我正在跳过一个列,但是当我运行select查询时,它会为该列显示null。为什么Cassandra在该专栏中填空?
insert into users(firstname,age,gender) values('Jane',23,'female');
select * from users;
答案 0 :(得分:1)
为什么不去找Cassandra最全面的文档和学习资源:http://academy.datastax.com?并且免费。内容和tutorialspoint.com非常陈旧,自年龄以来没有更新(SuperColumn自2011年至2012年被弃用......)
这里,我正在跳过一个列,但是当我运行select查询时,它会为该列显示null。为什么Cassandra在该专栏中填空?
在CQL中,null == value不存在或值已被删除
由于您没有为列 lastname 插入任何值,Cassandra将返回 null (= =在这种情况下不存在)