美文网首页
ClickHouse导入CSV文件跳过错误【译文】

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

作者: JackpGao | 来源:发表于2017-12-03 15:27 被阅读1074次

    原文

    翻译有误请指正~

    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"
    

    相关文章

      网友评论

          本文标题:ClickHouse导入CSV文件跳过错误【译文】

          本文链接:https://www.haomeiwen.com/subject/riwabxtx.html