八月林城 2024-07-02 17:56 采纳率: 50%
浏览 5
已结题

DB::Exception: Too many parts (300)

问题描述

clickhouse数据插入时报错

代码片段及报错内容

代码片段

insert into ssa_bayonet_base_info
         ( proprietor_code,
            proprietor_name,
            area_center_code,
            area_center_name,
            service_code,
            service_name,
            direction,
            inout_type,
            status,
            ip_address,
            create_time ) 
         values ( '0001A1100000xxxx',
            'XXX公司',
            '10232rewr3242df234332',
            '南部区域中心',
            '213214353342',
            '测试区',
            '1',
            '1',
            '1',
            '172.23.50.152',
            '2024-07-02 14:59:33.919' )

报错内容

DB::Exception: Too many parts (300)

img

我的解答思路

查看相关日志,但是没有找到解决问题的方法

操作环境,软件版本信息

操作系统

统信服务器20

软件版本

clickhouse-20.8.3.18

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-07-02 17:56
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您好,根据您提供的错误信息和搜索结果,这个问题通常是因为ClickHouse在插入数据时生成了太多的parts文件,而这些文件合并的速度跟不上插入的速度,导致超过了默认的parts_to_throw_insert值,即300个parts。以下是一些可能的解决方案:

    1. 减少并发数:降低写入ClickHouse的并发数,增加每批处理的数据量。例如,将200并发调整到50并发,每批数据量从1万条调整到5万条,这样可以减少生成的parts文件数量,避免超过默认值[^1^]。

    2. 调整ClickHouse配置:可以尝试增加可合并的分区数,修改ClickHouse配置文件中的<merge_tree>标签,例如:

      <merge_tree>
          <parts_to_delay_insert>600</parts_to_delay_insert>
          <parts_to_throw_insert>600</parts_to_throw_insert>
          <max_delay_to_insert>2</max_delay_to_insert>
          <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
      </merge_tree>
      

      修改后需要重启ClickHouse服务[^1^]。

    3. 优化Merge线程池大小:通过设置background_pool_size参数来优化,这个参数通常设置为CPU核心数的两倍。如果修改后仍然出现问题,可能需要临时调整其他参数,例如number_of_free_entries_in_pool_to_lower_max_size_of_merge,以允许表正常进行merge操作[^3^]。

    4. 存储方式优化:对于数据量较小的情况,可以选择Compact存储方式,以减少merge的压力和时间。对于数据量大的情况,使用Wide存储方式[^4^]。

    5. 合理设置分区:如果每次插入涉及的分区太多,可能会导致异常和插入耗时。合理设置分区字段,避免每次插入请求涉及过多分区[^4^]。

    6. 设置数据过期时间:如果单表存储的数据量过大,建议设置数据的过期时间,或者采用其他数据库存储过大数据量的表[^4^]。

    如果以上方法仍然无法解决问题,建议您查看ClickHouse的日志文件以获取更详细的错误信息,并考虑联系ClickHouse社区或专业技术支持获取帮助。希望这些建议对您有所帮助!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月10日
  • 已采纳回答 7月2日
  • 创建了问题 7月2日

悬赏问题

  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
  • ¥15 Cloudreve保存用户组存储空间大小时报错
  • ¥15 伪标签为什么不能作为弱监督语义分割的结果?
  • ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
  • ¥15 游戏盾如何溯源服务器真实ip?
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥15 抖音看过的视频,缓存在哪个文件