将 kdb 列的键:值对分解为多个

问题描述 投票:0回答:1

我有一个 kdb 表,其格式可以用

进行总结
app  type     labels
--------------------------------------------------------
app1 frontend ("language:js";"owner:bob";"license:GPL")
app2 backend  ("language:go";"owner:alice")

我不知道如何将

labels
“分解”到自己的列中,直接进入该表并获得类似的东西

app  type     language owner   license
-------------------------------------------
app1 frontend "js"     "bob"   "GPL"
app2 backend  "go"     "alice" ""

(注意可选kv)

我怎样才能实现这个目标?我觉得我错过了一些非常简单的东西......

kdb
1个回答
0
投票

首先,不要使用

type
作为列名。它是 kdb+ 中的保留关键字。

这是第一遍,它得到了你想要的,但有点混乱:

q)t:([]app:`app1`app2;Type:`frontend`backend;labels:(("language:js";"owner:bob";"license:GPL");("language:go";"owner:alice")))
q)delete labels from t,'(uj/)exec enlist each(!/)@/:flip each"S*"$/:/:":"vs/:/:labels from t
app  Type     language owner   license
--------------------------------------
app1 frontend "js"     "bob"   "GPL"
app2 backend  "go"     "alice" ""
© www.soinside.com 2019 - 2024. All rights reserved.