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_Aggregate - Fatal编程技术网

为什么Cassandra内部不支持聚合?

为什么Cassandra内部不支持聚合?,cassandra,nosql,aggregate,Cassandra,Nosql,Aggregate,考虑到许多书籍和文章中的这句话: 在列式体系结构中,由于要聚合的所有值都存在于相同的磁盘块中,因此寻求聚合特定列的值的查询将得到优化。Cassandra是列族NoSQL数据库 如果这句话是真的,为什么Cassandra在内部不支持聚合函数?或者我误解了这个句子或概念?Cassandra是一个行存储引擎。如果要获取与特定列值匹配的所有记录,则需要对表进行完整扫描 看这个 为什么Cassandra内部不支持聚合函数 Cassandra确实支持每请求聚合函数(java、python、javascri

考虑到许多书籍和文章中的这句话:

在列式体系结构中,由于要聚合的所有值都存在于相同的磁盘块中,因此寻求聚合特定列的值的查询将得到优化。Cassandra是列族NoSQL数据库


如果这句话是真的,为什么Cassandra在内部不支持聚合函数?或者我误解了这个句子或概念?

Cassandra是一个行存储引擎。如果要获取与特定列值匹配的所有记录,则需要对表进行完整扫描

看这个

为什么Cassandra内部不支持聚合函数

Cassandra确实支持每请求聚合函数(java、python、javascript和一些预制函数中的自定义函数),当在单个分区上使用时,这些函数的工作范围是有限的。请记住,这些查询实际上是为了在几毫秒内得到回答而设计的,尽管如此,如果经常查询,计算一百万个值的平均值的东西将无法正常工作

聚合不能很容易地在删除时保持最新(在分布式环境中尤其困难,因为删除可能还没有在所有节点上看到-记住Cassandra是AP而不是CP)而且ttl数据过期,因此必须重新计算要聚合的整个集合,并将其从副本的一致性级别发送到协调器进行计算。因此,虽然分区的数据按顺序保存在磁盘上,可以跨多个SSTABLE进行合并,而且合并效率很高,但在协调器上的成本仍然很高,如果跨一个范围进行,则传输和计算的数据量很容易失败(超时)