首页 > 数据库 >[Clickhouse] Clickhouse 报SQLException : Read timed out

[Clickhouse] Clickhouse 报SQLException : Read timed out

时间:2023-12-13 14:33:50浏览次数:24  
标签:Read 查询 SQLException Clickhouse timeout SQL timed clickhouse

1 问题描述

在使用Clickhouse(21.3.4.25)进行大数据量地数据查询,高频报出 SQLException : Read timed out 错误

2 问题分析

2.1 单次查询:耗时约4s

2.2 并发20查询:报SQLException Read timeout,并发5查询:正常

2.3 整个SQL :查询业务逻辑复杂(多层嵌套、Join、200余行)

2.4 整个Query SQL 的查询基表:基于1个36亿级(6W Inner Join 6W)的视图表

2.x 问题结论及优化方向

  • 根本原因:
  • SQL逻辑和所消耗的资源较高,达到了CK数据库的资源、性能瓶颈。(Clickhouse本身也不支持高并发查询,官网/最佳实践的建议:单表查询,尽可能减少join、最高单表并发100)
  • 个人优化建议:
  • 1、优化SQL(可结合物化视图,如果担心统计不准(大部分情况下,误差概率极低、较小),可先主动执行 optimze table {table} final 指令做合并,再执行 Query SQL)
  • 2、尝试调整连接参数(如:?socket_timeout=600000,能一定程度上减少此类报错)
由于数据量过大,查询请求太久,导致clickhouse连接超时。
建议在clickhouse连接字符串后面加上参数:`?socket_timeout=600000`再验证
socket_timeout的单位是ms,可以根据实际情况更改大小。

X 参考文献

  • clickhouse

标签:Read,查询,SQLException,Clickhouse,timeout,SQL,timed,clickhouse
From: https://www.cnblogs.com/johnnyzen/p/17898965.html

相关文章

  • simpread-Ubuntu 扩容磁盘、扩容内存_ubuntu 扩容 the file system can not be resize
    原文地址blog.csdn.net参考:Ubuntu磁盘扩容及启动问题整理作者:一只青木呀发布时间:2020-12-0810:42:19网址:https://blog.csdn.net/weixin_45309916/article/details/110850358也可参照正点原子的:Ubuntu磁盘空间不足?一招轻松扩容Ubuntu磁盘扩容(简单亲测有效)Ubuntu......
  • Executors.newFixedThreadPool(int nThreads)存在的缺陷
    一般来讲是不推荐直接使用JAVA提供的Executors类来初始化线程池,如果有需要可以自行通过ThreadPoolExecutor来封装进行初始化。可以用newFixedThreadPool(intnThreads)来简单分析下。看一下源代码不难发现,问题的原因在于此方法返回的ThreadPoolExecutor使用的阻塞队列是Linked......
  • ClickHouse中select final和optimize table final的区别
     ClickHouse中selectfinal和optimizetablefinal的区别 使用 OPTIMIZETABLEFINAL 该语句会对表的数据部分进行计划外的合并,通常不建议使用。见官档:传送门而在select中当 FINAL 被指定,ClickHouse会在返回结果之前完全合并数据,从而执行给定表引擎合并期间发生的所有数......
  • 笔记:Qt开发之多线程的实现(QThread、moveToThread)
    目标:了解Qt实现多线程的两种基本方式(QThread、moveToThread),各自的实现方式、使用场景。1,子类化QThread实现方式:继承QThread类,重写run()函数实现多线程classWorkerThread:publicQThread{ Q_OBJECT public: explicitMyThread(QObject*parent=nullptr):QObject(pare......
  • 深入浅出Thread.currentThread()与this的区别
    Thread.currentThread()与this的意义Thread.currentThread()可以获取当前线程的引用this可以理解为调用当前方法的对象的引用初步分析代码如下,生成一个线程,并且启动线程。publicclassMain{publicstaticvoidmain(String[]args){Pointpoint=ne......
  • 【flink番外篇】3、fflink的source(内置、mysql、kafka、redis、clickhouse)介绍及示例(2
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • 【flink番外篇】3、flink的source(内置、mysql、kafka、redis、clickhouse)介绍及示例(3)-
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • python cv2.imread 读取中文路径的图片返回为None的问题
    使用cv2读取图片时,输出图片形状大小时出现报错“'NoneType'objecthasnoattributeshape”,后来排查发现读取图片的返回值image为None,这就说明图片根本就没有被读取。下面图片是问题问题解决后,为了更好的展示,写的代码展示,这是正常的因果关系,找错误排查时是从下往上推。 ......
  • 异常关机clickhouse无法启动
    [169492]{}<Error>Application:DB::Exception:Suspiciouslymany(1416parts,0.00Bintotal)brokenpartstoremovewhilemaximumallowedbrokenpartscountis100.Youcanchangethemaximumvaluewithmergetreesetting'max_suspicious_b......
  • 【HarmonyOS】Web组件使用setResponseIsReady+setResponseData实现异步自定义响应数据
    【问题描述】在web组件的自定义响应数据方法如下:Web().onInterceptRequest((event)=>{…})如果需要在callbak中如果使用Promise等获取异步信息,并读取该如何操作 【解决方案】通过setResponseIsReady+setResponseData的方式控制数据返回,先设置setResponseIsReady为fal......