首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clickhouse异常:超出内存限制(总计):28.13 GiB (尝试分配4543835字节的块)

Clickhouse异常:超出内存限制(总计):28.13 GiB (尝试分配4543835字节的块)
EN

Stack Overflow用户
提问于 2021-05-17 06:29:42
回答 1查看 2.4K关注 0票数 0

我在clickhouse数据库中创建了一个带有以下查询的表:

代码语言:javascript
复制
CREATE TABLE events (name String, track_date Date, id UInt64, con_type String, network String) ENGINE = MergeTree() PRIMARY KEY id ORDER BY id;

  1. I从卡夫卡用户那里获取数据,并解析JSON构建一个查询
  2. ,试图每隔2秒从java应用程序执行INSERT查询: insert INSERT事件(名称、track_date、id、con_type、网络)值(ABC,'2021-05-05',111,'android','wxy'),(DEF,'2021-05-05',112,'ios','ewr'),(HJK,'2021-05-05',111,'android',‘android’,‘'xyz');

  • 数据大小可能随着json数组长度的变化而变化,可能是更大的插入查询。

在运行4天的应用程序后,我会得到以下异常:

代码语言:javascript
复制
ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 241, host: localhost, port: 8123; Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 28.13 GiB (attempt to allocate chunk of 4543835 bytes), maximum: 28.13 GiB (version 20.8.3.18)

at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:58) at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:28) at ru.yandex.clickhouse.ClickHouseStatementImpl.checkForErrorAndThrow(ClickHouseStatementImpl.java:875) at ru.yandex.clickhouse.ClickHouseStatementImpl.getInputStream(ClickHouseStatementImpl.java:616) at ru.yandex.clickhouse.ClickHouseStatementImpl.executeUpdate(ClickHouseStatementImpl.java:215) at ru.yandex.clickhouse.ClickHousePreparedStatementImpl.executeUpdate(ClickHousePreparedStatementImpl.java:130) at com.way2news.util.DataAppender.pushClickHouse(DataAppender.java:82) at com.way2news.util.KConsumer.run(KConsumer.java:44) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.Throwable: Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 28.13 GiB (attempt to allocate chunk of 4543835 bytes), maximum: 28.13 GiB (version 20.8.3.18)

at ru.yandex.clickhouse.except.ClickHouseExceptionSpecifier.specify(ClickHouseExceptionSpecifier.java:53) ... 14 more

如何解决这个问题。

谢谢,

比马尔。

EN

回答 1

Stack Overflow用户

发布于 2021-06-16 14:44:00

是否您所使用的https://github.com/ClickHouse/ClickHouse/issues/15932版本的修补程序没有合并?21.1或更高版本应该有它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67564925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档