我有一个标准的tickerplant设置,我的rdb在端口5011上,hdb设置在端口5012上。是否有一种优雅的方式来处理对今天和历史数据的联合的查询?我对联合进程持开放态度,该进程保持与5011和5012的连接。
答案 0 :(得分:1)
网关/联合进程将是一个很好的解决方案。请参阅Michael McClintocks白皮书中的示例: http://www.firstderivatives.com/lecture_series_pp.asp?downloadflyer=q_for_Gods_May_2013
虽然白皮书可能比您需要的更详细,但即使是纸上最基本的设置也足够了。基本上只是查询rdb(并添加“缺少”日期col)并查询hdb然后组合结果。
答案 1 :(得分:1)
假设这个函数存在于一个独立的q实例上,并且你想要所有列,今天为d +今天为sym s ...注意列重新排列。
mergeFun:{[d;s]
rdb:hopen`::5011;
hdb:hopen`::5012;
t:hdb({[d;s] `time`sym xcols delete date from select from table where date=d, sym=s};d;s),rdb({[s] select from table where sym=s};s);
hclose each rdb,hdb;
t
}