从场景来看,题主主要想问的是历史数据的存储

实时行情接收

实时交易信息的记录与分析(预警也算是分析的一种,分析完给个信号)

那就分这三部分来说。

第一部分是历史数据的存储,股票的量最大,就拿股票来说。特别指出,抛开使用场景谈数据库都是耍流氓!存历史Tick主要是为了回测。回测主要的需求就是把Tick读进内存,交给CPU处理策略的逻辑即可。针对这种场景,阿里的OSS就够了(跑回测的机器也是在阿里上,所以其实是内网环境),等于是一个没有容量限制的文件系统。一般每天全市场3000个股票Tick数据在600M上下,压缩过之后就算100M,也内网传输也只需要1-2秒左右。其实回测的时候,瓶颈还是在CPU上,而不是I/O和内网延迟。当然,为了读取方便,在策略和文件系统中间,建一层把一些基本的读取逻辑写在这层里面,暴露方便自己策略用的接口。

第二部分是行情接收,实时主要是接收tick级别的行情数据,内存数据库是逃不掉的,题主提到的Redis够用了。除了可以用来做收数据之外,还可以做转发,Redis本身就提供了消息队列的功能,如果有多个策略一起跑要拿相同的数据源,Redis就很适用。就像前面有答主说的,确实Redis体量一大会虚,但如果我们只是把Redis当作实时接收 + 转发,一般里面的数据都不会超过2天,所以体量也就不是问题了。

第三部分是和委托/成交相关的信息的记录,这块的场景主要是盘中的监控和盘后的分析盘中监控的信息一般内容不多(相比盘后分析),对速度要求高,可以用Influxdb这类时间序列。除了时间序列常见的优点外,查询语言与SQL很接近,用起来方便,对接Grafana这类的前段框架也方便。如果在数据搜集上面有更多需求,比如对histogram的支持,也可以用Telegraf。架构是Telegraf -> Influx -> Grafana。另外,近期的行情数据,其实也可以放在influxdb里面,别放太多就行,算是当一个行情的缓存。

盘后分析对应的数据量比较大,一般来说针对每个委托/成交都有不少的数据要存,特别是和策略相关的信息,推荐用ElasticSearch。一方面可以支持Nested的结构,在debug的时候想要对存的field做增减,代码也变动很小,不需要改数据库的结构。另外搜索功能确实强大,时间聚合方面的函数也支持的很好。当然如果对Mongo熟悉用Mongo也ok。另外ES的话就是查询语言相对学习曲线陡一些,不像Influx那么好上手

最后,以上架构经过验证,支持几十TB肯定没问题,几百个G也是适用的。如果题主有需求再往上,也有相应的办法,再补充。

mangodb 高频数据_金融分析量化系统,高频交易程序数据库通常采用哪种方式存贮数据?...相关推荐

  1. MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

    1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC).器件带有冷端补偿检测和修正.数字控制器.SPI兼容接口,以及相关的控制逻辑,在温度控制器.过程控制或监测系统中设 ...

  2. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  3. ios 旋转屏幕试图切换_总结iOS App开发中控制屏幕旋转的几种方式

    在iOS6之前的版本中,通常使用 shouldAutorotateToInterfaceOrientation 来单独控制某个UIViewController的方向,需要哪个viewControlle ...

  4. mysql 的几种缓存_数据库缓存的几种方式

    数据库缓存的几种方式 引入缓存可以提高性能,但是数据会存在两份,一份在数据库中,一份在缓存中,如果更新其中任何一份会引起数据的不一致,数据的完整性被破坏了,因此,同步数据库和缓存的这两份数据就非常重要 ...

  5. spss练习数据_读硕博,为你推荐5本最实用的SPSS数据统计书

    SPSS (Statistical Product and Service Solutions),是由IBM公司所推出的一系列用于统计学分析运算.数据挖掘.预测分析和决策支持任务的软件产品.SPSS的 ...

  6. php foreach 为什么在if条件下多条数据只取出一条数据_微信大牛教你深入了解数据库索引...

    ​| 作者 刘国斌,腾讯微信事业群研发工程师,目前从事企业微信的后台研发工作,已经参与企业微信消息系统.群聊.客户联系等企业微信多个核心功能的迭代. 数据库查询是数据库的最主要功能之一.我们都希望查询 ...

  7. 取本地数据_深入理解Kafka服务端之Follower副本如何同步Leader副本的数据

    一.场景分析Kafka采用的是主写主读的方式,即客户端的读写请求都由分区的Leader副本处理,那么Follower副本要想保证和Leader副本数据一致,就需要不断地从Leader副本拉取消息来进行 ...

  8. ssis 循环导入数据_使用集成服务(SSIS)包从Amazon S3 SSIS存储桶导入数据

    ssis 循环导入数据 This article explores data import in SQL Server from a CSV file stored in the Amazon S3 ...

  9. gazebo 直接获取传感器数据_基于uFUN开发板的心率计(一)DMA方式获取传感器数据...

    前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...

最新文章

  1. git 提交跳过检查
  2. EOS账户和钱包综合指南
  3. 全国计算机等级考试题库二级C操作题100套(第28套)
  4. Python3 循环
  5. Docker的应用场景
  6. 再次详解clientHeight、offsetHeight、scrollHeight
  7. 成功破解:世界杀软“金奖”得主BitDefender 2008(官方中文版 + 注册机下载)
  8. 苹果14手机怎么投屏到mac电脑上面?
  9. 必须学会的几道家常菜
  10. 微信小程序怎么添加底部菜单按钮
  11. hive 转拼音udf_自定义UDF函数:将汉字转换成拼音
  12. 学习Gluster创建不同卷,设置NFS挂载
  13. EPICS简单实例2 -- subroutine记录(sub)介绍与使用
  14. Windows OpenGL 图像褐色
  15. 【听书笔记-0515】-《清单革命》
  16. 为什么现在我们很难打造一支跟中供铁军一样的销售队伍?
  17. 4500字归纳总结,一名软件测试工程师需要掌握的技能大全
  18. 【RST笔记6】scheduler
  19. Java程序设计——事务管理(JDBC编程)
  20. 矿大G毕业生的礼物(贪心)

热门文章

  1. PaaS Innovation 2017开幕在即,共襄技术演进与商业碰撞盛宴
  2. 三刺激值计算公式_常用的车削、铣削、钻削加工计算公式全在这里了,随用随查...
  3. 线程同步 生产者消费者 java_Java线程同步:生产者-消费者 模型(代码示例)
  4. torch.load No module named
  5. app:compileDebugJavaWithJavac
  6. go语言的defer语句
  7. WIN10 右键 powershell 修改
  8. Python报错TypeError: 'str' object is not callable
  9. Linux中安装配置hadoop集群
  10. The SDK Build Tools revision (23.0.3) is too low for project ':app'. Minimum required is 25.0.0