Clickhouse:导入具有用反斜杠转义的双引号的数据

Shi*_* SS 3 clickhouse clickhouse-go

我正在尝试导入一个 html 片段,它是 csv 中某一列的一部分。html 代码片段中有双引号,并且已转义。该 csv 是使用 apache Spark 创建的。

为了说明这个问题,我刚刚创建了两列,其中包含最少的数据。

CREATE TABLE logs.processing ( ts String,text String)  ENGINE = Log

cat sample.csv // Content of the file

"Fri, 01 May 2020 06:47:05 UTC","<html id=\"html-div\">"
Run Code Online (Sandbox Code Playgroud)

抛出异常后发出导入命令。

cat sample.csv | clickhouse-client --query="INSERT INTO logs.processing FORMAT CSV"
Run Code Online (Sandbox Code Playgroud)

例外

Code: 117. DB::Exception: Expected end of line
Run Code Online (Sandbox Code Playgroud)

如果我将sample.csv的内容更改为

"Fri, 01 May 2020 06:47:05 UTC","col2"
Run Code Online (Sandbox Code Playgroud)

效果很好。

你能帮我解决这个问题吗?

谢谢。

vla*_*mir 7

CSV规范要求:

  1. 如果使用双引号括住字段,则必须通过在字段前添加另一个双引号来转义出现在字段内的双引号。例如:

    “aaa”、“b”、“bb”、“ccc”

它需要首先生成有效的 CSV 文件或在传递给 CH 客户端之前修复它:

cat sample.csv | sed 's/\\"/""/g' | clickhouse-client --query="INSERT INTO logs.processing FORMAT CSV"
Run Code Online (Sandbox Code Playgroud)