Kdb 将表发布回tickerplant
我试图直接从实时引擎发布一个表。基本上,我有一个实时引擎,它连接到tickerplant,订阅表的原始版本,并添加一些新列。现在我想把这个表的增强版本推回到tickerplant。我有一个pub函数,它以以下方式推送表格:Kdb 将表发布回tickerplant,kdb,Kdb,我试图直接从实时引擎发布一个表。基本上,我有一个实时引擎,它连接到tickerplant,订阅表的原始版本,并添加一些新列。现在我想把这个表的增强版本推回到tickerplant。我有一个pub函数,它以以下方式推送表格: neg[handle](`.u.upd;`tablename;tabledata) 问题是我得到了一个类型错误。我查看了表的模式,它们略有不同 meta table1 c | t f a ----------------| ----- time
neg[handle](`.u.upd;`tablename;tabledata)
问题是我得到了一个类型错误。我查看了表的模式,它们略有不同
meta table1
c | t f a
----------------| -----
time | p
sym | s
col1 | c
col2 | s
col3 | i
meta table2
c | t f a
----------------| -----
time | p
sym | s
col1 | C
col2 | s
col3 | i
资本
C
很可能就是问题所在。但是,我不能用大写字母在tickerplant中加载模式。你知道我该怎么做吗 您可以使用泛型列表类型定义架构,它将从第一次插入中获取其类型
tab:([] col1:`int$();generic:();col3:`$())
另一个问题是,您的tickerplant可能希望将一个列表(列表)发送到其.u.upd,而不是发送给它的表,因此您可能希望在发送前对表进行
值翻转。(请注意,如果第一列不是时间戳,tickerplant将尝试预先添加时间戳)您可以使用泛型列表类型定义模式,它将从第一次插入中获取其类型
tab:([] col1:`int$();generic:();col3:`$())
另一个问题是,您的tickerplant可能希望将一个列表(列表)发送到其.u.upd,而不是发送给它的表,因此您可能希望在发送前对表进行值翻转。(请注意,如果第一列不是时间戳,tickerplant将尝试预先添加时间戳)元表中的大写字母C是嵌套传入数据的结果。要解决这个问题,您应该用一个非类型化的空列表声明模式
table2:([] time:`timestamp$();sym:`$();col1:();col2:`$();col3:"I"$())
因此,在输入结果之前,其元数据为:
q)meta table2
c | t f a
----| -----
time| p
sym | s
col1|
col2| s
col3| i
然后将对其进行更新,以匹配表中的第一个条目
此外,.u.upd要求输入不是表而是列表列表,这可以解决
使用:
元表中的大写字母C是嵌套传入数据的结果。要解决这个问题,您应该用一个非类型化的空列表声明模式
table2:([] time:`timestamp$();sym:`$();col1:();col2:`$();col3:"I"$())
因此,在输入结果之前,其元数据为:
q)meta table2
c | t f a
----| -----
time| p
sym | s
col1|
col2| s
col3| i
然后将对其进行更新,以匹配表中的第一个条目
此外,.u.upd要求输入不是表而是列表列表,这可以解决
使用:
嘿,谢谢!这就是我要找的。但是,除非我正在丢失数据,否则没有必要使用值flip tabledata
。事实上,它甚至不起作用。我想我们的upd功能是用来处理98型通过手柄进入的。嘿,谢谢!这就是我要找的。但是,除非我正在丢失数据,否则没有必要使用值flip tabledata
。事实上,它甚至不起作用。我认为我们的upd功能是用来处理通过手柄的98型。