【发布时间】:2013-05-21 15:31:34
【问题描述】:
我整理了几行来对我的 kdb 表进行分区,其中当然包含字符串列,因此必须枚举。
我想知道这段代码是否完全正确,或者是否可以进一步简化。特别是,考虑到内存表和磁盘表将具有完全相同的布局,我对创建分区表模式的需要有些怀疑。此外,可能还有一种方法可以避免创建临时的 tbl_mem 和 tbl_mem_enum 表:
...
tbl_mem: select ts,sym,msg_type from oms_mem lj sym_mem;
tbl_mem_enum: .Q.en[`$sym_path] tbl_mem;
delete tbl_mem from `.;
(`$db;``!((17;2;9);(17;2;9))) set ([]ts:`time$(); ticker:`symbol$(); msg_type:`symbol$());
(`$db) upsert (select ts,ticker:sym,msg_type from tbl_mem_enum)
delete tbl_mem_enum from `.;
PS:我知道,我不应该使用“_”来命名变量,但是我应该用什么来分隔变量或函数名中的单词呢? . 也是一个 kdb 函数。
【问题讨论】:
标签: kdb