以下是演示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的相关问题
2条答案
按热度按时间yruzcnhs1#
我也遇到了同样的问题。我创建了一个公关https://github.com/yandex/clickhouse/pull/2574
用它你可以指定
format_allow_csv_single_quote=0
以字符串开头的字符串字段解析csv数据'
编辑:现在合并了。
deyfvvtc2#
对于这样的值,需要使用双引号。
这很管用。