如何使用KDB实现动态订户?

公理

我正在尝试在kdb-tick系统中实现动态订户,从而根据使用者提供的查询将事件的子集传递给给定的使用者。

例如给定一批事件,即:

flip `source`channel`value!(10?`a`b`c;10?`a`b`c;10?10)

source channel value
--------------------
a      a       4
b      b       5
a      c       4
b      a       2
c      c       7
c      b       8
c      a       5
a      c       6
b      a       4
b      a       1

报价装置只应发送没有`c通道的事件,即

source channel value
--------------------
a      a       4
b      b       5 
b      a       2 
c      b       8
c      a       5 
b      a       4
b      a       1

我试图通过解析动态条件来实现此目的,如下所示:

q).tp.subscribers

hp        | host isOpen port   h   subs
----------| --------------------------------------------------
:test:5000| test 0      5000   6   "enlist(not;(in;`channel;enlist`c))"

其中,subs是功能选择语句的条件参数,该条件选择语句在以下代码中使用:

.tp.send:{neg[x] y};

.tp.reval:{[batch;subscriber]
  .tp.send[raze .subscriber`h] reval[parse["?[batch;",raze[subscriber`subs],";0b;()]"]]
  };

// Called with event batch 
.tp.broadcast:{[batch]
   .tp.reval[batch]'[select from .tp.subscribers where isOpen] 
  };

由于无法通过功能选择语句在非全局上下文中无法处理批处理,因此此操作失败。我想知道如何有效地实现此功能?

任何人都可以向我提出建议或向我指出与该问题陈述的解决方案有关的信息。您的建议将不胜感激。抱歉,如果这是一个新手问题。谢谢

特里林奇

我认为您期望条件参数的字符串形式是您的问题的一部分(这反过来要求您进行parse字符串化的功能选择,并且解析假定为全局)。

为什么不期望有条件参数的列表形式呢?然后,无需解析,您可以创建本地功能选择。例如

.tp.subscribers:([hp:1#`:test:5000]subs:enlist(not;(in;`channel;1#`c)))

q){[batch] reval ?[batch;(0!.tp.subscribers)`subs;0b;()]}flip `source`channel`value!(10?`a`b`c;10?`a`b`c;10?10)
source channel value
--------------------
a      a       4
b      b       5
b      a       2
c      b       8
c      a       5
b      a       4
b      a       1

或者让用户指定一个lambda并运行它(尽管我想您会失去reval在这种情况下使用的能力):

.tp.subscribers:([hp:1#`:test:5000]subs:enlist{select from x where not channel=`c})

q){[batch] @[first(0!.tp.subscribers)`subs;batch;()]}flip `source`channel`value!(10?`a`b`c;10?`a`b`c;10?10)
source channel value
--------------------
a      b       9
c      b       0
b      b       0
b      a       9
b      a       3
b      a       9

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何实现动态选择?

来自分类Dev

如何动态实现ionRangeSliders

来自分类Dev

如何实现动态索引?

来自分类Dev

kdb-如何使用功能选择创建求和动态列的列表

来自分类Dev

如何使用VisualStateManager代替DataTrigger来实现动态绑定?

来自分类Dev

如何在Android的材质设计中实现/使用动态类型

来自分类Dev

如何使用jOOQ的动态查询按字段值实现订单

来自分类Dev

如何使用Highcharts来实现这种从右到左的动态转换效果?

来自分类Dev

如何动态地使用虚拟方法实现类

来自分类Dev

如何使用ShinydashboardPlus的轮播实现动态数量的幻灯片?

来自分类Dev

iOS:如何使用动态长度文本实现设计?

来自分类Dev

如何使用Angular Material实现动态flex值

来自分类Dev

如何动态地使用虚拟方法实现类

来自分类Dev

如何实现动态行跨度

来自分类Dev

如何在Q(kdb)中使用“ IN”查询?

来自分类Dev

如何在约束布局中使用动态宽度实现以下布局?

来自分类Dev

如何在Angular中使用省略号和标签实现(动态宽度)文本输入?

来自分类Dev

使用 UnityContainer 进行动态 IOC 映射 - 我该如何实现?

来自分类Dev

如何使用自定义搜索引擎 REST API 实现动态站点搜索

来自分类Dev

如何将数据附加到 `from([urls])` 并使用 RxJS 实现动态

来自分类Dev

如何在不使用 for 循环的情况下在 R 中实现动态计数?

来自分类Dev

Hibernate如何实现动态数据结构

来自分类Dev

如何动态地实现特定功能?

来自分类Dev

如何在C中实现动态数组?

来自分类Dev

春季:如何动态获取bean实现?

来自分类Dev

如何快速实现动态背景图像

来自分类Dev

如何动态实现社交媒体共享按钮?

来自分类Dev

如何动态地实现特定功能?

来自分类Dev

如何在WCF中实现动态端点

Related 相关文章

  1. 1

    如何实现动态选择?

  2. 2

    如何动态实现ionRangeSliders

  3. 3

    如何实现动态索引?

  4. 4

    kdb-如何使用功能选择创建求和动态列的列表

  5. 5

    如何使用VisualStateManager代替DataTrigger来实现动态绑定?

  6. 6

    如何在Android的材质设计中实现/使用动态类型

  7. 7

    如何使用jOOQ的动态查询按字段值实现订单

  8. 8

    如何使用Highcharts来实现这种从右到左的动态转换效果?

  9. 9

    如何动态地使用虚拟方法实现类

  10. 10

    如何使用ShinydashboardPlus的轮播实现动态数量的幻灯片?

  11. 11

    iOS:如何使用动态长度文本实现设计?

  12. 12

    如何使用Angular Material实现动态flex值

  13. 13

    如何动态地使用虚拟方法实现类

  14. 14

    如何实现动态行跨度

  15. 15

    如何在Q(kdb)中使用“ IN”查询?

  16. 16

    如何在约束布局中使用动态宽度实现以下布局?

  17. 17

    如何在Angular中使用省略号和标签实现(动态宽度)文本输入?

  18. 18

    使用 UnityContainer 进行动态 IOC 映射 - 我该如何实现?

  19. 19

    如何使用自定义搜索引擎 REST API 实现动态站点搜索

  20. 20

    如何将数据附加到 `from([urls])` 并使用 RxJS 实现动态

  21. 21

    如何在不使用 for 循环的情况下在 R 中实现动态计数?

  22. 22

    Hibernate如何实现动态数据结构

  23. 23

    如何动态地实现特定功能?

  24. 24

    如何在C中实现动态数组?

  25. 25

    春季:如何动态获取bean实现?

  26. 26

    如何快速实现动态背景图像

  27. 27

    如何动态实现社交媒体共享按钮?

  28. 28

    如何动态地实现特定功能?

  29. 29

    如何在WCF中实现动态端点

热门标签

归档