【发布时间】:2011-08-11 13:23:44
【问题描述】:
我将尝试描述我的挑战和操作: 我需要计算历史时期的股票价格指数。例如,我将选取 100 只股票并计算它们去年每秒(甚至更少)的总平均价格。 我需要像这样创建许多不同的指数,其中股票是从 30,000~ 种不同的工具中动态挑选出来的。
主要考虑的是速度。我需要尽快输出几个月的这种索引。
出于这个原因,我认为传统的 RDBMS 太慢了,因此我正在寻找一种复杂且原始的解决方案。
这是我想到的,使用 NoSql 或面向列的方法: 将所有股票分配到某种时间键值对中:价格与所有它们匹配的时间行。然后使用某种地图缩减模式来仅选择所需的股票并汇总它们的价格,同时逐行读取它们。
我想要一些关于我的方法的反馈、对工具和用例的建议,或者对完全不同的设计模式的建议。我对解决方案的指导方针是价格(希望使用开源)、处理大量数据的能力以及快速查找(我不关心插入,因为它只进行一次并且永远不会改变)
更新:快速查找并不是指实时,而是相当快速的操作。目前我需要几分钟来处理每天的数据,这相当于每年计算几个小时。我想在几分钟内完成。
【问题讨论】:
-
数据只是历史数据,还是更新非常频繁,您总是需要最新数据进行计算?
-
每种仪器和每年的价格是多少?您的系统是否有足够的内存来保存内存中的所有内容,或者是否需要磁盘访问?
-
@nitin 仅历史记录。对于实时,我使用 CEP 引擎。
-
@codo 我认为将引号减少到基于秒或毫秒的行。所以只需计算一年中有多少秒(8 小时工作日)
-
对不起,我的评论中有错字。我想知道在特定时间段内必须处理每种工具的多少价格(而不是会产生多少价格)。处理的每个时间序列的典型时间段是多少? (你提到了处理一天的数据……)
标签: database design-patterns architecture nosql