【发布时间】:2018-11-25 08:58:07
【问题描述】:
这里是演示 DDL:
CREATE TABLE X (
eventdate Date default toDate(now()),
f1 String,
f2 String,
f3 String
) ENGINE = MergeTree(eventdate, (f1, f2, f3), 8192)
当我尝试导入数据时,clickhous 失败并出现错误:
$echo "US,'Ewa Beach, Test" | clickhouse-client --database default --query "insert into X(f1, f2, f3) format CSV"
Code: 27. DB::Exception: Cannot parse input: expected , at end of
stream.: (at row 1)
这是我的 click house 版本(如果我没记错的话,写它的时间是最新版本):
$ clickhouse-client --version
ClickHouse client version 1.1.54385.
问题是f2字段值中的'符号。 请问有什么解决方法可以让它工作吗?
也许有一些选项可以强制使用仅双引号作为字符串分隔符,并将单引号视为没有特殊含义的普通符号?请,欢迎任何解决方案。
我刚刚用相同的值进行了测试,但与 tsv 相同,它可以工作。但不幸的是,我现在无法迁移到 tsv。我需要为 csv 找出一些解决方法,以使其与字段值中的单引号一起使用。
附言
有趣的是,如果只留下两个字段,它会正确解析 csv。
CREATE TABLE X (
eventdate Date default toDate(now()),
f1 String,
f2 String
) ENGINE = MergeTree(eventdate, (f1, f2), 8192)
以下查询有效:
$echo "US,'Ewa Beach" | clickhouse-client --database default --query "insert into X(f1, f2) format CSV"
这里是GitHub上的相关issue
【问题讨论】:
标签: yandex clickhouse