问题标签 [q-lang]

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.

0 投票
1 回答
697 浏览

matlab - 用于查询和转换为 Matlab (HDF5) 的最佳时间序列格式

我有一些独特的问题,看起来类似于这里的问题:

https://news.ycombinator.com/item?id=8368509

我有一个高速流量分析框,它以大约 5 Gbps 的速度捕获,并从中挑选出特定的数据包以保存为 C++ 程序中的某种格式。每天可能会有 1-3 TB 写入磁盘。由于它是网络数据,因此它的所有时间序列都低至纳秒级,但最好将其保存在秒或毫秒级,然后让另一个应用程序对嵌入的更高分辨率的时间戳进行排序。我的问题是决定使用哪种格式。我的两个要求是:

  1. 能够使用几个不同的时间戳参数以大约 50 MB/s 的速度连续写入磁盘。
  2. 能够将此数据块导出到 MATLAB (HDF5)。
  3. 每天查询一次或两次此数据以进行分析

另一个不是硬性要求的好东西是:

  1. 将有 4 个这样的盒子独立运行,如果可能的话,最好查询所有这些盒子并合并数据。我应该提到所有这 4 个盒子都位于物理上不同的位置,因此共享数据存在一些开销。

由于遗留应用程序,第二个是我无法更改的,但我认为第一个更重要。我可能想要导出到 matlab 的查询类型类似于“在时间 Y 和 Z 之间拉度量 X”,因此最终必须进入 HDF5 格式。如果需要,我可以使用一个名为 MatIO 的外部库来编写 matlab 文件,但如果没有翻译步骤会更好。我已经阅读了上面提到的整个线程,并且有很多选项似乎很突出:kdb+、Cassandra、PyTables 和 OpenTSDB。所有这些似乎都在做我想做的事,但我真的不知道将它变成 MATLAB HDF5 格式有多么容易,以及是否其中任何一个会使它比其他格式更难。

如果有人有做类似事情的经验,那将是一个很大的帮助。谢谢!

0 投票
1 回答
1816 浏览

kdb - 如何将字符数组转换为kdb中的列表

我们有从不同列获取数据的 KDB 查询,其中一列具有字符数组类型 ('C'),即它包含文本。我们想要的是enlist当我们查询这样的数据时 select enlist column_with_character_arr from table

即在一个列表中包含(“value1”),以便我们稍后可以向该列表添加一个元素,例如,(“value1”,“value2”)。怎么做?因为目前当我们尝试enlist添加或添加,()时,它会因长度错误而失败。

0 投票
1 回答
5218 浏览

kdb - 如何创建按时间间隔分组且不关闭 RDB 的 KDB 查询?

我们从交易所收到报价并将其存储在 KDB Ticker Plant。我们希望分析 RDB 和 HDB 中的卷,同时对这些数据库的性能影响最小,因为它们也被其他团队使用。

  • 首先,我们如何创建一个函数,以 10 分钟为间隔分割一天,并为每个间隔创建一个包含数量的统计信息?我们需要使用哪些 KDB 函数?
  • 其次,如何安全地做到这一点?我们应该在循环中逐部分提取记录还是一次查询一次?我们的数据库中每天有大约 1.5 亿条记录。
0 投票
1 回答
192 浏览

kdb - 更新时间点(双时态)表

让我们有一个存储时间点(双时态)数据的表:

示例数据可能如下所示:

例如,在该stamp时间点,我们记录了IBM符号的值 105.11,对2015.01.05

不断有新数据进来,其中一些将作为新记录插入到pit表中,但前提是它们传达了新信息。pit不得删除或更新/覆盖任何现有记录。即,我们希望跟踪过时的(如果有的话)值以用于审计或真实性目的。想想随着时间的推移收益估计的更新。

例如,稍后我们可能会收到:

new信息合并到pit后,后者应如下所示:

请注意使用当前时间戳(在撰写本文时)输入的符号的“新”105.22值。此外,from 的值并没有以任何方式更新时间戳,因为我们已经将该值反映在携带的旧时间戳中。IBMpit2015.03.10D15:43:50106.6newpitpit

如何使用 编写各自的insert语句q

注意:为了简单起见,它的价值pit是由此处未显示的附加列进行分区。source此外,分区将具有`g#sym(可能`p#sym相反)和`s#dt属性。

0 投票
1 回答
1183 浏览

kdb - 在启动时加载 init.q 文件

我的q.bat文件运行良好,其内容是:

init.q文件中定义了一些基本的 q 函数后,我希望每次启动 kdb+/q 时都加载它们并使其可用。我尝试在q.bat文件末尾包含以下行,但它什么也没做:

我读过其他方式,比如设置QINIT环境变量或编辑q.q文件,但我怀疑通过加载.bat更干净。

0 投票
2 回答
2566 浏览

kdb - 从包含空格字符的路径加载 file.q

如何从包含空格的路径加载脚本文件?

例如,这有效:

以下尝试引发错误:

0 投票
1 回答
198 浏览

c++ - C++ 符号和 Q 符号不匹配

从 C++ 代码返回符号时我遇到了一些麻烦。我做了一个小例子来说明这个问题。

我们导出以下函数:

然后从 Q 调用它:

为什么这两个值不相等?

这是 32 位 KDB+ 3.2。

0 投票
1 回答
2325 浏览

python - 将包含字符串列的 pandas DataFrame 传递给 kdb+(使用 qPython API)

exxeleron/qPython模块允许将 pandas 发送DataFramekdb+/q's 表。

让我们准备数据:

DataFrame然后要传递的对象如下所示:

当我尝试将其发送到 时kdb+/q,我收到以下错误:

0 投票
3 回答
2099 浏览

kdb - kdb+/q:检查参数是否已提供给函数调用

假设我们有fun两个参数的函数,第二个是可选的。如何在函数中检查是否提供了第二个可选参数并采取相应措施?

```

0 投票
2 回答
319 浏览

debugging - 如何在 qStudio 中进行调试?

下面的代码,当从终端运行时,让我进入调试模式:

但是,当我在 qStudio 中运行它时,它只是失败了,并且似乎退出了该功能。qStudio 是否支持调试模式?如果是这样,我怎样才能进入允许我检查/操作该函数中的变量的模式?