如何在一天结束时为KDB tickerplant指定要保存数据的文件路径

如何在一天结束时为KDB tickerplant指定要保存数据的文件路径,kdb,Kdb,我想知道当从tickerplant发送.u.endofday时,如何为我的勾号设置指定一个要保存到的文件路径。当前,当发送此消息时,RDB将保存到工作目录中,tick.q文件保存在该目录中 是否需要传入一个文件路径,以便将其保存到。/../HDB而不是。/../Tick?根据您的设置,有几种方法可以做到这一点 但我认为最有效的方法是查看在RDB中调用的.u.end函数,并查看其中使用了什么保存函数 搜索在RDB上定义.u.end的位置,并查看save_down函数。 查找最有可能的.Q.dpft

我想知道当从tickerplant发送
.u.endofday
时,如何为我的勾号设置指定一个要保存到的文件路径。当前,当发送此消息时,RDB将保存到工作目录中,
tick.q
文件保存在该目录中


是否需要传入一个文件路径,以便将其保存到
。/../HDB
而不是
。/../Tick

根据您的设置,有几种方法可以做到这一点

但我认为最有效的方法是查看在RDB中调用的.u.end函数,并查看其中使用了什么保存函数

搜索在RDB上定义.u.end的位置,并查看save_down函数。 查找最有可能的.Q.dpft或有set命令。 关于.Q.dpft的文件:

其中输入的第一个参数是目录路径。 所以可以在那里以

hsym `$"/path/path/HDB"    
返回

`:/path/path/HDB    
作为要插入函数的符号

可能有不同的方式保存表,但最有可能的方式是这样做的

也有不同的方法来选择一个带有P.Txt文件的目录。非常有用,看看P.Txt文件是否加载在RDB上调用的.q.PAR函数。

 .Q.par[`:.;.z.d;`]  
如果答案只是:

 `:./2020.05.09/ 
这意味着它正在使用启动脚本的目录

在这里,您可以找到更多关于此的文档:

在vanilla r.q脚本中,使用

.Q.hdpf[`$':“,.u.x 1;`:;x;`sym]

其中第二个参数是表保存到的目录

`:

表示当前目录。您可以将其更改为其他内容,例如`:/home/data/hdb

如果您使用的是普通r.q脚本,请参阅

在.u.rep下有一条注释,建议修改“system cd”命令,您可以在该命令中指定您喜欢的任何目录。这将更改r.q进程内的目录。然后,当调用.Q.hdpf时,它将把表保存到该目录中。rdb在启动时呼叫.u.rep

.u.rep:{(.[;();:;].)each x;if[null first y;:()];-11!y;system "cd ",1_-10_string first reverse y};    
/ HARDCODE \cd if other than logdir/db
你本来可以的

system "cd /home/data/hdb"
它会将当前目录更改到此位置

Yes.Q.hdpf(调用.Q.dpft)在.u.end中的我的rdb.Q文件中定义为
.Q.hdpf[
$”:“,.u.x 1;
:;x;
sym]`但是当我修改为
.Q.hdpf[hsym
$./../HDB”,.u.x 1;
:;x;
sym]`它仍然将数据保存到启动脚本的目录中