首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在分段引擎中定时刷新股票价格

如何在分段引擎中定时刷新股票价格
EN

Stack Overflow用户
提问于 2021-06-29 15:33:08
回答 1查看 12关注 0票数 0

如何在横截面引擎中定时刷新股票价格?

分段式引擎的聚合器表可以是结果表。如果我想定期更新股票的价格,我应该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2021-09-10 02:25:34

DolphinDB中的横截面表可以为聚合计算提供中间数据表,但横截面表也可以是最终结果。例如,我们需要定期刷新某只股票的最新交易价格。传统的想法是从实时交易表中按代码筛选股票,并检索最后一条记录。随着时间的推移,交易表的数据量会迅速增加。如果您经常在查询中执行此操作,无论从系统的资源消耗还是查询的性能来看,这都不是最佳实践。截面表始终只保存所有股票的最新交易数据,数据量稳定,非常适合这种定时轮询的场景。要使用截面表作为结果,需要在创建截面表时清空metrics和outputTable这两个参数。示例代码如下:

代码语言:javascript
复制
def clearEnv(){    
unsubscribeTable(server="", tableName="trades", actionName="tradesCrossAggregator")    dropAggregator("CrossSectionalDemo") 
    undef("trades", SHARED) 
    undef("outputTable", SHARED) 
}
def writeData(n, trades){
    for (i in 0:n) {
        timev = take(now(), 3)
        symv   = rand(`A`B`C, 3)
           pricev = rand(10.0, 3)
           qtyv   = rand(10 20 30 , 3)
        insert into trades values(timev, symv, pricev,qtyv)
        sleep(1000)
    }
}

login("admin", "123456")//clearEnv()//undef all
share(streamTable(10:0, `time`sym`price`qty, [TIMESTAMP, SYMBOL, DOUBLE, INT]), "trades") share(table(1:0, `updateTime`maxQty`maxDollarVolume`sumDollarVolume`count, [TIMESTAMP, INT, DOUBLE, DOUBLE, INT]), "outputTable") tradesCrossAggregator=createCrossSectionalAggregator(name="CrossSectionalDemo", dummyTable=objByName("trades"), keyColumn="sym", triggeringPattern="perRow")subscribeTable(server="", tableName="trades", actionName="tradesCrossAggregator", offset=-1, handler=append!{tradesCrossAggregator}, msgAsTable=true)

submitJob("jobId","writeDataTrades",writeData{20, objByName("trades")})

select * from tradesCrossAggregator
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68174368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档