如何获取kdb数据库中每列的长度?

如何获取kdb数据库中每列的长度?,kdb,Kdb,我们已经看到了kdb数据库损坏的问题,并且正在寻找一种方法来实现一个特定表中每个kdb列的长度是否相同的检查。有没有关于如何做到这一点的建议 i、 例如,希望获得表中每列的返回值及其长度 这些表最多有200列。有什么办法能有效地做到这一点吗 感谢您的帮助。谢谢。像这样的东西可能适合你 q)tables[] `positions`quote`trade q)count each flip trade time | 40000 sym | 40000 src | 40000 price |

我们已经看到了kdb数据库损坏的问题,并且正在寻找一种方法来实现一个特定表中每个kdb列的长度是否相同的检查。有没有关于如何做到这一点的建议

i、 例如,希望获得表中每列的返回值及其长度

这些表最多有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
编辑:上述方法仅适用于未损坏的表,这些表可能不适合您的用例

如果数据损坏,您可以
从磁盘上的每个列位置获取
并对其进行计数

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

像这样的东西可能适合你

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
编辑:上述方法仅适用于未损坏的表,这些表可能不适合您的用例

如果数据损坏,您可以
从磁盘上的每个列位置获取
并对其进行计数

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

有没有一种优雅的方法可以遍历多个表?i、 例如,按表格分组?
表格[]!计数“”[flip each get each tables[]
创建一个dict,每个表作为一个键,其值为计数的dict。您可以成功执行
flip trade
从ohlc中选择,其中date=last date
,这意味着有问题的表确实具有相同长度的列。如果表损坏,您的查询将失败。好的观点@igorkovhov。已经对原始帖子进行了编辑。有没有一种优雅的方法可以遍历多个表?i、 例如,按表格分组?
表格[]!计数“”[flip each get each tables[]
创建一个dict,每个表作为一个键,其值为计数的dict。您可以成功执行
flip trade
从ohlc中选择,其中date=last date
,这意味着有问题的表确实具有相同长度的列。如果表损坏,您的查询将失败。好的观点@igorkovhov。已对原始帖子进行了编辑。