gpt4 book ai didi

nosql - NoSQL 数据库如何执行聚合函数(AVG、SUM 等)

转载 作者:IT王子 更新时间:2023-10-29 06:04:42 26 4
gpt4 key购买 nike

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

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

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

Value: { NumericalValue, Year, Month }
Entity: List of 'Value'

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

Value: { NumericalValue, Year, Month }
Entity: List of 'Value'

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

1) 将数据集导出到 MySQL。这意味着大量来自文本文件的插入。

当数据被转换时:

2) 使用 LIMIT 计算一些包含聚合函数 (AVG,SUM) 的查询。 3) 计算一些包含对整个数据集的聚合函数的查询。

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

谢谢你的时间,

最佳答案

您的任务非常适合列式数据库。面向列的 NoSQL(例如 Cassandra)数据库将数据表存储为数据列的部分而不是数据行。这大大提高了聚合速度。这与依赖硬盘存储的系统有关。如果不是这种情况(例如内存数据库),则有更多选项可以提高性能。

关于nosql - NoSQL 数据库如何执行聚合函数(AVG、SUM 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com