在 PyQ 中使用 hopen 打开连接句柄并更新 kdb table

Open connection handle and update kdb table with hopen in PyQ

我想使用 PyQ 解析 json 对象,然后通过打开的句柄推送解析的数据,在不同的端口上更新键控 kdb table 运行键控 table.

要打开句柄并更新 q 中的 kdb table 需要以下步骤...

在服务器上;打开端口,定义一个table和一个函数

q)\p 5000
q)t:([keycol:`aa`bb`cc]col2:10 20 30; col3: 1.1 2.2 3.3)
q)f:{[x;y]update col2: y from t where keycol=x}
q)t
keycol| col2 col3
------| ---------
aa    | 10   1.1
bb    | 20   2.2
cc    | 30   3.3

在客户端;打开连接句柄,调用函数,关闭连接句柄...

q)h:hopen `::5000
q)h (`f; `aa; 99)
keycol| col2 col3
------| ---------
aa    | 99   1.1
bb    | 20   2.2
cc    | 30   3.3
q)hclose h

在 PyQ 中执行此操作的正确语法是什么?

您的客户端命令可以按如下方式转换为 PyQ:

>>> h = q.hopen('::5000')
>>> h(('f','aa',99)).show()
keycol| col2 col3
------| ---------
aa    | 99   1.1
bb    | 20   2.2
cc    | 30   3.3
>>> h.hclose()
k('::')

请注意,这不会更新服务器上的 table,除非您将 f 更改为使用 `t 而不是 t。