Eu tenho uma tabela particionada no kdb que é particionada em dados e dividida na coluna tick.
Onde estão os metadados do atributo em que a tabela está dividida na tick
coluna sendo armazenados no kdb?
Exemplo -
t:([] tick:10?`amzn`fb`goog; px:10?10.; vol:10?1000) / Create a table in memory
.Q.dpft[`:db;2023.10.01;`tick;`t] / Partitioned on date and parted on tick
Agora carregando o banco de dados na sessão q
\l db
meta t
c | t f a
----| -----
date| d
tick| s p
px | f
vol | j
Se eu olhar o arquivo .d da tabela, ele consiste apenas na ordem das colunas.
get `:2023.10.01/t/.d
`tick`px`vol
Obtive a resposta, as informações do atributo de uma coluna são armazenadas no arquivo exibido para essa coluna.
Da mesma forma, se a tabela tiver um atributo classificado ou qualquer outro atributo aplicado na
tick
coluna. Em seguida, essas informações serão armazenadas no mesmo arquivo exibido para aquela coluna.Testando com atributo classificado
Verifique o conteúdo da coluna tick
meta da mesa
Portanto, .d é o único arquivo de metadados que está sendo armazenado no kdb que armazena a ordem das colunas, todas as informações relacionadas aos dados são colocadas no arquivo de dados/coluna.
Você está certo ao dizer que as informações do atributo são armazenadas na coluna/arquivo e podem ser vistas usando um get:
Nos bastidores, ele é representado por um único byte conforme este exemplo: https://code.kx.com/q/kb/serialization/#integer-vector