服务项目

需求沟通

算法交易系统的数据存储

如果我们想追求完美,即持久、一致地存储大量数据并快速进行实时分析,这能做到吗?尽管计算机科学理论警告我们不要太贪心,但是有一些工程思想值得参考。



主要设计目标包括:

快速将大量事件提取到持久存储中(每天工作数小时,约 250K-1M 个事件 / 秒;我们预期每个事件约为 100-200 字节,并具有 10-30 个字段)

实时分析,包括汇总

能够处理大量模式和趋势历史数据

基于以上的设计目标,我们可以构建几种解决方案,不过基本上都需要对数据存储进行分层,以提供多种附加能力。

其中的一种解决方案为:

将交易系统中的所有事件存储到一个快速数据存储中,例如仅附加文件日志(可能在高可用性系统的多个节点上复制或重新创建)。该文件提供持久存储,但没有真正的查询功能。

将该日志文件的内容顺序提取到一个内存数据库 / 缓存中。这个步骤可以很快,甚至是实时的,因为在这一层没有一致性检查、复制或持久性要求。该层应提供实时聚合和分析。

定期将内存数据库的内容持久存储到磁盘(每小时或一天结束时等)。这里使用可以对磁盘上存储的大量数据进行操作的数据库。本质而言,对存储的这些数据进行的操作被视为脱机或批处理模式,并且不期望瞬时响应时间。

(可选)仅将日志文件的相关部分提取到一个关系型数据库中,以提交每日 / 每月报告。例如,只有订单和执行会被加载到关系型数据库中,而市场报价会被跳过。

另外,这个解决方案也是可以简化的,例如可以将步骤 2、3 和 4 组合起来,使用一个提供多种存储和分析数据模式的工具。


楚一科技致力于提供咨询服务、软件研发、系统集成、互联网增值服务。可以为您提供最完美的软件开发解决方案!

联系方式:13100699922

www.whcykj.cn       

www.whcykj.com.cn

关注“楚一科技”公众号了解更多精彩资讯




文章评论:

专业的软件开发/系统开发、品牌设计/网站建设,就选楚一科技!

选择专业的企业服务公司,服务更靠谱!

点击立即咨询>
底部客服