如何获取 kdb 数据库中每一列的长度?
How to get the length of every column in a kdb database?
我们已经看到 kdb 数据库损坏的问题,并且正在寻找一种方法来实现检查每个 kdb 列在特定 table 中的长度是否相同。有关如何执行此操作的任何建议?
即,想要获得 table 中每一列的 return 值及其长度。
这些 table 有超过 200 列。有什么方法可以有效地解决这个问题?
感谢任何帮助。谢谢。
类似的内容可能适合您。
q)tables[]
`positions`quote`trade
q)count each flip trade
time | 40000
sym | 40000
src | 40000
price | 40000
amount| 40000
side | 40000
您也可以 运行 对分区数据执行同样的操作。
q)count each flip select from ohlc where date=last date
date | 1440
sym | 1440
exchange | 1440
timestamp| 1440
open | 1440
high | 1440
low | 1440
close | 1440
volume | 1440
编辑:上面使用的方法只适用于未损坏的表,这可能不适合您的用例。
如果数据已损坏,您可以 get
每一列在磁盘上的位置并对其进行计数。
q)cols[ohlc]!{count get hsym`$"/path/to/hdb/2020.02.09/ohlc/",string x}each cols ohlc
date | 1440
sym | 1440
date | 1440
exchange | 1440
timestamp| 1439
open | 1440
high | 1440
low | 1440
close | 1440
volume | 1440
我们已经看到 kdb 数据库损坏的问题,并且正在寻找一种方法来实现检查每个 kdb 列在特定 table 中的长度是否相同。有关如何执行此操作的任何建议?
即,想要获得 table 中每一列的 return 值及其长度。
这些 table 有超过 200 列。有什么方法可以有效地解决这个问题?
感谢任何帮助。谢谢。
类似的内容可能适合您。
q)tables[]
`positions`quote`trade
q)count each flip trade
time | 40000
sym | 40000
src | 40000
price | 40000
amount| 40000
side | 40000
您也可以 运行 对分区数据执行同样的操作。
q)count each flip select from ohlc where date=last date
date | 1440
sym | 1440
exchange | 1440
timestamp| 1440
open | 1440
high | 1440
low | 1440
close | 1440
volume | 1440
编辑:上面使用的方法只适用于未损坏的表,这可能不适合您的用例。
如果数据已损坏,您可以 get
每一列在磁盘上的位置并对其进行计数。
q)cols[ohlc]!{count get hsym`$"/path/to/hdb/2020.02.09/ohlc/",string x}each cols ohlc
date | 1440
sym | 1440
date | 1440
exchange | 1440
timestamp| 1439
open | 1440
high | 1440
low | 1440
close | 1440
volume | 1440