Сохранение всех таблиц, переменных и функций экземпляра KDB+ с последующей перезагрузкой

Есть ли простой способ сохранить все таблицы, переменные и функции, а затем загрузить их в другой экземпляр kdb+? Например, предположим, что мой компьютер настроен на перезагрузку еженедельно, но я хочу перезагрузить все, что было в моем сеансе kdb+ до перезагрузки.

Благодарю.

2 ответа

Если вы хотите что-то из коробки для поддержания состояния переменной (таблицы /dicts/lists/atom), посмотрите на http://code.kx.com/q/cookbook/logging/

/cmdline startup
q db_main -l -p 8090

/To store state before the restart, modify .z.exit to flush to the qdb file 
.z.exit:{value"\\l"}

Однако это не будет охватывать функции, но в идеале они не должны меняться в любом случае.

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

.z.exit:{`:/tmp/ns set get each {x!x}`$".",/:string key`}

/on startup
{{y set x[y]}[x;]each key x} `.q`.Q _ get `:/tmp/ns

С Уважением,

Коннор

Сохраните состояние в файл, используя set/get. Это ограничено небольшими рабочими пространствами.

>q
KDB+ 3.4 2016.06.14 Copyright (C) 1993-2016 Kx Systems

q)a:1
q)t:([] b:til 100)
q)s:select from t where b<5
q)`:session.bin set get `.
`:session.bin
q)\\

>q
KDB+ 3.4 2016.06.14 Copyright (C) 1993-2016 Kx Systems

q)`. set get `:session.bin
`.
q)a
1
q)s
b
-
0
1
2
3
4

Ведение журнала и снимки является альтернативой: http://www.timestored.com/kdb-guides/kdb-command-line-options

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