KDB - 在不退出或重新启动服务的情况下从服务器清除函数、变量、表
KDB - Clearing out functions, variables, tables from server without exiting or restarting service
我目前正在设置服务器并成功将函数和测试数据传递到该服务器。
有没有eloquent清除所有函数、变量、表等的方法?由于我们是 运行 KDB 在 Docker 容器中并通过 IP 地址访问它,我不想在服务器上重新启动 q 会话,而是将 many/all 值和函数分配给:: 或空值。
目前我假设我必须将每个 function/variable/table 重新分配给 :: 或类似的来实现这个。这不是什么大问题,但我希望有很多功能。
\p 5042
h:hopen `:XXX.XXX.XX.XX:5042
h "sq:{x*x}" //send sample function sq to server
h "sq: ::" //assign function sq to nothing (repeat for all variables/functions/tables etc)
hclose h
//check the IP address list of functions to confirm deletion http://XXX.XXX.XX.XX:5042/?\f
您能否向我们提供更多信息,说明您为什么要清除所有内容(特别是,为什么要将函数设置为空)?
否则,你可以做一些事情。您可以对 namespace 执行删除语句以删除其中的所有内容。要删除全局名称space中的所有tables/variables/functions,您可以执行以下操作。
q)a: 1
q)b: 1 2 3
q)f: {1 + x}
q)value `.
a| 1
b| 1 2 3
f| {1 + x}
q)delete from `.
`.
q)value `.
q)f
'f
[0] f
^
q)
如果您想将它们清空而不是删除它们,您可以使用系统命令 a、f 和 v 来获取全局中所有表 (a)、函数 (f) 和变量 (v) 的列表(或其他)名称 space,然后使用 set
将它们全部设置为空。
q)f: {1+x}
q)g: {2*x}
q)(system"f")set'(::)
`f`g
q)f
q)g
q)
这大概就是您要找的东西吗?
(一个明显的问题是您最终可能会删除其他人的变量。)
Matt 的几点额外要点:
.Q.gc[] may be a good idea to run after doing this. This will return any memory to the OS that was being used by those variables in the root namespace e.g. if you had a large table defined before this.
Use an alternative namespace for functions you want to keep after this clearing e.g. .utils. You could even add a .utils.refresh function which clears the root namespace and runs .Q.gc[]
我目前正在设置服务器并成功将函数和测试数据传递到该服务器。
有没有eloquent清除所有函数、变量、表等的方法?由于我们是 运行 KDB 在 Docker 容器中并通过 IP 地址访问它,我不想在服务器上重新启动 q 会话,而是将 many/all 值和函数分配给:: 或空值。
目前我假设我必须将每个 function/variable/table 重新分配给 :: 或类似的来实现这个。这不是什么大问题,但我希望有很多功能。
\p 5042
h:hopen `:XXX.XXX.XX.XX:5042
h "sq:{x*x}" //send sample function sq to server
h "sq: ::" //assign function sq to nothing (repeat for all variables/functions/tables etc)
hclose h
//check the IP address list of functions to confirm deletion http://XXX.XXX.XX.XX:5042/?\f
您能否向我们提供更多信息,说明您为什么要清除所有内容(特别是,为什么要将函数设置为空)?
否则,你可以做一些事情。您可以对 namespace 执行删除语句以删除其中的所有内容。要删除全局名称space中的所有tables/variables/functions,您可以执行以下操作。
q)a: 1
q)b: 1 2 3
q)f: {1 + x}
q)value `.
a| 1
b| 1 2 3
f| {1 + x}
q)delete from `.
`.
q)value `.
q)f
'f
[0] f
^
q)
如果您想将它们清空而不是删除它们,您可以使用系统命令 a、f 和 v 来获取全局中所有表 (a)、函数 (f) 和变量 (v) 的列表(或其他)名称 space,然后使用 set
将它们全部设置为空。
q)f: {1+x}
q)g: {2*x}
q)(system"f")set'(::)
`f`g
q)f
q)g
q)
这大概就是您要找的东西吗?
(一个明显的问题是您最终可能会删除其他人的变量。)
Matt 的几点额外要点:
.Q.gc[] may be a good idea to run after doing this. This will return any memory to the OS that was being used by those variables in the root namespace e.g. if you had a large table defined before this.
Use an alternative namespace for functions you want to keep after this clearing e.g. .utils. You could even add a .utils.refresh function which clears the root namespace and runs .Q.gc[]