Clickhouse:导入双引号被反斜杠转义的数据

Clickhouse : import data having double quotes escaped by backslash

我正在尝试导入一个 html 片段,它是 csv 中某一列的一部分。 html 片段中有双引号,它被转义了。此 csv 是使用 apache spark 创建的。

为了说明问题,我刚刚用最少的数据创建了 2 列。

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\">"

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

cat sample.csv | clickhouse-client --query="INSERT INTO logs.processing FORMAT CSV"

异常

Code: 117. DB::Exception: Expected end of line

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

"Fri, 01 May 2020 06:47:05 UTC","col2"

它工作正常。

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

谢谢。

CSV spec需要:

  1. If double-quotes are used to enclose fields, then a double-quote appearing inside a field must be escaped by preceding it with another double quote. For example:

    "aaa","b""bb","ccc"

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

cat sample.csv | sed 's/\"/""/g' | clickhouse-client --query="INSERT INTO logs.processing FORMAT CSV"

我已经在 CH github 中发布了查询。看起来他们现在只有双引号作为转义字符。

https://github.com/ClickHouse/ClickHouse/issues/10624