最近一直没更新python&量化的博客,是因为忙于看HDF5的书,写VNPY框架,学scrapy爬虫。
本来写博客的目的就是为了当作一种教材,当遇到不会的问题过来找答案。
对于HDF5下面这本书写的很详细了,国内针对HDF5的教材少之又少,python这块应该只有这一本。
大概说下,为什么用HDF5吧。一般股票或期货的历史K线数据都会使用MySql或MongoDB(VNPY用的它),但是有下面两个缺点:
1、速度:不管是mysql还是Mongodb的读写都存在进程间通信的问题,不同进程间无法直接通讯,需借助其他工具,这就会增加读写时间。
2、大小:由于数据库(尤其是关系型数据库)在保存数据信息时,还会插入一些关系数据等信息,一同保存进入文件,对股票历史k线数据,这种高度结构化的数据,这些关系数据本身是没用的。额外了占用了存储空间。
HDF5优点:
1、速度:直接从硬盘读入内存,绕开了进程间通讯,速度极快。同时它支持切片读取,即不需要把整个dataset读入内存,只读取切片即可。速度和大小都有优化
2、大小:把股票历史数据的dataframe数据作为dataset存入HDF5,列名和索引作为元数据存入HDF5,这样基本上HDF5里没有了与数据不相关的内容,加之其可以使用GZIP和LZF压缩过滤器,在牺牲一部分写入速度的同时,大大减小了存储空间。
大家如果想看的话,就买这本书吧,内容挺全的,基本上能覆盖日常的应用。京东上有卖。
最后附上该书的目录xmind文件:
https://files.cnblogs.com/files/GavinSimons/Python%26HDF5.rar