Сохранение таблицы kdb+ "unmappable" на диск

У меня есть таблица в моем RDB (работает стандартный RQ), который включает в себя вложенный список с плавающей запятой формы:

(((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?

1 ответ

Решение

Вы можете вручную сохранить эти таблицы, выполнив следующие действия:

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

Успешно, но если вы сравните скорость доступа с не вложенными данными, вы увидите, что доступ очень медленный.

Вероятно, это не встроенное поведение, чтобы предотвратить сохранение пользователями в этом формате без знания компромиссов.

Другие вопросы по тегам