Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Clickhouse:较大的文件似乎正在引发缓冲区和诊断问题?_R_Windows_Docker_Clickhouse - Fatal编程技术网

R Clickhouse:较大的文件似乎正在引发缓冲区和诊断问题?

R Clickhouse:较大的文件似乎正在引发缓冲区和诊断问题?,r,windows,docker,clickhouse,R,Windows,Docker,Clickhouse,我正在使用windows docker desktop 10上的clickhouse docker图像: 我已经让容器启动并运行,正在加载数据。我遇到过这样一个问题,CH抱怨在第xyz行之前需要一个逗号,但在记事本++中打开文件后,我知道事实上应该是一个逗号: Code: 27. DB::Exception: Cannot parse input: expected , before . . . 或者在生产线的末端会出现问题: Code: 117. DB::Exception: Expec

我正在使用windows docker desktop 10上的clickhouse docker图像:

我已经让容器启动并运行,正在加载数据。我遇到过这样一个问题,CH抱怨在第xyz行之前需要一个逗号,但在记事本++中打开文件后,我知道事实上应该是一个逗号:

Code: 27. DB::Exception: Cannot parse input: expected , before . . . 
或者在生产线的末端会出现问题:

Code: 117. DB::Exception: Expected end of line: (at row 127249)
它还抱怨:

Could not print diagnostic info because two last rows aren't in buffer (rare case)
我注意到,对于相对较小的文件,我没有问题(少于30k行)。但更大的文件是一个问题。我以前测试过这些文件,所以我知道它们很好并且可以加载。这似乎是图像中clickhouse的一个问题,因为它甚至无法打印诊断。你知道可能是什么问题吗

编辑:示例

在下面的数据中,我得到了上面提到的一个错误。我使用R编写一个1000000行文件以加载:

#generate my data-----------------------------------------------------------
library(data.table)
set.seed(22)
u = runif(1000000, 0, 60) # "noise" to add or subtract from some timepoint
x = runif(1000000, 0, 1)

my_table = 
data.table(
  pudt=as.POSIXct(u, origin = "2017-02-03 08:00:00"),
  count = round(x,2)
)

my_table[
  ,pudt:=as.character(pudt)]

#write out--------------------------------------
fwrite(my_table, "my_data.csv", row.names = F, col.names = F)


#create my table in clickhouse client 
CREATE TABLE test(
  pudt DateTime,
  count Float32
)engine = Log;


#load the data in powershell-----
$files = Get-ChildItem "where my files are . . . "

foreach ($f in $files){
  $outfile = $f.FullName | Write-Host
  Get-Date | Write-Host    
  "Start loading" + $f.FullName | Write-Host
  `cat $f.FullName | docker run -i --rm --link some-clickhouse-server:clickhouse-client yandex/clickhouse-client -m --host some-clickhouse-server --query="INSERT INTO test FORMAT CSV"`
  "End loading" + $f.FullName | Write-Host
  [GC]::Collect()
}
我在这里得到的错误是:

    Code: 117. DB::Exception: Expected end of line: (at row 144020)
Could not print diagnostic info because two last rows aren't in buffer (rare case)
我查看了该文件,但没有发现我意识到的问题:


这似乎是CH的官方错误,我将测试并查看:

更新:


通过在13.9上构建自定义clickhouse客户端映像解决了此问题。现在效果很好。

最近,我遇到了类似的问题。升级到最新的稳定版本有帮助,请修复它(
19.13.3.26
)。