标签: kdb

如何在kdb + / q中从带有列表的表中选择列的子集?

给出下表:

time     | col1  col2  col3  ...
--------------------------------
10:53:02 | 89    89    76    ...
...
Run Code Online (Sandbox Code Playgroud)

如何从该表中选择由列名​​称列表引用的列的子集(包括索引),即cols:('col1';'col3'); 预期结果将是:

time     | col1  col3
----------------------
10:53:02 | 89    89   
...
Run Code Online (Sandbox Code Playgroud)

谢谢

kdb

7
推荐指数
2
解决办法
127
查看次数

合并splayed表的sym文件

我有两个目录,每个目录包含一个日期分区的splayed表.每个目录都有自己的sym文件.表格完全相同.

我想将它合并到一个目录中,但是我遇到了问题.最初我尝试在另一个目录中创建一个软链接(由于大量数据).这不起作用,因为表使用了错误的sym文件.

有谁知道如何最好地做到这一点?我是否必须为两个目录重新生成新的sym文件?

谢谢

kdb q-lang

6
推荐指数
1
解决办法
1093
查看次数

如何在KDB中的每一行应用max函数?

我想确保列x中的所有值都不小于0.5,所以我这样做:

update x:max (x 0.5) from myTable
Run Code Online (Sandbox Code Playgroud)

但这会产生错误(在Studio For KDB +中):

An error occurred during execution of the query.
The server sent the response:
type
Studio Hint: Possibly this error refers to wrong type, e.g `a+1
Run Code Online (Sandbox Code Playgroud)

怎么了?

kdb q-lang

6
推荐指数
1
解决办法
2422
查看次数

运行kdb + 32位版本的限制

既然kdb +的32位版本已经被kx免费用于商业用途,那么购买许可证还有什么好处,除了:

  1. 64位版本将允许您处理超过4GB的内存
  2. 您将获得支持并访问仅限会员的邮件列表

具体来说,使用32位解释器对64位数据类型向量(long和float)的操作会更慢,还是可以利用CPU的全字大小?

kdb

6
推荐指数
0
解决办法
1475
查看次数

如何使用mintty在cygwin下修复q命令提示符?

我发现当从cygwin下面启动q时,控制台通常似乎工作,但q)提示不会显示.我刚刚遇到一个空白行.

我有最新的cygwin和最新的薄荷终端.

请注意,当我使用cmd启动cygwin时,q)提示符就在那里.只是没有薄荷.所以我有一个可行但不理想的解决方法.薄荷的各个方面都深深地编码到我的肌肉记忆中.

mintty的维基百科条目状态:

但是,由于[mintty]不是基于标准Windows控制台,因此专门为此编写的程序无法正常工作

所以我怀疑这就是原因.但是想知道是否有人能够让kdb/q在这个设置中工作.

总之,q解释器可以完全在薄荷下工作吗?

cygwin kdb mintty

6
推荐指数
1
解决办法
533
查看次数

q/kdb + Windows服务器设置

我正在尝试在Windows中设置qStudio.添加新服务器时,会弹出一条错误消息,说:

连接不起作用.java.io.IOException:java.sql.SQLException:连接被拒绝:连接.

使用默认的"服务器属性"配置:

主机:localhost端口:5000服务器类型:KDB用户名:密码:

Q/KDB +非常新.在谷歌搜索,但没有找到答案.请帮忙!谢谢!

kdb

6
推荐指数
1
解决办法
3169
查看次数

KDB +/Q从命名空间访问根命名空间

我跳进另一个命名空间后,如何访问根命名空间中的函数/变量.

像这样的例子:

q)\d .cfg
q)domIV:1000
q)\d .
q)n:1000
Run Code Online (Sandbox Code Playgroud)

然后我知道如何domIV从其他命名空间访问变量,但我不知道如何n从那里访问变量:

q)\d .seed
q).cfg.domIV / works
q)n          / does not work
q).n         / does also not work
Run Code Online (Sandbox Code Playgroud)

如何访问根命名空间?

谢谢

namespaces kdb q-lang

6
推荐指数
1
解决办法
1569
查看次数

kdb在按行选择中应用函数

我有一张桌子

t: flip `S`V ! ((`$"|A|B|"; `$"|B|C|D|"; `$"|B|"); 1 2 3)
Run Code Online (Sandbox Code Playgroud)

和一些决定

t1: 4 10 15 20 ! 1 2 3 5;
t2: 4 10 15 20 ! 0.5 2 4 5;
Run Code Online (Sandbox Code Playgroud)

现在我需要在S中的子串和下面的函数中添加一个带有值的列(这是一个伪代码,因为我被困在这里).

f:{[s;v];
    if[`A in "|" vs string s; t:t1;];
    else if[`B in "|" vs string s; t:t2;];
    k: asc key t;
    :t k k binr v;
}
Run Code Online (Sandbox Code Playgroud)

问题是当我做类似的事情时,s和v作为完整的列向量传递

update l:f[S,V] from t;
Run Code Online (Sandbox Code Playgroud)

如何使这个按行工作?我怎样才能使它成为一个矢量化函数?谢谢

kdb

6
推荐指数
1
解决办法
626
查看次数

符号文字中的空格字符

我需要查询包含公司名称的数据库.我有大约50个名字的列表,我必须获取数据.但我无法使用in命令编写查询,因为名称中的空格无法识别.前

select from sales where name in (`Coca Cola, `Pepsi)
Run Code Online (Sandbox Code Playgroud)

由于"Cola"未被识别,这给了我一个错误.有没有办法写这样的查询?

kdb

5
推荐指数
1
解决办法
3075
查看次数

KDB + / q:什么是远程查询的规范实现?

我正在尝试使用qpython从python客户端实现多行查询。

我想执行以下查询:

a = """
/declare a function that pivots a table on index
piv:{[t;k;p;v]f:{[v;P]`${raze "_" sv x} each string raze P,'/:v};v:(),v; k:(),k; p:(),p;G:group flip k!(t:.Q.v t)k;F:group flip p!t p;key[G]!flip(C:f[v]P:flip value flip key F)!raze{[i;j;k;x;y]a:count[x]#x 0N;a[y]:x y;b:count[x]#0b;b[y]:1b;c:a i;c[k]:first'[a[j]@'where'[b j]];c}[I[;0];I J;J:where 1<>count'[I:value G]]/:\:[t v;value F]};

/get aggregated trades table 
tt:0!select last_price:last price, last_qty: last qty, low_qty: min qty by exch,sym,side,1 xbar time.second from trades

/apply pivot function on aggregated trade table
piv[`tt;`second;`exch`sym`side;`last_price`last_qty`low_qty]
"""
Run Code Online (Sandbox Code Playgroud)

以下qpython客户端仅调用远程kdb + / q服务器即可检索对上述查询的响应

with qconnection.QConnection(host='localhost', port=5001, …
Run Code Online (Sandbox Code Playgroud)

python client time-series kdb

5
推荐指数
0
解决办法
115
查看次数

标签 统计

kdb ×10

q-lang ×3

client ×1

cygwin ×1

mintty ×1

namespaces ×1

python ×1

time-series ×1