[1193]ClickHouse写入常见问题: Too many parts (300)

2023-10-26

一、场景及错误信息

今天使用 Datax 往 ClickHouse 同步数据时,出现如下错误:

ClickHouse exception, code: 1002, host: 10.129.170.80, port: 8123; Code: 252. DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts. (TOO_MANY_PARTS) (version 22.3.2.1)

二、报错原因

Too many part 异常原因:当数据插入到 ClickHouse 表时,每一批插入都会生成对应 parts 文件,ClickHouse 后台会有合并小文件的操作。当插入速度过快,生成 parts 小文件过多时,ClickHouse 无法以适当的速度合并这些 parts 时会报上面这个错误。

例如并发数为 200,这样一批写入到 ClickHouse 中就会产生 200 个文件,几批下来如果 ClickHouse 内部线程没来及合并相同分区,就会抛异常

而 ClickHouse 默认一次合并超过 300 个文件就会报错,来看一下配置:

image.png

parts_to_throw_insert

如果单个分区中的活动部件数量超过了parts_to_throw_insert 值,则 INSERT 会中断,出现 Too many parts (N). Merges are processing significantly slower than inserts 异常。

可能的值:任意正数。
默认值: 300.

为了实现 SELECT 查询的最大性能,有必要最小化处理的部分数量,请参阅 Merge Tree

你可以将一个较大的值设置为 600(1200),这将降低 Too many parts 错误的概率,但同时 SELECT 性能可能会降低。此外,在合并问题(例如,由于磁盘空间不足)的情况下,你会在与原始 300 相比晚一点发现该问题。

详细信息可参考官网解释:ClickHouse 官网解释

三、解决办法

定位到了问题,来看一下解决方案:

1、写入 ClickHouse 的并发数调小,批处理的数据 batchSize 间隔调大,比如之前 200 并发调整到 50 并发,从之前一批 1w 条数据调整到 5w 条数据,从而减少 ClickHouse 文件的个数,避免超过 parts_to_throw_insert 默认值。
一般此种方法就可以解决上述问题。

2、如果第一种方法不管用,可以尝试增加可合并的分区数,修改 ClickHouse 配置:

<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 写入频繁时为什么易产生 Too many part 问题:https://blog.csdn.net/weixin_39992480/article/details/121025387

