0

我正在尝试在 dolphindb 中重放函数来重放我的数据,以便进行一些回测但是参数parallelLevel 不会影响它重放的速度。

n = 30000000
quotes = table(100:0, `date`time`sym, [DATE,MINUTE,INT])
tableInsert(quotes, take(2018.12.01,n),09:30m + 1..n, 1..n)
sch = select name,typeString as type from  quotes.schema().colDefs
share streamTable(100:0, sch.name,sch.type) as outQuotes
timer replay([quotes],[`outQuotes], ,`time , ,1)

不管parallelLevel怎么设置,回放总是需要2.2秒左右,这是为什么呢?

4

1 回答 1

0

要在数据库中回放历史数据,我们在概念上需要两个步骤:(1) 检索和准备数据,以及 (2) 流式传输准备好的数据。

DolphinDB 将输入数据拆分为多个部分,这样即使输入数据很大,系统也不会抛出 OOM。回放功能背后有两条管道。一个从数据库中检索一小部分数据。第二个管道流式传输检索到的数据。parallelLevel您提到的参数仅适用于第一个管道。也就是说,告诉 DolphinDB 并行检索小部分数据。除非瓶颈在于数据检索和准备,否则此参数不会影响回放速度。

于 2019-06-01T03:02:17.070 回答