ClickHouse导入CSV文件跳过错误【译文】
2017-12-03 本文已影响1074人
JackpGao
翻译有误请指正~
ClickHouse是来自“战斗民族”的高性能分析性数据库,圈内人戏称为“喀秋莎数据库”。
背景
- 有人导入700G的CSV文件,结果因为一些行异常,导入失败,报错:
Code: 27. DB::Exception: Cannot parse input: expected ,
before: an,,113.143.235.107,,,
https://ads.diamonds/c/3b4336c6-db9a-11e5-bea8-021988c520a1?cid=%COOKIEID&campaignid=%HASH_CODE&pubid=%ADD_CODE&subid=%PLACEMENT,2017-09-0: (at row 865704)
-
很明显是因为一些特殊字段导致的(译者注)
-
于是在Google Groups里提问是否有跳过错误的参数。
回复
- 在俄文的官方文档里,有记录
- 在英文的文档里,没有这个参数的描述(译者注,的确,这点吐槽一下)
- 相关源码:
/** Maximum amount of errors while reading text formats (like CSV, TSV). \
* In case of error, if both values are non-zero, \
* and at least absolute or relative amount of errors is lower than corresponding value, \
* will skip until next line and continue. \
*/ \
M(SettingUInt64, input_format_allow_errors_num, 0) \
M(SettingFloat, input_format_allow_errors_ratio, 0)
使用方式
- 修改config.xml
<input_format_allow_errors_num>100</input_format_allow_errors_num>
译者注
先吐槽
-
这么重要的参数,在英文官方文档里,居然没有
-
之后又Google发现了其他的用法:
clickhouse-client --input_format_allow_errors_num=1 \
--input_format_allow_errors_ratio=0.1 \
--query="INSERT INTO test.formats_test FORMAT TSV"