Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 列数据库在存储布局上实现动态列的宽度如何?_Cassandra_Nosql - Fatal编程技术网

Cassandra 列数据库在存储布局上实现动态列的宽度如何?

Cassandra 列数据库在存储布局上实现动态列的宽度如何?,cassandra,nosql,Cassandra,Nosql,众所周知,在关系数据库中,当添加新列时,必须重新分配()数据以保持磁盘上的单行连续 我想了解如何在宽列存储(如Cassandra)上实现这一点,它是Sparse,可以处理许多动态列插入((动态列系列)) 谢谢 在Cassandra中,添加列有点像在关系数据库中添加行。您甚至可以删除特定行的列: delete first_name from user where user_id='abcd'; 在CQL中,alter table并没有修改所有行,简而言之,它只是修改描述表的模式字典(查看系统键

众所周知,在关系数据库中,当添加新列时,必须重新分配()数据以保持磁盘上的单行连续

我想了解如何在宽列存储(如Cassandra)上实现这一点,它是Sparse,可以处理许多动态列插入((动态列系列))


谢谢

在Cassandra中,添加列有点像在关系数据库中添加行。您甚至可以删除特定行的列:

delete first_name from user where user_id='abcd';
在CQL中,
alter table
并没有修改所有行,简而言之,它只是修改描述表的模式字典(查看
系统
键空间中前缀为
schema
的表)。这只会更改CQL解析(新列现在已被识别)和解释(
select*from user
含义已更改)

当您删除一列时,数据不再出现在查询结果中,但它仍然存在于表中。在将来的压缩过程中(如墓碑),数据将被删除(并释放空间)