KDB / KX将表附加到文件而不读取整个文件

时间:2014-09-05 21:58:03

标签: kdb

我是KDB的新手(对不起,如果这个问题很愚蠢)。我正在创建下表

q)dsPricing:([id:`int$(); date:`date$()] open:`float$();close:`float$();high:`float$();low:`float$();volume:`int$())
q)dsPricing:([id:`int$(); date:`date$()] open:`float$();close:`float$();high:`float$();low:`float$();volume:`int$())
q)`dsPricing insert(123;2003.03.23;1.0;3.0;4.0;2.0;1000)
q)`dsPricing insert(123;2003.03.24;1.0;3.0;4.0;2.0;2000)
q)save `:dsPricing

保存后我说退出。启动q之后,我想在其中添加另一个定价项而不加载整个文件,因为文件可能很大

q)`dsPricing insert(123;2003.03.25;1.0;3.0;4.0;2.0;1500)

我一直在看.Q.dpft,但我无法弄明白。此表/文件也不需要分区。

由于

1 个答案:

答案 0 :(得分:5)

您可以使用表的文件句柄进行升级以附加到磁盘上,您的示例将如下所示:

`:dsPricing upsert(123;2003.03.25;1.0;3.0;4.0;2.0;1500)

您可以使用get,load或\ l

将表加载到q会话中
 q)get `:dsPricing
id  date      | open close high low volume
--------------| --------------------------
123 2003.03.23| 1    3     4    2   1000  
123 2003.03.24| 1    3     4    2   2000  
123 2003.03.25| 1    3     4    2   1500  

.Q.dpft将保存表splayed(表中每列的一个文件和包含列名的.d文件),其中一个符号列上包含parted属性(p#)。任何符号列也将由.Q.en枚举。