2016-07-22 17 views

Antwort

1

Speichern Sie den Status mit set/get in Datei. Dies ist auf kleine Arbeitsbereiche beschränkt.

>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 

Protokollierung und Schnappschüsse ist eine Alternative: http://www.timestored.com/kdb-guides/kdb-command-line-options#kdb-logging-replication

+0

was ist, wenn ich mehrere Arbeitsbereich haben .. – shivam

+0

wenn Sie Dies funktioniert mehrere Namespaces speichern möchten. http://stackoverflow.com/a/38528576/2039505 –

2

Wenn Sie etwas aus der Box wollen für die Aufrechterhaltung der variablen Zustand (Tabellen/dicts/lists/Atom), dann haben Sie einen Blick auf 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"} 

Dies deckt Funktionen jedoch nicht ab, aber idealerweise sollten diese sich sowieso nicht ändern.

Wenn Sie wirklich diese speichern müssen, können Sie alle Namespaces auf der Festplatte speichern.

.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 

Grüße,

Connor