码迷,mamicode.com
首页 > 数据库 > 详细

5.数据库存储(LEVELI&II)的优缺点

时间:2020-05-18 20:21:44      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:项目   策略   方式   水平   空间   api接口   平台   写入   关系型数据库   

原文链接http://sqlhis.com/index.php/2020/05/14/5-数据库存储leveliii的优缺点/

从前面的讨论来看,除了实时策略数据一定不落地外,对于需要将历史数据落地的情况。实际上有两个选择。(注:其实还有第三种选择,提供一个高频数据的计算平台,这种编程量就很大的,是个大工 程。)

1.文件存储,然后搞一套API接口读取数据,当然这个数据供应商会帮你做好。但是无论如何进行策略回测的时候,研究人员需要自己编写一套程序;又或者研究人员没有这个能力,就需要加上一个专门的程序员来完成研究人员的想法,其中的沟通成本非常高。

2.将历史数据放到数据库中进行存储,这也是我比较推崇的方式。之前的项目曾使用SQL SERVER存储Level2数据。那用数据库存储到底有什么优缺点以及难点呢?

先谈谈数据库存储的缺点:

.磁盘占用空间大。

这点是不容置疑的,虽然数据库都有压缩功能,可以提高空间利用率。但使用的是通用压缩方法,由于定制文件压缩可以根据数据特征有针对性的压缩,所以在大家都做到极致的情况下,数据库存储占用的空间一定比定制文件存储要大。需要解释什么是做到极致,计算机语言速度大致是“C++”>”C#”,但是一个顶级C#程序员写出的程序性能会强于一个菜鸟C++程序员,我这里“极致”的意思是大家的技术水平都非常高。

在做到极致的情况下,和文件存储比较,数据库存储沪深LEVEL2的单日存储应该可以控制在3G以内,按年算的话,可以控制在1T以内,买个20T的磁盘,数据可以存20年了。

所以,磁盘空间占用虽然大,但是还是可以接受的。

再谈谈优点:

.编程复杂度降低了,开发效率提高

都说关系型数据库入门容易精通难,但是对于策略研究人员来说,在数据库里面进行分析,比采用API读取文件要简单的多,直接采用SELECT语句就可以开始干活了,或者需要将数据导入到其他软件中,数据库接口是开放接口,只要有数据库驱动即可。如果是专用的API接口,使用起来会复杂很多。

再谈谈中性特点:

.计算性能

很难武断的说关系数据库是快还是慢,这取决于进行何种计算,但是可以确认的是,关系型数据库有数据缓冲,如果进行一个小区间计算的话,配上64G以上的内存,数据可以全部放到缓冲里面,性能是足够强大的。

总之,笔者认为,在语句写的没问题的情况下,速度是足够快的。

.除了计算性能,通常比较担心的是插入性能

LELVEL2数据那么大,数据库的写入会不会成为瓶颈?其实数据库的写入能力远比我们想象中强大,其实写入能力最关键的是网络和磁盘,在千兆网下,传输性能大概是100M字节每秒,一般磁盘阵列的写入能力可以达到400M字节每秒。数据库的写入能力也就被这两个指标限制住了,只要设计良好,数据库是可以以50M字节每秒的速度写入的,写入3G数据按理论算,仅仅需要60秒。

在笔者之前的项目中,是将文件存储的数据通过API取出来,存到数据库中,而数据库的插入并不是瓶颈,通过API读取文件才是瓶颈。

5.数据库存储(LEVELI&II)的优缺点

标签:项目   策略   方式   水平   空间   api接口   平台   写入   关系型数据库   

原文地址:https://www.cnblogs.com/artmouse/p/12912502.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!