Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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

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
Java Cassandra中的单数据列与多列_Java_Cassandra - Fatal编程技术网

Java Cassandra中的单数据列与多列

Java Cassandra中的单数据列与多列,java,cassandra,Java,Cassandra,我正在做一个现有卡桑德拉数据库的项目。 架构如下所示: 分区键(大整数) 集群键1(时间戳) 数据(文本) 1. 2021-03-10 11:54:00.000 {a:“某些数据”,b:2,…} 不,除非JSON中的底层数据实际上是无模式的,否则将JSON存储为Cassandra中的字符串并没有真正的优势。它也不会节省空间,但实际上会使用更多的空间,因为每个项目都必须有一个key+值,而不仅仅是存储值 如果可以,我建议您将键映射到CQL列,这样您就可以以本机方式存储值,并且访问数据更加灵活。干杯

我正在做一个现有卡桑德拉数据库的项目。 架构如下所示:

分区键(大整数) 集群键1(时间戳) 数据(文本) 1. 2021-03-10 11:54:00.000 {a:“某些数据”,b:2,…}
不,除非JSON中的底层数据实际上是无模式的,否则将JSON存储为Cassandra中的字符串并没有真正的优势。它也不会节省空间,但实际上会使用更多的空间,因为每个项目都必须有一个key+值,而不仅仅是存储值


如果可以,我建议您将键映射到CQL列,这样您就可以以本机方式存储值,并且访问数据更加灵活。干杯

埃里克的回答完全正确

我要补充的唯一一点是,将JSON blob存储在一个列中会导致更新问题(甚至更严重)。如果更新单个JSON属性,则整个列将被重写。此外,原始的JSON blob仍然存在……只是在压缩运行之前“过时”。在单个列中存储JSON blob唯一有意义的时间是属性不变的情况下

我同意,将键映射到CQL列是一个更好的选择