我正在尝试使用dolphindb中的函数replay重播我的数据,以便进行一些回测。但是参数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秒,为什么?
答案 0 :(得分:0)
要重播数据库中的历史数据,从概念上讲,我们需要两个步骤:(1)检索和准备数据,以及(2)传输准备好的数据。
DolphinDB将输入数据分为许多部分,因此即使输入数据很大,系统也不会抛出OOM。重播功能背后有两个管道。人们从数据库中检索一小部分数据。第二个管道流检索的数据。您提到的参数parallelLevel
仅用于第一个管道。也就是说,告诉DolphinDB并行检索数据的一小部分。除非瓶颈在于数据检索和准备,否则此参数不会影响重放速度。