【问题标题】:NoSql (e.g. RavenDB) for financial time series data?用于金融时间序列数据的 NoSql(例如 RavenDB)?
【发布时间】:2010-08-27 15:08:04
【问题描述】:

我开始研究 NoSql,想知道其他人如何看待此类解决方案在存储和查询金融时间序列数据方面的适用性?

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

对于这种情况,您认为哪种文档结构比较好?

谢谢,

汤姆

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

【问题讨论】:

    标签: c# nosql ravendb


    【解决方案1】:

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

    【讨论】:

    • 索引的后台更新不是这个用例的问题。我的问题主要是关于读取性能。 NoSql 解决方案在“时间序列”(时间范围)查询中会比传统的 RMDBS 解决方案更好吗?
    • 可能,使用 RavenDB,您可能可以直接在构建的索引之上完成大部分工作,这将 非常
    【解决方案2】:

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

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

    【讨论】:

    • ACID 属性对我来说不是这里的要求。存储的数据仅在批处理作业中在一夜之间更新,并将全天接收只读查询。我很好奇的是,NoSQL 解决方案在基于“时间序列”的查询(选择时间范围内的数据)中是否会比传统的 RMDBS 解决方案更好
    • 这听起来不像你在这里有可用性要求,你只是想在只读数据库上快速查询。这听起来几乎任何体面的数据库都可以提供您真正需要的只是时间戳上的索引。我不认为 N​​oSQL 解决方案会更好,但这取决于规模。老实说,我会使用 Solr(或 Lucene)等搜索引擎并调整缓存,因为您的数据是只读的,它们可以非常快。
    【解决方案3】:

    Take a look at ESENT.

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

    【讨论】:

      猜你喜欢
      • 2021-12-11
      • 2017-10-25
      • 2012-04-26
      • 1970-01-01
      • 2017-12-29
      • 2014-03-18
      • 2015-06-05
      • 1970-01-01
      • 2021-01-09
      相关资源
      最近更新 更多