我是q和KDB的新手。为了测试我在我的本地Windows PC上安装了KDB 3.4,其中tickerplant和RDB都在默认端口运行并使用vanilla tick.q,u.q和r.q。
我有一个Java流程,它连接到自动收报机工厂并执行
".u.upd:insert" once followed by multiple update queries like below
".u.upd[`Offers ; ( 2016.12.20D11:43:08.212,`655044AE5,`CITIXX,`CITIXXX74,`CITIXXX,`CITIXXX74,2545,`SELL,`SUBJECT,`OPEN,`PRICE,101.693e,200j,1j,2016.12.20D11:43:08.212)]"
我确实看到优惠表在代码工厂(localhost:5010)中更新,但我没有看到任何这些被发布到RDB(localhost:5011),尽管它有更新表的架构。此外,如果java进程直接连接到RDB,那么我确实看到了RDB中的更新,但我想了解为什么更新没有通过我当前的设置从ticker工厂发布到RDB。
答案 0 :(得分:2)
好像你还没有从rdb进程订阅tickerplant - 尝试从rdb运行.u.sub[`Offers;`]
到tickerplant句柄。
有关kdb + tick的更多信息,请访问http://code.kx.com/q/tutorials/startingq/tick/
答案 1 :(得分:2)
这里的问题是你实际上正在重新定义.u.upd函数,该函数应该处理好几件事:
通过重新定义.u.upd,您错过了发布数据的关键步骤,保持默认定义应该有助于解决您的问题。