金融市场L1/L2的报价和交易数据是量化交易研究非常重要的数据,随着数字业务快速演进,具有时序特征的交易数据激增,对底层数据库和量化分析系统提出了更高的要求。传统的关系数据库支撑这样的数据量级,即便分库分表,查询性能也远远无法达到要求。常用列存NoSQL数据库可以解决这个数据量级的存储,但是这类通用的存储引擎缺乏对时序数据的友好支持,在查询和计算方面都存在严重的不足,且无法支持对量化金融场景实时业务计算、流批一体分析、多源数据融合分析。
阿里云原生多模数据库Lindorm联合浙江智臾DolphinDB发布金融高频交易数据量化分析与处理方案,通过云原生方式整合DolphinDB实时高效的数据处理能力和Lindorm多模海量数据融合存储分析能力,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为金融场景海量时序数据的量化分析计算提供一站式解决方案。方案操作简单,可扩展性强,具有良好的容错能力及优异的多用户并发访问能力。
方案优势能力
数据库存储
高吞吐低延迟的列式内存引擎。
列式混合引擎(基于内存和磁盘)为存储海量数据的数据仓库提供了优越性能。
灵活的分区方案:支持值分区、范围分区、列表分区、哈希分区和组合分区。
支持单表百万级别的分区数,大大缩减对海量数据的检索响应时间。
库内分析:可在数据库中进行复杂的编程和运算,避免数据迁移的耗时。
提供多种SQL功能的扩展,包括非同时连接、窗口连接、透视表、复合列等。
支持同一个分区数据库内多表快速联结。
数据压缩。
支持多用户并发访问。每个用户以给定的权限在独立的会话中工作。
元数据高可用:多个控制节点使用Raft协议实现强一致性。
分区数据高可用:一个数据库可以包含上百万个分区,分区的多副本之间使用改良的二阶段提交协议实现分区副本的强一致性。
运维高可用:在线增加服务器节点,在线平衡节点间数据,在线为分区数据表增加字段。
数据库的增量备份机制:当分区副本数为N的时候,在N-1个节点宕机的情况下,保证系统仍可以持续写入和读取。
使用内嵌的分布式文件系统自动管理分区数据及其副本,为分布式计算提供负载均衡和容错能力。
数据库内数据分析
编程语言功能强大且表达能力丰富。支持命令式编程、函数式编程、向量编程、SQL编程和RPC(远程函数调用)编程。
编程语言的语法与SQL和Python非常相似,易上手易使用。
内置1000多个函数,涵盖绝大多数常用的数据处理、数据分析、机器学习等功能,以及文件调用与数据库管理等功能。
通过内存引擎、数据本地化、细粒度数据分区和并行计算实现高速的分布式计算。
提供即时编译版本,极大加速for-loop, while-loop与if-else等语句的执行速度。
支持多种计算模型,包括pipeline、map-reduce和迭代计算。
为动态数据分布式计算提供快照隔离。
通过在多任务中共享内存的数据副本来提高系统吞吐量。
可便捷地分析分布式数据。在单个节点上编写脚本后,无需编译和部署即可在整个集群上执行。
流数据
无缝集成流数据和数据库表。可以使用SQL查询本地流数据或分布式流数据。
内置时间序列、横截面、异常检测以及响应式状态引擎等多种流数据聚合引擎。
可使用DolphinDB中的用户自定义函数处理信息。
亚毫秒级的信息延迟。
使用实时数据更新历史数据仓库只有亚秒级延迟。
可以从任意偏移量重现历史信息。
提供可配置的选项(如分区、工作线程、队列)用于流量控制和性能调优。
生态
提供多种编程API,包括C++、Python、Java、C#、Go和Excel等。
已有的pandas程序只需做少量改动即可通过pandas API (orca) 在DolphinDB中运行。
提供多种插件,包括MySQL、ODBC、HDF5、Parquet等。
内置Web服务器,用于集群管理、性能监控和数据访问。
提供DolphinDB GUI与VS Code插件等IDE(集成开发环境)用于数据分析。
通过内置函数、Web接口或Prometheus实现系统监控。