修改订阅的表名

Ter*_*rry 0 kdb

我有一个订阅 TP 的引擎。TP中的表名称称为TradeTab。当我在引擎中订阅时,我希望该表名为 TradeRec。这怎么可能做到呢?

h(`.u.sub;`TradeTab;`long$til 10)
Run Code Online (Sandbox Code Playgroud)

Dis*_*ron 7

您需要更新upd您的tickerplant将在订阅者进程中调用的函数,该函数用于将数据插入到表中。

TradeTab您可以通过多种方式执行此操作,例如使用映射到的字典TradeRec,尽管您需要为订阅的每个表进行映射。

upd:{
  d:enlist[`TradeTab]!enlist `TradeRec;
  d[x] insert y
 }
Run Code Online (Sandbox Code Playgroud)

或者您可以使用条件,以下内容仅映射TradeTabTradeRec,其余内容将插入到tickerplant 中给定的表名称中。

upd:{
  $[`TradeTab=x;
    `TradeRec insert y;
    x insert y
   ];
 }
Run Code Online (Sandbox Code Playgroud)

最重要的是,需要调用表的架构TradeRec,并将该架构与 相匹配TradeTab

如果您使用默认值.u.sub创建空表(使用它返回的空表,例如

(set) . h(`.u.sub;`TradeTab;`)
Run Code Online (Sandbox Code Playgroud)

您可以使用类似的方法更改表的名称

(set) . `TradeRec,1_h(`.u.sub;`TradeTab;`)
Run Code Online (Sandbox Code Playgroud)

在这里,我将由tickerplant提供的列表中的第一项(表名称)替换为您想要重命名的表名称。