参考:https://blog.csdn.net/qq_45124566/article/details/128854088

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[1193]ClickHouse写入常见问题: Too many parts (300) 的相关文章

  • sql临时表、创建虚拟表、select临时表、多行数据、自定义数据、插入数据

    SELECT FROM VALUES John 25 Jane 30 Mike 35 AS table name name age 方法2 select 1 2 union all select 3 4
  • Nexus5596交换机支持3层需要的子卡

    3层子卡 nexus5596如果没有这块子卡 无法支持3层特性 TEST Cisco N5596 1 show modu Mod Ports Module Type Model Status 1 48 O2 32X10GBase T 16X
  • 实时获取建材网商品数据:API实现详解与代码示例

    一 引言 随着电子商务的快速发展 实时获取商品数据对于企业决策 市场分析以及数据驱动的营销策略至关重要 建材网作为国内知名的建材信息平台 提供了API接口 使得第三方开发者可以方便地获取商品数据 本文将详细介绍如何使用 建材网的API接口
  • 进程间通信

    进程间通信 进程间通信介绍 进程间通信目的 数据传输 一个进程需要将它的数据发送给另一个进程 资源共享 多个进程之间共享同样的资源 通知事件 一个进程需要向另一个或一组进程发送消息 通知它 它们 发生了某种事件 如进程终止 时要通知父进程
  • AntDB内存管理之内存上下文之内存上下文机制是怎么实现的

    4 内存上下文机制是怎么实现的 下文将针对内存上下文机制进行代码说明 本次以AntDB的代码为例 来解析内存上下文的实现方式 4 1 最基础的数据结构 MemoryContextData和MemoryContextMethods是内存上下文
  • 【计算机毕业设计】病房管理系统

    当下 如果还依然使用纸质文档来记录并且管理相关信息 可能会出现很多问题 比如原始文件的丢失 因为采用纸质文档 很容易受潮或者怕火 不容易备份 需要花费大量的人员和资金来管理用纸质文档存储的信息 最重要的是数据出现问题寻找起来很麻烦 并且修改
  • Navicat 16 for MySQL:打造高效数据库开发管理工具

    随着数据的快速增长和复杂性的提升 数据库成为了现代应用开发中不可或缺的一部分 而在MySQL数据库领域 Navicat 16 for MySQL作为一款强大的数据库开发管理工具 正受到越来越多开发者的青睐 Navicat 16 for My
  • 【计算机毕业设计】学生就业管理系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统学生就业信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难题开
  • Clickhouse 从 csv DB::NetException 导入数据:写入套接字时,连接被对等方重置

    我正在尝试通过以下方式将 gz 文件加载到 Clickhouse clickhouse client max memory usage 15323460608 format csv delimiter query 插入 tmp1 my te
  • python超详细基础文件操作【建议收藏】

    文章目录 前言 发现宝藏 1 文件操作 1 1 文件打开与关闭 1 1 1 打开文件 1 1 2 关闭文件 1 2 访问模式及说明 2 文件读写 2 1 写数据 write 2 2 读数据 read 2 3 读数据 readlines 2
  • 基于java的学生宿舍管理系统设计与实现

    基于java的学生宿舍管理系统设计与实现 I 引言 A 研究背景和动机 基于Java的学生宿舍管理系统设计与实现的研究背景和动机 在数字化时代的推动下 学生宿舍管理系统已经成为了管理学生宿舍的重要工具 学生宿舍管理系统能够帮助管理者更好地管
  • 基于java的饮食分享平台系统设计与实现

    基于java的饮食分享平台系统设计与实现 I 引言 A 研究背景和动机 近年来 随着人们生活水平的提高和健康意识的增强 饮食健康已经成为越来越多人的关注焦点 因此 一个方便快捷的饮食分享平台就显得尤为重要 基于Java的饮食分享平台系统设计
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 【计算机毕业设计】springbootstone音乐播放器的设计与实现

    随着我国经济的高速发展与人们生活水平的日益提高 人们对生活质量的追求也多种多样 尤其在人们生活节奏不断加快的当下 人们更趋向于足不出户解决生活上的问题 stone音乐播放器展现了其蓬勃生命力和广阔的前景 与此同时 为解决用户需求 stone
  • Oracle EBS AP发票导入 API Rejection List 第二部分

    Oracle EBS AP发票导入 API Rejection List 第二部分 The report lists the reason the invoice could not be imported and prints a bri
  • 面试官问,如何在十亿级别用户中检查用户名是否存在?

    面试官问 如何在十亿级别用户中检查用户名是否存在 前言 不知道大家有没有留意过 在使用一些app注册的时候 提示你用户名已经被占用了 需要更换一个 这是如何实现的呢 你可能想这不是很简单吗 去数据库里查一下有没有不就行了吗 那么假如用户数量
  • Python 使用 NoSQL 数据库的优选方案

    NoSQL 数据库因其高性能 可扩展性和灵活性而风靡一时 然而 对于 Python 程序员而言 选择合适的 NoSQL 数据库可能会令人困惑 因为有多种选择可供选择 那么 哪种 NoSQL 数据库最适合 Python 呢 2 解决方案 根据
  • 是否可以从 clickhouse 表中删除旧记录?

    据我所知 clickhouse只允许插入新数据 但是是否可以删除早于某个时间段的块以避免硬盘溢出 轻量级删除 自 v22 8 起可用 MergeTree 表的标准 DELETE 语法已在 37893 https github com Cli
  • 如何从序列中提取升序子集?

    我有一些数据 id serial 1 1 2 2 3 3 4 1 5 3 6 2 7 1 8 2 9 3 10 1 11 2 12 1 13 2 14 3 我想按 串行 列进行分组 其中组规则是 任何升序子集 像这样 1 gt 2 gt 3
  • 点击屋。在集群上创建数据库超时结束

    我有一个由 Clickhouse 的两个节点组成的集群 两个实例都位于 docker 容器中 主机之间的所有通信均已成功检查 ping telnet wget 工作正常 在 Zookeeper 中 我可以在下面看到我触发的查询ddl bru

