作者:xuty
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
一. 背景
记录下第一次使用 GDB 调试 ClickHouse 源码的过程,这里仅仅是通过简单的调试过程了解 ClickHouse 内部的机制,有助于解决疑惑,代码小白,有错误见谅。
二. 调试问题
调试 ClickHouse 主要是为了解决个人遇到的一个实际问题,下面先描述下这个问题:
- 通过 clickhouse 自带的
mysql表函数导入全量数据时(这里建了一张测试表memory_test,50w行数据56G),因为超过最大的内存限制(CK服务器36G内存),导致了如下报错。
localhost :) insert into `test`.`memory_test` select * mysql('192.168.1.1:3306','test','memory_test','root','xxxx');
Received exception from server (version 20.8.12):
Code: 241. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: Memory limit (total) exceeded: would use 35.96 GiB (attempt to allocate chunk of 17181966336 bytes), maximum: 28.14 GiB: While executing SourceFromInputStream.
</

本文记录了使用GDB调试ClickHouse源码,寻找并解决内存限制问题的过程。作者通过调整`min_insert_block_size_rows`参数,成功避免了在导入大量数据时内存不足的错误,实现了优化数据导入的方式。
最低0.47元/天 解锁文章
1575

被折叠的 条评论
为什么被折叠?



