首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoSQL数据库如何在聚合函数(AVG、SUM等)上执行

NoSQL数据库如何在聚合函数(AVG、SUM等)上执行
EN

Stack Overflow用户
提问于 2013-08-13 07:35:26
回答 1查看 2.7K关注 0票数 2

我们需要定期处理一个相当大的数据集(30-40 30)。它有很多按时间排序的值(以及更多的信息),但我们基本上需要按月执行一些数学运算。

我们的第一种方法是使用MySQL数据库来支持数据,因为我们对引擎和关系方法有着合理的经验。然而,这个过程花费的时间太长了,我们想知道NoSQL方法是否能做得更好。

基本上,我们需要表达的数据是:

代码语言:javascript
复制
Value: { NumericalValue, Year, Month }
Entity: List of 'Value'

我们处理这个列表三次,做简单的数学运算,当我说' process‘时,我的意思是遍历数据集并执行演算。当一切结束时,我们有相同的结构(但数据不同):

代码语言:javascript
复制
Value: { NumericalValue, Year, Month }
Entity: List of 'Value'

现在我们发现了最大的问题,因为我们需要计算一些平均值,这需要花费很多时间。当我们多次重复这一过程时,我认为最重要的任务是:

1)将数据集导出到MySQL。这意味着大量从文本文件中插入的内容。

当数据被转换时:

2)计算包含聚集函数(AVG,SUM)的有限制查询。3)用整个数据集计算包含aggreate函数的查询。

通常,即使添加了一些索引,我们也会觉得时间太长了(有些查询需要20分钟)。任何提示或解决策略都将不胜感激。我觉得NoSQL数据库不是专门为此设计的,但也许一些经验可能会有所帮助:)。

耽误您时间,实在对不起,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-03 19:57:51

您的任务非常适合专栏型数据库。面向列的NoSQL(如Cassandra)数据库将数据表存储为数据列的区段,而不是数据行。这大大提高了聚合的速度。这与依赖硬盘存储的系统有关。如果不是这样的话(例如内存中的数据库),就会有更多的选择来压缩性能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18203214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档