大数据的数据库设计

Ale*_*lex 6 database database-design stocks

我想存储 1000 个符号的股票交易数据。数据实际上是从文本文件转换而来的,因此不需要插入和更新;只需要只读访问。

数据基本上是这样分组的:每个品种有许多记录:{timestamp, price, quantity},每条记录代表一次交易。

一个符号的数据的近似上限是 5 条记录/秒,每个工作日 8 小时,即每天 5x60x60x8 = 144K。即 1K 个符号每天会生成 144M 条记录。

对数据的大多数操作类似于:

  • 给我一个交易品种在日期 D1、时间 T1 到日期 D2、时间 T2 的所有记录
  • 求 [D1, T1...D2, T2] 期间价格或数量的最小值/最大值/平均值

现在的问题是:在这种情况下,数据库的最佳设计是什么?

  • 我可以将交易品种的所有交易存储在一个表中吗?但是,在这种情况下,表会很快变得太大。
  • 我应该每天/每周/每月创建一个单独的表吗?即 2013-10-25_ABC(ABC - 符号名称)。在这种情况下,我们可能每天/每周/每月获得 1K 个新表。
  • 或者,在这种情况下,纯文本文件可能就足够了?例如,将所有符号数据作为 2013-10-15 文件夹下的文件,导致每个文件夹中有 1K 个文件

数据库可以是 MS SQL 或 MySQL。总时间段 - 长达 5 年。谢谢!

Bar*_*run 4

第三个选项是最好的 1. 您需要高读取性能和几乎可以忽略不计的写入。

您的要求最适合 NoSql 数据库。单表无关系;MySQL 就有点矫枉过正了。更多信息 --> NoSql 数据库