这是我的kbd脚本。它确实依赖于大量的环境文件。我的脚本无法连接到KDB数据库,因为它太忙,无法接受连接。我想在运行脚本之前测试到kdb的连接。我只想知道kdb是否接受连接,并且它是否等于bash退出值。0或1
这是我的KDB脚本:
system "l ",(getenv`CASPER),"/CASPER/q/CASPER_lib.q";
system "l ",(getenv`CASPER),"/CASPER/q/report_lib.q";
system "l ",(getenv`CASPER),"/r
我需要获取我的连接地址(我不知道它的确切名称,但它是带有'i‘字符的数字),当我想在kdb进程中连接到服务器时,我只需要使用函数:
q) h: hopen`:localhost:5000:username:password
q) h
5i
然后我知道我的连接号码是5。如何使用kx.c库获取这个号码?创建连接:
c = new c(url,port,username:password);
我可以执行任何语句,但我不知道本例中连接的名称是什么。有没有可能用kx.c库得到这个数字?
我正在试用关于如何连接在中找到的两个表的示例
这个例子显示:
t:([]a:1 2 3;b:`a`b`c)
r:([]c:10 20 30;d:1.2 3.4 5.6)
show t,`r
其结果是:
a b c d
----------
1 a 10 1.2
2 b 20 3.4
3 c 30 5.6
然而,当我在我的Q控制台中尝试时,我得到了这样的结果:
q)t,`r
`a`b!(1;`a)
`a`b!(2;`b)
`a`b!(3;`c)
`r
有人能解释一下发生了什么,我做错了什么吗?
我有一个连接表,它由字符列表组成。
q)t:([] a:`c`d; b:("";"fill"));
q)s:([] a:`b`c`c; b:("";"";""))
q)select from t lj select b by a from s
Output:
a b
---------
c ("";"") / This is the culprit want to replace it with null character
d "fill"
联接的输出由一个空字符列
看了所有的文档。为什么这不起作用?已加载随KDB分发提供的sp.q示例文件。我不知道这句话有什么问题。
q) \l sp.q
q)trade
date sym time price size
-----------------------------------------
2007.07.23 a 04:48:52.665 73.53941 1000
2007.07.23 a 04:48:52.675 81.73358 600
2007.07.23 a 04:48:52.725 78.79526 900
2007.07.23 a 04:48:
从Q提示符中,例如我们可以运行,
x: select from table
.j.j x
我如何返回json格式的http url get请求(例如host:port/?select from table)对kdb get服务器的表结果,而不是纯文本?
我可以获得文本格式的表结果并解析html响应,但我更喜欢从json格式的http服务器本身获得结果。
谢谢
我是Q和KDB的新手。为了进行测试,我在本地的windows电脑上安装了KDB 3.4,tickerplant和RDB都在默认端口上运行,使用的是vanilla tick.q、u.q和r.q。
我有一个Java进程,它连接到自动收报机工厂并执行
".u.upd:insert" once followed by multiple update queries like below
".u.upd[`Offers ; ( 2016.12.20D11:43:08.212,`655044AE5,`CITIXX,`CITIXXX74,`CITIXXX,`CITIXXX74,25
我已经从下载了KDB+并解压缩到我的C:驱动器。
当我浏览到q\w32目录并尝试运行任何文件时,我总是得到前面带有撇号的文件名打印出来。
例如:
cd C:\q\w32>
C:\q\w32>q
q)q trade.q (I have copied the example trade.q into the w32 folder)
'trade.q
为什么不运行该文件??
我将字符串存储在变量名res下的列表中。接下来,我将构造一个查询,该查询将查看字符串列表。但是,似乎没有读取变量。
这就是我的意思:
q) hdl: (to a port)
q) res: `string1`string2`string3
**q) ans: hdl"select count i by date,sym from trade where date=xxx, sym in `res"**
当我执行命令时,我总是得到一个空的结果集。我知道结果集不能是空的。那么,如何将我的查询(粗体)修正为返回结果呢?
请注意,我在unix框中执行Q会话中的任务。