微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

股市金融数据的数据库架构设计

如何解决股市金融数据的数据库架构设计

我正在尝试找出每天插入的财务数据的最佳结构。 查询数据有 3 个用例

  1. 查询当前数据的特定符号
  2. 按值查找当前交易品种(其中价格 3)
  3. 绘制每个品种的历史价值(不包括查询 2010 年和 2020 年之间的所有股息.收益率)

目前正在为此考虑使用 MongoDB,但我不确定哪种结构最适合我的需求。将每个符号的所有数据嵌入 10 年的时间似乎太多了,所以我想也许是嵌入每个符号的当前数据,并创建对历史文档的引用。

您会采用什么方法来存储这些数据? MongoDB 不是很好的解决方案吗?

这是一个符号数据的小例子。

{
  "symbol": "AAPL","info": {
    "company_name": "Apple Inc.","description": "some long text","website": "http://apple.com","logo_url": "http://apple.com"
  },"quotes": {
     "open": 111,"close": 321,"high": 111,"low": 100
    },"dividends": {
    "amountPaid": 0.5,"exDate": "2020-01-01","yieldOnCost": 10,"growth": { value: 111,pct_chg: 10 } /* some fields Could be more attributes than just k/v */
    "yield": 123
  },"fundamentals": {
    "num_employees": 123213213,"shares": 123123123123,....
  }
}

谢谢。

解决方法

您会采用什么方法来存储这些数据?

根据您发布的信息(示例数据和用例),我认为将历史数据存储为单独的集合听起来不错。

影响数据库设计(或数据模型)的一些重要因素是数据量和查询类型 - 您计划对数据执行的最重要的查询。假设您发布的 JSON 数据(用于股票代码)可用于执行前两个查询 - 您可以从将历史数据存储为单独集合的想法开始。交易品种的历史数据文档可以是一年的年份范围 - 取决于查询、数据大小和信息类型。

MongoDB 的基于文档的模型允许灵活的模式,这对于轻松实现未来的更改和要求非常有用。请注意,一个 MongoDB 文档最多可以存储 16 MB 的数据。

参考MongoDB Data Model Design

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。