做过大量的tick级别数据处理,被东京交易所的压力测试以及225个basket order折磨过,个人意见是:
1. 直接放弃,Mysql和Oracle在这个问题上就是大坑,没有任何优势没有任何便利,无法大家方便共享分析,查询极度缓慢等等
2. NoSQL数据库。不错的选择,但是需要看你将来预测的数据量,如果>32G你使用redis起来就已经没那么爽了,至于其他的存硬盘类型NoSql DB也是可以的,可以满足需求没有问题。但是我建议选一个pandas直接能支持的,便于最快速度结合。仍旧最后不是我的最优选择,那么最优选择在最后:
3. HDF5极度强大。支持java、python、c没有问题。内部你做好group、dataset的分类天然就是数据库并且也可以随处迁移。我大概试了下10年的分钟级别数据只需要100-200G左右的HDF5文件淡然你可以每个股票单独存一个10年的。大家需要研究的时候发给对方即可,也可以搭建一个share file system解决。这里对于2的优势是存储空间极小相对于DB format。
那么最关键的点来了:速度。我用的是java + 经过了warmup(pre 2000 iteration JIT compile)之后,读取任意一天的minute bar的速度是30-40 micro second,碾压2的选择。PS:使用的是mac Book Pro + SSD
另外HDF5和pandas无缝对接,所以研究也快。
但是但是。。。最强的呢还是KDB : http://kx.com/software.php
只可惜人家收费。。。还很贵
来源:知乎 www.zhihu.com
作者:LIKE
【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载
此问题还有 7 个回答,查看全部。
延伸阅读:
数据分析、数据挖掘、数据统计、OLAP 之间的差异是什么?
金融分析师怎么分析报表数据?