ClickHouse导入CSV文件跳过错误【译文】

原文

翻译有误请指正~

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"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,909评论 25 708
  • 当《超级演说家》的视频不断被分享到朋友圈的时候,我突然对这档节目产生浓厚的兴趣,我想知道演讲到底带给大家什么值得分...
    布丁姑娘阅读 613评论 6 6
  • 不一样的卡梅拉之我想去看海,卡梅拉是一只很有想法的小鸡,它的梦想就是想去看看大海,虽然爸爸妈妈都不同意,但它还是冲...
    葛奕轩阅读 234评论 0 0
  • 不要轻易下决定,要仔细考虑 不要发怒,嗓门不要响,要心平气和。 不要太在意别人的看法,要综合起来看
    北飞君阅读 229评论 0 0
  • 今天早上设置了两个闹钟。6点15的那个,我完全没有起来的能力,6点半的时候,勉强能爬起来,在床上呆了半个小时后,爬...
    万十千阅读 145评论 0 0