股票交易数据的存储方法对比与选择

股票交易数据量庞大,需要斟酌考虑其存储方法以便于后续分析计算。
笔者最初考虑使用Mysql数据库,但是对于大量的交易数据,采用Mysql查询效率明显低下,显然不是上上之选。
此外,笔者观察到一些炒股软件,例如通达信等,采用的是csv之类的文本文件存放,笔者一开始也是使用这种方式进行存储的。这种结构相对比较简单,读写也不算是复杂。
但是简要概括起来有两个不足:
1)数据内容没有被压缩,所以导致总的数据存储量比较大
2)数据查询相对有挑战,尤其是跨文件查询的时候。例如:日线交易数据是按照股票分别存放在单独的文件夹中,那么需要获取到某一天当天所有股票的日线数据,就只能每个文件去读一遍然后从中分别 提取该日期的数据然后重新组合;要么就是重新存一份按照日期来组织存放的日线数据,这又导致数据重复,占用了不少的存储空间。
针对有数据没有压缩的问题,可以考虑使用另外一些存储方式,例如HDF5,具有较好的压缩比。但是缺点也比较明显,要删除/修改/添加某些数据项必须读取整个HDF5文件,修改之后再重新压缩成HDF5.
几经周折,笔者选用了列式数据库clickhouse来存放交易数据,实际测试发现,效果不错,查询效率有比较明显的优势。
只是对于数据表格的创建,对于查询语句的编写,需要稍微花点时间了解熟悉一下。不过这个学习成本还是可以接受的。

此条目发表在量化交易分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注