首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保存KDB+实例的所有表、变量和函数,然后重新加载

保存KDB+实例的所有表、变量和函数,然后重新加载
EN

Stack Overflow用户
提问于 2016-07-22 20:32:22
回答 2查看 888关注 0票数 2

有没有一种简单的方法可以保存所有的表、变量和函数,然后将它们重新加载到另一个kdb+实例中?例如,假设我的机器设置为每周重新启动,但我希望重新加载在重新启动之前kdb+会话中的所有内容。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-07-22 22:09:01

如果您想要一些开箱即用的东西来维护变量状态(表/字典/列表/原子),那么可以看看http://code.kx.com/q/cookbook/logging/

代码语言:javascript
运行
复制
/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"}

然而,这不会涉及到函数,但理想情况下,这些函数不应该改变。

如果确实需要保存这些名称空间,可以考虑将所有名称空间保存到磁盘。

代码语言:javascript
运行
复制
.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

致以敬意,

康纳

票数 2
EN

Stack Overflow用户

发布于 2016-07-22 21:50:36

使用set/get将状态保存到文件中。这仅限于小型工作空间。

代码语言:javascript
运行
复制
>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#kdb-logging-replication

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38526522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档