比较kdb中两个不同表中的数据
Compare data in two different tables in kdb
我想比较同一 table 的两个不同实例的数据。
我想我可以比较 table 中的空值,但是,我不确定如何将其推广到所有 table。
例如:
这是 table 我有:
a:([]a:0n 2 3;b:"a", " ","c")
我正在尝试使用以下代码计算所有列的空值:
{count where (null a[x]) =1b} each cols a
我如何使用它来概括所有 tables?并使用代码与远程 tables?
进行比较
h: hopen `:2001
比较来自远程 table 的数据可能非常棘手,这将取决于许多因素,例如 table 大小、table 是否已分区等。
假设 table 在内存中并且您使用空检查作为 table 签名,您可以在远程会话上执行此操作,然后将其与本地实例进行比较。
/Remote service - port 2001
q)table1:([]col1:0n 2 3 0n ;col2:"a", " ","ca")
q)table2:([]col3:1 2 0n 4 ;col4:```b`)
/local
q)table1:([]col1:0n 2 3 0n ;col2:"a", " ","ca")
q)table2:([]col3:1 2 0n 4 ;col4:```b`d) //different from remote
q)table3:([]col5:1 2 0n 4 ;col6:```b`d) //local table
q)f: { tables[]!{[t] (), {sum null x} each flip 0!value t}each tables[]} //tables unkeyed
q)remote:`::2001(f;::)
q)remote
(`s#`table1`table2)!((`col1`col2)!2 1;(`col3`col4)!1 3)
q)local:f[]
q)local
(`s#`table1`table2`table3)!((`col1`col2)!2 1;(`col3`col4)!1 2;(`col5`col6)!1 2)
q)remote~'local //only table1 signature matches
(`table1`table2`table3)!100b
我想比较同一 table 的两个不同实例的数据。 我想我可以比较 table 中的空值,但是,我不确定如何将其推广到所有 table。
例如: 这是 table 我有:
a:([]a:0n 2 3;b:"a", " ","c")
我正在尝试使用以下代码计算所有列的空值:
{count where (null a[x]) =1b} each cols a
我如何使用它来概括所有 tables?并使用代码与远程 tables?
进行比较h: hopen `:2001
比较来自远程 table 的数据可能非常棘手,这将取决于许多因素,例如 table 大小、table 是否已分区等。
假设 table 在内存中并且您使用空检查作为 table 签名,您可以在远程会话上执行此操作,然后将其与本地实例进行比较。
/Remote service - port 2001
q)table1:([]col1:0n 2 3 0n ;col2:"a", " ","ca")
q)table2:([]col3:1 2 0n 4 ;col4:```b`)
/local
q)table1:([]col1:0n 2 3 0n ;col2:"a", " ","ca")
q)table2:([]col3:1 2 0n 4 ;col4:```b`d) //different from remote
q)table3:([]col5:1 2 0n 4 ;col6:```b`d) //local table
q)f: { tables[]!{[t] (), {sum null x} each flip 0!value t}each tables[]} //tables unkeyed
q)remote:`::2001(f;::)
q)remote
(`s#`table1`table2)!((`col1`col2)!2 1;(`col3`col4)!1 3)
q)local:f[]
q)local
(`s#`table1`table2`table3)!((`col1`col2)!2 1;(`col3`col4)!1 2;(`col5`col6)!1 2)
q)remote~'local //only table1 signature matches
(`table1`table2`table3)!100b