[Clickhouse] Clickhouse 报SQLException : Read timed out
生活随笔
收集整理的这篇文章主要介绍了
[Clickhouse] Clickhouse 报SQLException : Read timed out
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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
- https://github.com/ClickHouse/ClickHouse
- https://clickhouse.com/docs
- Clickhouse, read timed out 错误 - Smart BI
总结
以上是生活随笔为你收集整理的[Clickhouse] Clickhouse 报SQLException : Read timed out的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: iphone数据线接电脑没反应的处理方法
- 下一篇: Helm Chart 部署 Redis