【问题标题】:KDB +tick - updates not flowing from ticker plant to RDBKDB +tick - 更新不会从股票代码工厂流向 RDB
【发布时间】:2016-12-21 16:12:48
【问题描述】:

我是 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) 中更新了 Offers 表,但我没有看到其中任何一个被发布到 RDB (localhost:5011),尽管它具有正在更新的表的架构。此外,如果 java 进程直接连接到 RDB,那么我确实在 RDB 中看到了更新,但我想了解为什么没有使用我当前的设置将更新从股票工厂发布到 RDB。

【问题讨论】:

    标签: java kdb


    【解决方案1】:

    这里的问题是您实际上是在重新定义 .u.upd 函数,它应该处理几件事情:

    • 检查是否需要运行 EOD
    • 检查传入数据的时间戳,如果缺少则添加一个
    • 根据传入数据构建表并发布给下游订阅者
    • 记录更新调用以进行 RDB 恢复

    通过重新定义 .u.upd,您错过了发布数据的关键步骤,保留默认定义应该有助于解决您的问题。

    【讨论】:

    • 这也是我的样子。您不应该覆盖 .u.upd 在tickerplant中,因为最初的问题似乎暗示已经完成
    【解决方案2】:

    您似乎还没有从 rdb 进程订阅 tickerplant - 尝试从 rdb 运行 .u.sub[`Offers;`] 到 tickerplant 句柄。

    更多关于 kdb+ tick 的信息可以在http://code.kx.com/q/tutorials/startingq/tick/找到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2011-01-23
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多