金融时间序列数据的NoSql(例如RavenDB)?

时间:2010-08-27 15:08:04

标签: c# nosql ravendb

我开始研究NoSql并想知道其他人对这些解决方案在存储和查询财务时间序列数据方面的适用性有何看法?

例如,在一个简单的场景中,我会存储股票代码,开盘价,最高价,最低价,收盘价,成交量和时间戳。 然后,我想根据符号和时间戳范围查询该数据。

您认为这种情况下的良好文档结构是什么?

谢谢,

汤姆

编辑: 我主要关注NoSQL解决方案中基于时间序列的数据与传统RMDBS解决方案的读取查询性能

3 个答案:

答案 0 :(得分:4)

汤姆。 你到底想要达到什么目的? RavenDB当然可以处理这种情况,但您必须意识到RavenDB的索引在后台更新。 你的场景似乎适合RDBMS,所以我不得不问你为什么要寻找NoSQL解决方案。

答案 1 :(得分:3)

Take a look at ESENT

对于您的场景,我考虑使用超过2列的主索引:符号+时间戳(如果您要在某个时间间隔内查找单个符号)或时间戳+符号(如果您要获取所有符号)在某个时间间隔内。)

答案 2 :(得分:3)

汤姆,财务数据往往具有严格的一致性和持久性要求。 乍一看,如果没有进一步了解您的应用程序,我希望您需要RDBMS的ACID属性,而不是通常定义NoSQL解决方案的BASE属性。也许如果您描述您的使用模式以及您认为需要非关系模型的原因,我将能够为您找到更合适的解决方案。

就目前而言,您的数据似乎很容易通过关系模型构建,并且具有非常严格的模式,因此我不认为需要Schemaless数据库(MongoDB,CouchDB,Riak ......)。 通常股票报价需要具有很强的一致性(始终是最新的)所以我没有看到发电机克隆中的任何一点(Cassandra,Voldemort ......)。 除非你已经掌握了大量数据并且在处理速度和资源使用方面遇到了障碍,否则我不会选择基于列的数据库(HBase,Hypertable)