首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NOSQL数据库的聚合和统计功能

NOSQL数据库的聚合和统计功能
EN

Stack Overflow用户
提问于 2013-11-16 08:14:30
回答 3查看 1.3K关注 0票数 1

使用SQL数据库,可以很容易地完成统计/聚合函数,如协方差、标准差、峰度、偏度、偏差、均值和中间值、求和和积等,而无需将数据输出到应用服务器。http://www.xarg.org/2012/07/statistical-functions-in-mysql/

这些计算是如何有效地完成(尽可能靠近存储,假设映射/减少“作业”不会是实时的)在NoSql数据库上,特别是对于大型数据集的dynamodb(cassandra)。

(MySQL,PostgresSQL,.)不是NoSQL和Amazon (ParAccel) --一个列存储区--有一个SQL接口,而且可能是过分的(6.85美元/小时)。Redshift的聚合功能有限(Functions.htmlfunctions.html)

EN

回答 3

Stack Overflow用户

发布于 2013-11-17 17:21:06

对于没有聚合功能的DB(例如Cassandra),您总是需要提取一些数据。目前,在靠近DB的地方构建分布式计算集群是一个流行的选择(使用像风暴这样的项目)。通过这种方式,您可以请求并并行处理数据以执行操作。把它看作是一个“实时”Hadoop (尽管它不一样)。

实现这样的设置显然比有一个支持它的系统要复杂得多,所以在您的决策中要考虑到这一点。好处是,如果需要,集群允许您执行复杂的自定义分析方法,而不是传统DB解决方案中支持的任何内容。

票数 2
EN

Stack Overflow用户

发布于 2013-11-16 08:37:16

在MongoDB中,您可以创建某种UDF:

代码语言:javascript
复制
db.system.js.save( { _id : "Variance" ,
value : function(key,values)
{
    var squared_Diff = 0;
    var mean = Avg(key,values);
    for(var i = 0; i < values.length; i++)
    {
        var deviation = values[i] - mean;
        squared_Diff += deviation * deviation;
    }
    var variance = squared_Diff/(values.length);
    return variance;
}});


db.system.js.save( { _id : "Standard_Deviation"
, value : function(key,values)
{
    var variance = Variance(key,values);
    return Math.sqrt(variance);
}});

描述是这里

票数 1
EN

Stack Overflow用户

发布于 2013-11-18 08:43:02

MongoDB有一些可能适合您的需求的聚合功能,http://docs.mongodb.org/manual/aggregation/

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

https://stackoverflow.com/questions/20016300

复制
相关文章

相似问题

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