【数据库维护】如何解决Clickhouse数据库Too many parts报错

news/2025/2/24 19:30:59

如何解决Clickhouse数据库Too many parts/memory exceed limit报错

问题现象

问题原因分析

  1. 针对单张表单个分区频繁写入小数据量,数据库形成大量小碎片Parts,Clickhouse后台开始逐步进行小碎片合并为大碎片,消耗服务CPU/内存资源
  2. 单张表单个分区活跃数据分片(Parts)数量大于服务配置参数parts_to_delay_insert值后,服务开始启动延迟插入,人为减慢新入库数据写入速度,进行自我保护,可能造成数据积压
  3. 此时如果持续插入数据,单表单个分区活跃数据分片(Parts)数量大于服务配置参数parts_to_throw_insert参数,服务开始中断插入,报错Too many parts,造成数据丢失
  4. clickhouse数据库为OLAP数据库,执行Alter/Update/Delete等操作会产生突变,对应表所有已入库数据在后台会自动重新入库,造成服务压力。

在这里插入图片描述

问题解决建议

  1. 优化查询/写入类操作
    1)单次写入同一分区数据,避免跨分区操作,资源消耗更大
    2)单次写入条数大于1W条,避免产生过多数据碎片,服务合并消耗资源
    3)避免变更表结构,以及更新/删除数据

  2. 优化clickhouse服务参数
    1)parts_to_delay_insert参数调整为1000,减缓延迟插入动作,避免数据积压
    2)parts_to_throw_insert参数调整为3000,减缓插入报错问题,避免数据丢失
    3)max_memory_usage参数调整,限制单次查询/插入内存使用上限

以上参数仅作参考,实际环境可以根据资源情况验证调整。

解决memory exceed limit问题同样可以参考上述配置调整。

在这里插入图片描述


http://www.niftyadmin.cn/n/5864748.html

相关文章

汽车零部件ERP软件进销存软件库存管理委外加工计算计件工资软件

本软件为给苏州某汽车零部件公司开发的进销存管理系统 软件除了基本的进销存功能外,主要是加了委外加工的部分即通过委外加工领料单与委外加工入库单来算委外加工费 及通过录入计件工资入库单来算员工计件工资。 github下载地址:https://github.com/oyan…

6. Go接口

一、接口相关概念 理解和掌握接口的使用对于写出优雅且可扩展的 Go 代码至关重要。接口是 Go 语言的核心,它提供了灵活的抽象方式,使得不同类型能够通过共享行为来合作,而不需要彼此依赖具体实现。这种机制对于模块化编程、降低耦合度以及实…

记录一下VScode可以使用nvcc编译,但VS不行的解决方案

最近在学习CUDA编程的东西,出现了一个问题Visual Studio在使用nvcc编译会报错。 D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\vcruntime.h(197): error: invalid redeclaration of type name "size_t&q…

DeepSeek 助力 Vue 开发:打造丝滑的滑块(Slider)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

谷歌浏览器(Google Chrome)扩展程序的安装路径(插件的安装路径)

谷歌浏览器(Google Chrome)扩展程序的安装路径(插件的安装路径),举例:AdBlock 1、点击操作栏:扩展程序--管理扩展程序--我的扩展程序 2、点击“扩展程序”,比如:AdBlock,选择“详情”,找到“ID”…

第8章:LangChain检索增强生成RAG--2.4Advanced RAG【高级RAG】

这一部分详细介绍了 LangChain4j 中的高级 RAG(Advanced RAG)实现。高级 RAG 通过多个模块化组件来增强检索功能,提供了高度的灵活性和定制化能力,一般要做好,多半都会采用此方案 高级 RAG(Advanced RAG) 高级 RAG 可以通过 LangChain4j 实现,涉及以下核心组件: Que…

vue passive 修饰符使用场景

passive的作用 让事件的默认行为立即执行,无需等待事件回调执行完毕 比如滚动事件:默认情况下,浏览器会等待JavaScript事件处理函数(onscroll) 执行完毕后才进行滚动,这可能会导致页面的滚动不够流畅。 使用passive…

自制操作系统前置知识汇编学习

今天要做什么? 为了更好的理解书中内容,需要学习下进制分析和汇编。 汇编语言其实应该叫叫机器指令符号化语言,目前的汇编语言是学习操作系统的基础。 一:触发器 电路触发器的锁存命令默认是断开的,是控制电路触发器…