kdb splayed表元错误

时间:2014-10-02 15:06:03

标签: meta kdb q-lang

我有一张张开的表格,我可以从中选择数据。

当我尝试查看元数据时,出现`sym错误。任何人都可以提出可能发生这种情况的原因吗?

 q)meta tablename
 k){$[(20h>t)|77h<t:@x;`;98h>@. t:!x;`;t]}
 'sym
 .:
 `sym
 q.Q))

2 个答案:

答案 0 :(得分:2)

枚举向量未加载到会话中。要在hdb分区内复制启动q - splayed表都是有效的,但由于没有加载sym,meta将失败。

glen@aquaq:~>q hdb1/

q)2#trades
sym time                          src price size
------------------------------------------------
3   2014.04.22D08:00:00.937000000 10  25.02 5167
3   2014.04.22D08:00:04.567000000 9   25.05 3376
q)meta trades
k){$[(20h>t)|77h<t:@x;`;98h>@. t:!x;`;t]}
'sym
.:
`sym
q.Q))\\

q)sym:get`:../sym
q)meta trades
c    | t f a
-----| -----
sym  | s   p
time | p
src  | s
price| f
size | i

一切顺利!

答案 1 :(得分:1)

您收到错误,因为缺少枚举的sym文件。通常,Q解释器将其查看到splayed目录上的一个目录中。

例如:如果您提供这样的保存命令:

       q)  t:([]sym:`a`b;id:1 2)

       q) `:/home/test/t/ set .Q.en[`:test] t

它将创建目录&#39; t&#39;在/ home / test for splayed table&#39; t&#39;并创建枚举的&#39; sym&#39;文件目录/ home / test。

要加载此表:

       q)\l /home/test

其他的事情是,您还可以加载枚举的&#39; sym&#39;文件手动像这样:

       q)sym:get `:path to sym file

内存中的所有表格将自动映射到此新列表。

参考: http://code.kx.com/q4m3/14_Introduction_to_Kdb+/#1422-splayed-tables-with-symbol-columns