随机推荐

  • vs2015的OpenCV3.2.0编译

    我们希望添加第三方功能模块和库或者针对特定cpu和gpu的编译调整优化选项 这样的需求就需要自己去编译opencv了 准备东西 opencv opencv contrib cmake 还有两个文件 因为可能是国内的原因 在configure
  • eviews建立时间序列模型_如何用eviews分析时间序列(全面).pdf

    您所在位置 网站首页 gt 海量文档 nbsp gt nbsp中学教育 nbsp gt nbsp高中教育 如何用eviews分析时间序列 全面 pdf70页 本文档一共被下载 次 您可全文免费在线阅读后下载本文档
  • 二层组播和三层组播

    平时常常说组播 其实只是多播的另外一种叫法 多播中 因为把参与多播的所有接收者称为组 所以才有组播的说法 多播技术要比广播技术复杂的多 多播技术对一些应用很重要 比如电视会议 聊天室等 物理层多播 系统需要对网络接口进行配置 让接口识别该地
  • MATLAB行向量顺序颠倒函数 - fliplr

    fliplr A 只可用于行向量 列向量不行 实例 1 行向量 2 列向量
  • 如何使用正则表达式实现Java日志信息的抓取与收集

    首先 什么是Java日志信息 简单来说 Java应用程序在运行过程中会输出一些信息 这些信息可以用来追踪程序运行状态 调试错误等 而Java日志信息就是这些输出信息的集合 那么为什么要抓取和收集Java日志信息呢 一方面 这些信息可以帮助我
  • 失业的程序员(八):创业的要素

    一 管饭哥登场 按理说我规定我和卞工的上班时间是上午8点到10点 弹性足够大 虽曰规定 但是遵不遵守随意 原因只有一个 引用卞工的话 就两个人 考毛勤 我 很是认可 严密的考勤制度的建立是老板对员工不怎么太信任的开始 是一种等级制度的体现
  • 1.神奇的字符串之快速求和

    文章目录 前言 正题 先看第一个代码 直接循环取出每一位数 总结 前言 这个专栏是分享一些好用的数据 和一些解题比较快的小方法 会持续更新 因为博主还是计算机方向的小白 知道的东西还是很少 希望大家可以多多指教 正题 众所周知 字符串一直是
  • PyTorch实现Logistic regression

    逻辑回归 Logistic regression 回归方法是对数值型连续随机变量进行预测和建模的监督学习算法 其特点是标注的数据集具有数值型的目标变量 回归的目的是预测数值型的目标值 逻辑回归对应线性回归 旨在解决分类问题 即将模型的输出转
  • python如何对微信应用进行监听

    要在 Python 中监听微信应用 需要使用微信提供的接口和相关的第三方库 具体实现方法如下 首先需要申请微信公众平台账号并获取相应的 AppID 和 AppSecret 使用第三方库 如 itchat 来进行接口调用 Itchat 是一个
  • Git提交error: RPC failed; result=22, HTTP code = 500的解决方法

    新建了一个项目使用sourcetree提交Git时 提示错误 RPC failed result 22 HTTP code 500 这是由于上传的包过大 HTTP的头错误导致的 解决办法 在终端执行命令显示隐藏文件夹 显示全部文件 defa
  • wget -o -O和-O-有什么区别?bash改色

    wget o O和 O 有什么区别 wget o 下载过程信息存入日志文件wget o youlogname log url 下载文件放另一边 wget O 以其他名称保存下载的文件内容 输出下载过程信息wget O home ym dem
  • linux之librdkafka库安装以及将#include <librdkafka/rdkafka.h>更改为#include <rdkafka.h>调用

    公众号 嵌入式不难 本文仅供参考学习 如有错误之处 欢迎留言指正 下载源代码 使用如下命令 git clone https github com edenhill librdkafka git 切换到发布的稳定分支 刚下载下来的源代码默认在
  • -O1 -O2 -O3 优化的原理是什么?

    一般来说 如果不指定优化标识的话 gcc就会产生可调试代码 每条指令之间将是独立的 可以在指令之间设置断点 使用gdb中的 p命令查看变量的值 改变变量的值等 并且把获取最快的编译速度作为它的目标 当优化标识被启用之后 gcc编译器将会试图
  • 鸿蒙应用开发学习

    系列文章目录 第一章 HarmonyOS是什么 第二章 基础环境和开发工具 文章目录 系列文章目录 前言 一 HarmonyOS工程介绍 二 工程目录结构 三 工程目录介绍 1 entry 2 Ability 3 库文件 4 资源文件 5
  • Linux指令中touch和mkdir的区别

    在Linux中 mkdir 用于创建空的文件夹 格式 mkdir 选项 目录 选项 功能 m 默认文件目录的权限 m755 p 连续创建多层 v 显示创建过程 touch touch 是用于创建新的文件 或者修改文件的时间
  • 福昕阅读器注册码

    以下文字复制到记事本存为frpkey txt 复制到福昕阅读器的安装目录即可 FoxitReaderPro SN FRPFZ12391Modules Users 1Licensee OlivierGuilloryLicenseDate 20
  • sql中and和or的混合使用

    1 and的优先级高于or 2 使用 调整优先级 下面sql没有添加过滤条件 下面sql查出的结果是错误的 下面sql查出的结果是正确的
  • 延时函数

    Dos sleep 1 停留1秒 delay 100 停留100毫秒 Windows Sleep 100 停留100毫秒 Linux sleep 1 停留1秒 usleep 1000 停留1毫秒 每一个平台不太一样 最好自己定义一套跨平台的
  • 继续探索Roop(单张图视频换脸)的各方面:比如喜闻乐见的“加速”

    文章目录 一 Roop项目的特点 二 Roop也能加速 三 Roop更新和依赖 3 1 飞速更新 3 2 依赖问题 3 3 需要CUDA么 前两天写了 简单介绍Roop 类似SimSwap 单张图视频换脸的项目 介绍了基本安装使用 之后这个
  • [1193]ClickHouse写入常见问题: Too many parts (300)

    文章目录 一 场景及错误信息 二 报错原因 三 解决办法 扩展 一 场景及错误信息 今天使用 Datax 往 ClickHouse 同步数据时 出现如下错误 ClickHouse exception code 1002 host 10 12