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