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

C# 金融时间序列数据的NoSql(如RavenDB)?,c#,nosql,ravendb,C#,Nosql,Ravendb,我开始研究NoSql,想知道其他人对这种存储和查询金融时间序列数据的解决方案的适用性有何看法 例如,在一个简单的场景中,我将存储股票符号、开盘、上盘、下盘、收盘、成交量和时间戳。 然后我想根据符号和时间戳范围查询该数据 对于这种情况,您认为什么是好的文档结构 谢谢 汤姆 编辑: 我主要关心的是NoSQL解决方案与传统RMDBS解决方案中基于时间序列的数据的读取查询性能 对于你的场景,我会考虑使用主索引超过2列:无论是符号+时间戳(如果你要在某个时间间隔内查找单个符号)或时间戳+符号(如果你要在某

我开始研究NoSql,想知道其他人对这种存储和查询金融时间序列数据的解决方案的适用性有何看法

例如,在一个简单的场景中,我将存储股票符号、开盘、上盘、下盘、收盘、成交量和时间戳。 然后我想根据符号和时间戳范围查询该数据

对于这种情况,您认为什么是好的文档结构

谢谢

汤姆

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

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

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

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

目前,您的数据似乎很容易通过关系模型进行结构化,并且具有非常严格的模式,因此我认为不需要无模式的数据库(MongoDB、CouchDB、Riak…)。 通常,股票报价需要有很强的一致性(总是最新的),所以我看不出迪纳摩克隆体有任何意义(卡桑德拉,伏地魔…)。
除非您已经拥有大量数据,并且在处理速度和资源使用方面遇到了困难,否则我不会选择基于列的db(HBase,Hypertable)

这里我不需要ACID属性。存储的数据仅在批处理作业中更新一整晚,并将在一天中接收只读查询。我想知道的是,如果一个NoSQL解决方案在基于“时间序列”的查询(选择时间范围内的数据)中比传统的RMDBS解决方案表现得更好,那么听起来您在这里没有可用性要求,您只需要在只读数据库上进行快速查询。这听起来像是任何一个像样的数据库都能提供的东西,您真正需要的只是时间戳上的索引。我不认为NoSQL解决方案会更好,但这取决于规模。老实说,我会使用Solr(或Lucene)之类的搜索引擎,只需调整缓存,因为您的数据是只读的,它们可以非常快。在本用例中,索引的后台更新不是问题。我的问题主要是关于阅读性能。NoSql解决方案在“时间序列”(时间范围)查询中会比传统的RMDBS解决方案更好吗?也许,使用RavenDB,您可以直接在构建的索引上完成大部分工作,这将非常快