本文主要是介绍[BIZ] - 1.金融交易系统数据特点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 典型数据汇总
数据 | 说明 | 新增数据量(条/天) | Qps(条/s) | 消息大小(Byte) | 实时性 | 可丢失性 | 可恢复性 |
实时行情 | 1.使用场景:交易,报价,策略验证; 2.冷热分离:彭博行情/其他行情;黄金&期货行情/固守行情 | 5亿 | 3万 | 1.5K | < 5ms | < 5% | N |
风控数据 | 容易造成BigKey问题 数据事后风控 | 500万 | 3万 | 50K | 分钟级别 | 可丢失 | N |
监控数据 | 数据种类: 1.中间件监控 2.应用监控 | 10亿 | 5万 | 215 | 亚分钟级别 | 可丢失 | N |
excel报价数据 | 做市报价 | 3亿 | 2万 | 3M | 压秒 | 可丢失 | N |
订单数据 | 含做市 | 1千万 | 1万 | 1.5K | < 3ms | 不可丢失 | Y |
权限数据 | 权限控制粒度小 容易造成HotKey问题 | 1千万 | 5万 | 215 | < 1ms | 不可丢失 | Y |
通过上表,我们可以知道,金融交易系统的数据具有以下特点:
1.1 数据量极大
交易系统的数据量特大,主要来自以下几种类型的数据。
1.1.1 行情
行情是交易系统最为重要的数据,交易就是在不断变化的行情中寻找时机来实现盈利的。海量的行情主要分成两种,一种是tick数据(也叫逐笔行情),例如彭博行情数据,它会将每一笔交易的行情都发布出来,这种数据量巨大,一天就有4亿多条数据;另一种是每隔500ms发布一次行情,这种相对来说数据量少很多,一天大概1亿条左右。再加上各家公司会根据需求对行情进行进一步的加工,如聚合多种行情形成的聚合行情。数据量一天就会达到5亿多条。
1.1.2 报价
作为做市商,需要根据行情,通过一定的算法(如跟随当前行情报价、根据设定的差值及当前行情报价,根据行情计算曲线,然后报价)对外报价。报价数据一天的数据量能达到3亿条。
1.1.3 监控
监控数据主要包括中间件的监控数据,服务实例的内存和CPU监控数据等,数据量和QPS非常高。一天的数据量能达到10亿条,在进行监控图标展示时,必须进行采样处理。
1.2 并发性极高
1.2.1 行情
对于行情而言,QPS基本保持在3万/s以上,高峰时段(国内交易时间9:00 - 11:30左右,国外交易时间21:.00 - 23:00)的QPS能达到3万/s。
1.2.2 权限
对于交易高峰时段(手动单,电子单,做市,量化),会造成权限数据的访问频繁达到5万/s。主要是读高峰,权限写操作比较少,而且一般在开始交易前就已经完成。
1.2.3 监控
监控数据的峰值能达到5万/s,主要是写操作并发高。
1.2.4 风控
风控数据分成两种,一种是partial batch,数据量少,时间间隔短,例如每10s计算一次;另一种是full batch,会根据当前行情全量计算一次所有产品的风控指标数据,例如每30min计算一次。由于full batch的计算量大,而且希望结果能够一次性给到交易员查看,议事交易员能够看到不同产品的统一切面数据,导致风控数据的瞬间并发值特别高,达到3万/s。
1.2.5 报价
由于做市交易和量化交易的存在,导致报价数据量特别大,峰值能够达到2万/s。
1.2.6 订单
交易方式的多样化,如手工单,电子单,做市交易以及量化交易,再加上订单策略,如冰山策略等,导致订单的并发量在高峰时可以达到1万/s。
1.3 延时要求极低
1.3.1 行情
1.3.1.1 实时行情
实时行情分量两大类,一类是当前会进行交易的产品行情数据,另一类是计划以后会进行交易,当前只是用于策略测试的行情数据。
对于会进行交易的产品行情数据,要求交易所或数据商的数据进入交易系统后,必须在3ms以内推送到各个下游服务。
数据流的大致过程:
交易所 --> 行情接入服务(接入数据,加工数据) -> MQ(MQ间消息同步) -> 下游服务
1.3.1.2 历史行情
行情,报价,交易,权限相关的延时必须极低;监控,
差异大
1.4 消息体大
差异也大
1.5 数据质量根据场景差异明显
例如行情,实时行情延时要求在3ms以内;对于历史行情,如果三年内的行情,延时可以在亚秒级别;对于五年内的行情,延时可以在分钟级别;五年以外的行情,可以存档。
对于订单数据,要求绝对不能丢失,延时在5ms以内。
权限数据,要求不能丢失,且延时在3ms以内。
这篇关于[BIZ] - 1.金融交易系统数据特点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!