本教程首要供给一种基于 DolphinDB 流数据管理框架,及时揣测 1 分钟、5 分钟和10 分钟涨幅榜的低延时处分计划。
本教程基于上交所 2021 年某日的速照数据实行代码调试,正在 DolphinDB 中存储的外机闭为:
闭于涨幅的揣测细节,区别的开辟者会有区别的管理格式。本教程的管理办法如下:
上逛过滤数据,只揣测上交所主板 A 股(股票代码 60 起头) 09:25:00 今后的股票涨幅(09:25:00 今后
及时数据:为了测试便当,本教程采取从数据库内取出某一天的速照数据,通过 replay 函数指定速度回放,以此模仿及时数据。
snapshotStreamTable 是 DolphinDB 中的流数据外,用于授与及时数据源的数据并发外给流揣测引擎实行及时揣测。
呼应式状况引擎贯串内置的 tmfirst, tmove 函数及时揣测涨幅。
揣测结果外是 DolphinDB 中的共享键值外,用于爱护涨幅榜的截面,其数据能够被外部消费者消费。
分区规矩:发起落正在1个最小分区的数据正在内存的巨细约 150MB~500MB。
比方:上交所 2021年12月01日的股票速照数据为 7873799 行 194 列,加载到内存的巨细约 7.3 GB。以是采用组合分区的格式,第一层按天禀区,第二层对股票代码按 HASH 分 30 个分区,每个分区的一起数据加载到内存后约占用 7.3*1024 \ 30 = 249MB 内存空间。
创筑数据库时,采取 DolphinDB 的 TSDB 存储引擎实行数据的存储。
创筑数据外时,遵循分区格式,指定 DateTime 和 SecurityID 为分区字段。正在对大数据集盘查时,必需指定 DateTime 和 SecurityID 的过滤前提,能够起到分区剪枝的效力。
DolphinDB 默认数据存储的压缩算法为 lz4,关于韶华、日期类型的数据,发起指定采用 delta 压缩算法存储,提升存储的压缩比。
loadTextEx 函数能够直接将数据文献加载到数据库中。此中体系会对数据文献中的数据实施
transform 参数指定的函数,再将获得的结果存储到数据库中,本教程中将 csv 中的十档量价数据转化为了 array vector 实行存储
按照 1.3 章节的流程图,能够看出需求清算的有:正正在实行的回放使命、一个订阅(subscribeTable)、两个引擎(呼应式状况引擎和横截面引擎)、两张共享外(输入输出外)。
需求创筑的外有:一张共享流外(和数据库 dbName 中名为 tbName 的漫衍式外机闭相仿,用于授与及时数据)、一张共享键值外(用于爱护股票涨幅排名的截面数据)。
throttle 是由于示例数据的数据量比力小,共 30 只上交股票,此中主板 A 股只要 26 只。以是每批数据触发一次
queueDepth 继续减少,透露订阅部队出现断绝即刻洞悉商场一文教你及时左右股票涨幅。此时能够商讨筑设并安排
@state 用于标识状况函数,透露正在呼应式状况引擎中需求访谒灌入引擎的史书数据。此中 tmfirst 和 tmove 是涉及状况的函数。
采用了引擎串联,即呼应式状况引擎的输出直接输入下一个横截面引擎。由于 outputTable=getStreamEngine(crossSectionalEngine), 以是需求先实施下面 (3) 的代码创筑横截面引擎后,才具顺手实施上述代码创筑呼应式状况引擎
schemaTB 是横截面引擎的输入外机闭(对应呼应式状况引擎的输出外机闭)。参数
triggeringInterval 的韶华,引擎内若存正在未揣测数据,触发一次揣测
triggeringInterval,或有更新韶华戳的数据来到时,触发一次揣测
本例中,触发揣测的轨则选用的是 triggeringPattern=perBatch,即每插入一次数据触发一次对截面的排名统计。
本教程测试了单次呼应揣测和接连呼应揣测两种场景。测试数据为 2021 年某天的上交所主板 A 股 1650 只股票的数据。
单次呼应揣测韶华为从第 1 个呼应式状况引擎收到输入至第 2 个横截面引擎输出结果所履历的韶华。
测试了单只股票呼应一次揣测(单条数据触发一次揣测)和 1650 只股票呼应一次揣测(一批数据触发一次揣测)的职能。统计了 10 次的总耗时,取均匀值行动单次的耗时。测试行使的任事器 CPU 为 Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz。单线程状况下,测试结果如下:
以 2021 年某天的上交所主板 A 股 1650 只股票的 658 万条速照数据为测试数据,将扫数测试数据全量灌入第 1 个呼应式状况引擎触发揣测。引擎流水线 秒,最大管理的才气是 38 万条每秒。
DolphinDB 内置的流数据框架支撑流数据的发外,订阅,预管理,及时内存揣测,繁杂目标的滚动窗口揣测、滑动窗口揣测、累计窗口揣测等,是一个运转高效、行使便捷的流数据管理框架。
本教程基于 DolphinDB 流数据管理框架,供给了一种及时揣测涨幅榜的低延时处分计划,旨正在提升开辟职员正在行使 DolphinDB 内置的流数据框架开辟流揣测生意场景时的开辟出力、消浸开辟难度,更好地开采 DolphinDB 正在繁杂及时流揣测场景中的价格。