我是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,但我无法弄明白。此表/文件也不需要分区。
由于
答案 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枚举。