2014-12-22 82 views
1

我在RDB表(運行標準RQ),其中包括形式的彩車的嵌套列表:保存KDB +「不可映射」表到磁盤

(((1.a 1.b);(2.a 2.b);...;(N.a N.b));((N+1.a N+1.b);...;(N+X.a N+X.b))) 

.u.end叫我得到一個「不可映射的錯誤」。

無論如何將深層嵌套的數據保存到hdb

回答

2

可以使用以下步驟手動保存這些表中:

q)t:([] a:1 2 3; f:(1 2.0;(3 4.;5 6.); 7. 8.)) 
q)t 
a f 
--------- 
1 1 2 
2 3 4 5 6 
3 7 8 
q)`:t/ set t 
k){$[@x;.[x;();:;y];-19!((,y),x)]} 
'type 
q.q)) 
q.q))\ 
q) 

失敗作爲嵌套類型。

q)`:t/ set select a from t 
`:t/ 
q)`:t/.d set `a`f 
`:t/.d 
q)`:t/f set t`f 
`:t/f 
q)\l . 
q)t 
a f 
--------- 
1 1 2 
2 3 4 5 6 
3 7 8 

成功,但如果您比較訪問速度與非嵌套數據,您將看到訪問速度非常慢。

它可能不是內置的行爲,以防止用戶在不知道取捨的情況下以這種格式保存。

+0

我聽到你在折中,但我不確定是否有更好的方式將不確定的長列表存儲到更加結構化的表格中。即使我限制了它,併爲每個列表元素寫入了明確的列,但大多數條目中都會出現大量的空值。 – nightTrevors