问题标签 [kdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kdb - 如何在运行的 KDB 服务器中评估 Q 脚本?
我有一个大表,我想在 kdb+ 服务器中进行分区。分区代码位于我需要在服务器上评估的 Q 脚本中,但我没有对其进行 I/O 控制(服务器在后台运行,内存中的数据是通过 C API 加载的)。
到目前为止,我发现的唯一解决方案是打开一个句柄并将我的所有语句转换为字符串(所有那些我必须使用的 \" 看起来很乱):
如何在不使用同一台机器上的服务器句柄的情况下直接评估我的脚本?
kdb - 如何在不使用字符串格式的情况下在远程服务器上执行 kdb 动词函数?
我想使用“set”和“sv”动词在远程服务器上分配一个变量。如何在不使用字符串表示法的情况下远程执行动词并存储结果?
kdb - 如何卸载 kdb 分区数据库?
我使用 \l 命令加载(映射)了一个分区数据库。如何取消映射数据库?出于多种原因,这可能很有用,例如加载具有相同名称的不同数据库或释放一些系统内存。
kdb - 如何正确枚举和分区 kdb 表?
我把几行放在一起对我的 kdb 表进行分区,其中当然包含字符串列,因此必须枚举。
我想知道这段代码是否完全正确,或者是否可以进一步简化。特别是,考虑到内存表和磁盘表将具有完全相同的布局,我对创建分区表模式的需要有些怀疑。此外,可能有一种方法可以避免创建临时表tbl_mem
和tbl_mem_enum
表:
PS:我知道,我不应该使用“_”来命名变量,但是我用什么来分隔变量或函数名中的单词呢?.
也是一个kdb函数。
kdb - 如何计算 kdb 中的时间加权平均值?
由于 wavg 函数,在 kdb 中计算加权平均值很容易。如何计算两个连续行时间之间的延迟并将这些值用作 wavg 的权重参数?
就像是:
next
在查询中给出以下行列,但我不知道如何减去两个 ts 值并在wavg
.
更新
解决方案是使用括号:((next ts) - ts)
. 请注意,我不能使用deltas[ts]
. 这将产生不同的权重:
这是deltas[ts]
:
kdb - 如何更改 q - kdb 中的表条目
我有一张像这样的桌子:
我想更改一个条目,例如
那是目前0i
。
但是如果我尝试重新评估它,我会收到一个错误:
为什么?如何更改表格条目?
谢谢马可
kdb - 在 kdb 中导入具有可变大小分隔符的文本数据
我想导入一个文本文件,其中的列由可变数量的空格分隔:
运行这个不会很好:
kdb - KDB/Q:如何在没有循环的情况下进行循环?
我正在 kdb 数据库上学习 q。我担心 q 中没有循环。我需要编写一个算法,我会在像 C 这样的冗长程序中使用几个嵌套的 for 循环编写该算法。但是在 q 中,我被无法循环的事实所困扰。
只是举一个具体的例子(其中一个),我有这个简单的向量(列表):
我需要一个向量,将这些条目组合成 3by3 并叠加,例如(使用 R 语法):closures[0:2],closures[1:3],closures[2:4],closures[3:5]...我能怎么做?
一般来说,我需要如何改变自己的心态,才能在 q 中正确编程?
非常感谢您的建议马可
kdb - 如何在 kdb 中创建游标?
我想遍历时间序列中的所有行,分区 kdb 数据库并在每一步执行一些计算。在 SQL 中,这可以通过游标来完成。kdb中有类似的东西吗?
一些背景知识:数据库包含数百万个时间序列记录,当我在行中进行时,我需要维护许多对象的状态。我需要在每个步骤中运行一些“if”语句。我想将我的计算集成到一个查询中,但由于我必须执行的测试数量,我认为游标或类似行回调的东西会更合适。在“重放”数据库时运行自定义代码的最有效解决方案是什么?
kdb - 独立调用或在 q 中的查询内调用时函数行为的差异
我在 q 中发现了一个奇怪的问题,我想这是一个可能的错误。我已经定义了一个简单的函数,它返回一个浮点数,给定一个日期作为输入:
如果单独调用,它可以正常工作:
不过,如果我尝试在查询中调用它,我会收到错误消息:
如果我将函数简化为只返回输入日期(身份函数),它就可以在查询中使用。如果我将函数简化为只返回一个浮点数,而不比较日期,它就可以在查询中使用。当我在 if 语句中使用输入日期进行比较时,就会出现问题: $[ the_date > 2013.01.01 ; 0.001; 0.002]
如果我重新定义将浮点数而不是日期作为输入的函数,也会发生同样的情况,然后我尝试在查询中将价格作为输入:
你知道为什么会这样吗?我什么都试过了。谢谢马可