我把几行放在一起对我的 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函数。