【问题标题】:Ordered Timeseries data / Stock Market data using structure variants使用结构变体的有序时间序列数据/股票市场数据
【发布时间】:2012-05-22 06:26:06
【问题描述】:

我正在寻求一些关于将时间序列信息组织到数据库中的建议。我当前的实现是 PostgreSQL,所有符号都有一个表。 获取自定义信息很慢,但很容易附加。 根据来自here 的信息,我想通过为每个符号创建一个单独的表来复制数据库的结构。在仔细考虑之后,我意识到根据某些标准查询多个符号对我来说有点困难,例如:

SELECT * FROM "all_symbols" WHERE closePrice >= 50

因为我需要以某种方式组合这些表格以进行搜索(这可能比我想象的要容易得多)。由于我在单独的表中记录了每个时间段每个符号的一些统计分析(如 stddev),因此我还会将表的数量增加一些不切实际的数量。

我的目标是拥有快速高效的数据库,我可以在其中以任何可能的方式读取和组合数据以进行分析和研究。

差点忘了提到我正在研究开源实现。

提前谢谢你。

【问题讨论】:

  • 您尝试过哪些方法来使您的原始架构运行得更快?列上有索引吗?使用正确的数据库设计,您不需要为每个符号单独的表。
  • 我的主表构造方式是:|date|time|symbol|the rese 其中日期/时间/符号是主键。据我所知,Postgres 中的 pk 会自动编入索引。
  • 使用面向文档的数据库(如 MongoDB)是否更好?
  • 我猜你也想要一个符号索引。
  • TimGL,我建议你再问一个问题。发布表结构,解释您正在运行的不同类型的查询、更新的频率和类型,并询问最佳方法是什么。

标签: sql database database-design nosql time-series


【解决方案1】:

看看 GitHub 上的这个项目,它是一个基于 Microsoft SQL Server 2012 之上的免费开源市场数据数据库:

http://github.com/kriasoft/market-data

【讨论】:

    【解决方案2】:

    closePrice 上放置一个索引,并使用 between 代替>=

    SELECT * FROM all_symbols
    WHERE closePrice between 50 and <some large value>
    

    单边范围通常不使用索引,但之间应该使用索引。

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 2013-01-04
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多