从KDB HDB和KDB RDB查询时的差异

从KDB HDB和KDB RDB查询时的差异,kdb,q-lang,Kdb,Q Lang,我听说当您从内存数据库中的HDB和RDB查询select等时,会有不同。 当我们应该使用HDB特定查询和RDB特定查询以及如何查询时,是否可以描述所有可能的场景:即HDB查询示例和RDB查询示例 在我的头顶上: 分区HDB表将有一个虚拟日期列 RDB表通常没有“日期”列 对于分区HDB表,虚拟i列的行为不同 HDB表除非存储为平面/串行,否则不会立即完全拉入内存,而是按需读取数据 HDB表中的符号列将被枚举,内存中的RDB表将被取消枚举 我无法给出真实的例子,但在我脑海中查询时,您只需记住这些:

我听说当您从内存数据库中的HDB和RDB查询select等时,会有不同。
当我们应该使用HDB特定查询和RDB特定查询以及如何查询时,是否可以描述所有可能的场景:即HDB查询示例和RDB查询示例

在我的头顶上:

分区HDB表将有一个虚拟日期列

RDB表通常没有“日期”列

对于分区HDB表,虚拟i列的行为不同

HDB表除非存储为平面/串行,否则不会立即完全拉入内存,而是按需读取数据

HDB表中的符号列将被枚举,内存中的RDB表将被取消枚举


我无法给出真实的例子,但在我脑海中查询时,您只需记住这些:

分区HDB表将有一个虚拟日期列

RDB表通常没有“日期”列

对于分区HDB表,虚拟i列的行为不同

HDB表除非存储为平面/串行,否则不会立即完全拉入内存,而是按需读取数据

HDB表中的符号列将被枚举,内存中的RDB表将被取消枚举


我无法给出真实的示例,但在查询时只需记住这些示例。如果您使用的是普通的rdb/hdb设置,则情况如下:

TickerPlant收集x毫秒的数据,并将其泵送至监听器 rdb就是这样一个侦听器。它将保存从今天午夜到今晚午夜前的数据 午夜,tickerplant发送.u.end消息 这将调用rdb将内存中的表转储到2014.12.19/目录中的磁盘上 请注意,rdb上的模式是time、sym,然后是其他列。在hdb上,此开关切换到虚拟日期、sym p attr、sym内排序的时间 因此,您的where子句标准是:

如果您需要查询今天的数据,那么它就是rdb 今天之前的任何事情,都是hdb 任何混合的东西,都可以在hdb上创建函数,从rdb中提取数据并连接 rdb的最佳查询总是

select from table where time ...
因为rdb表是按时间排序的

hdb的最佳查询总是

select from table where time ...
从表中选择日期=2014.12.24,sym=`AAPL,时间


因为它减少了查找磁盘只需要检查2014.12.24目录中的数据,是sym parted然后时间排序在sym altho中,技术上没有明显的s属性。将日期作为where子句的第一部分非常重要!:

如果您使用的是普通rdb/hdb设置,则情况如下:

TickerPlant收集x毫秒的数据,并将其泵送至监听器 rdb就是这样一个侦听器。它将保存从今天午夜到今晚午夜前的数据 午夜,tickerplant发送.u.end消息 这将调用rdb将内存中的表转储到2014.12.19/目录中的磁盘上 请注意,rdb上的模式是time、sym,然后是其他列。在hdb上,此开关切换到虚拟日期、sym p attr、sym内排序的时间 因此,您的where子句标准是:

如果您需要查询今天的数据,那么它就是rdb 今天之前的任何事情,都是hdb 任何混合的东西,都可以在hdb上创建函数,从rdb中提取数据并连接 rdb的最佳查询总是

select from table where time ...
因为rdb表是按时间排序的

hdb的最佳查询总是

select from table where time ...
从表中选择日期=2014.12.24,sym=`AAPL,时间


因为它减少了查找磁盘只需要检查2014.12.24目录中的数据,是sym parted然后时间排序在sym altho中,技术上没有明显的s属性。将日期作为where子句的第一部分非常重要!:

到目前为止,我遇到了以下在hdb中不起作用的示例查询

计数表名 从tablename中选择[10] 在hdb重新启动之前,delete/update/insert语句仅具有临时效果
当我遇到更多的问题时,我会更新这个列表。到目前为止,我遇到了以下在hdb中不起作用的示例查询

计数表名 从tablename中选择[10] 在hdb重新启动之前,delete/update/insert语句仅具有临时效果
当我遇到更多问题时,我会更新此列表。

我认为这并不能完全回答问题。嘿@Ramparasad,如果您对查询kdb+HDB有任何疑问,请随时提出问题。我认为这并不能完全回答这个问题。嘿@Ramparasad,如果你对查询kdb+HDB有任何疑问,请随时提出问题。