我正在保存一张被列举出来的桌子,并在我的hdb上显示出来。之后,我们加载hdb目录。
有一种腐败
'2022.01.01T00:00:01.000部件(.Q.L)错误“
https://code.kx.com/q/ref/dotq/#ql-load/
这是由于加载,我尝试破坏分区来复制:
column(s)
以上大多数情况都是在我们的异常情况下处理的。".\2022.01.1\tbl. OS报告:没有此类文件或目录“
但我无法复制发生.Q.l的用例,也无法从日志中找到它发生的原因。
请有人建议,在加载过程中,有哪些损坏可能会导致部件错误。
发布于 2022-09-01 10:13:11
一个可能的原因是分区文件夹没有正确的读取权限:
$ 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运行它时,我们会看到错误:
q badHDB
'part
[2] (.Q.L)
[0] \l badHDB您可以编写一个小函数来缩小问题范围:
// 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这将导致:
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筛选器,向下到有问题的分区:
select from tab where or[null date;osError]https://stackoverflow.com/questions/73566343
复制相似问题