首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从HDB加载显示表时发生的kdb部件错误

从HDB加载显示表时发生的kdb部件错误
EN

Stack Overflow用户
提问于 2022-09-01 08:29:54
回答 1查看 97关注 0票数 0

我正在保存一张被列举出来的桌子,并在我的hdb上显示出来。之后,我们加载hdb目录。

有一种腐败

'2022.01.01T00:00:01.000部件(.Q.L)错误“

https://code.kx.com/q/ref/dotq/#ql-load/

这是由于加载,我尝试破坏分区来复制:

column(s)

  • Removed
  1. 损坏的.d文件
  2. 损坏了整个分区

以上大多数情况都是在我们的异常情况下处理的。".\2022.01.1\tbl. OS报告:没有此类文件或目录“

但我无法复制发生.Q.l的用例,也无法从日志中找到它发生的原因。

请有人建议,在加载过程中,有哪些损坏可能会导致部件错误。

EN

回答 1

Stack Overflow用户

发布于 2022-09-01 10:13:11

一个可能的原因是分区文件夹没有正确的读取权限:

代码语言:javascript
运行
复制
$ mkdir -p badHDB/2001.01.01/tab1
$ mkdir -p badHDB/20011.01.01/tab2
$ mkdir -p badHDB/2002.01.01
$ chmod 000 badHDB/2002.01.01

运行它时,我们会看到错误:

代码语言:javascript
运行
复制
q badHDB
'part
  [2]  (.Q.L)

  [0]  \l badHDB

您可以编写一个小函数来缩小问题范围:

代码语言:javascript
运行
复制
// https://code.kx.com/q/ref/system/#capture-stderr-output
q)tmp:first system"mktemp"
q)tab:flip `part`date`osError`files`error!flip {d:1_string x;{y:string y;(y;"D"$y),{r:system x;$[0~"J"$last r;(0b;-1_r;"");(1b;();first r)]} "ls ",x,"/",y," > ",tmp," 2>&1;echo $? >> ",tmp,";cat ",tmp}[d] each key x} `:badHDB

这将导致:

代码语言:javascript
运行
复制
part          date       osError files   error
-----------------------------------------------------------------------------------------------------------
"2001.01.01"  2001.01.01 0       ,"tab1" ""
"20011.01.01"            0       ,"tab2" ""
"2002.01.01"  2002.01.01 1       ()      "ls: cannot open directory 'badHDB/2002.01.01': Permission denied"

对于更大的HDB筛选器,向下到有问题的分区:

代码语言:javascript
运行
复制
select from tab where or[null date;osError]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73566343

复制
相关文章

相似问题

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