Clickhouse: импортировать данные с двойными кавычками без обратной косой черты - PullRequest
1 голос
/ 02 мая 2020

Я пытаюсь импортировать фрагмент 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"

Работает нормально.

Не могли бы вы Пожалуйста, помогите мне в этом вопросе.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

CSV spe c требует:

Если для заключения полей используются двойные кавычки, то двойная кавычка, появляющаяся внутри поля, должна быть экранирована, предшествуя другой двойной кавычке. Например:

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

Требуется либо изначально создать действительный CSV-файл или исправьте это перед передачей в CH-клиент:

cat sample.csv | sed 's/\\"/""/g' | clickhouse-client --query="INSERT INTO logs.processing FORMAT CSV"
0 голосов
/ 02 мая 2020

Я отправил запрос в CH github. похоже, что на данный момент они имеют только двойную кавычку как только экранирующий символ.

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

...