如何加速 ClickHouse 中的大查询?

How to speed up big query in ClickHouse?

背景:

我在 ClickHouse 提交了一个本地查询(没有使用缓存),它处理了 41443 万行,42.80 GB。 查询持续了 100 多秒。 我的 ClickHouse 实例安装在 AWS c5.9xlarge EC2 上 12T st1 EBS

在此查询期间,IOPS 最多 500,读取 throughput 最多 20M/s。 作为比较,st1 EBS max IOPS500 而 max throughput500M/s.

这是我的问题:

  1. 500 IOPS 真的会限制我的查询(文件读取)速度吗? (不用管缓存)我应该将 EBS 卷类型更改为 gp2 还是 io1 以增加 IOPS
  2. 在相同的IOPS下,有什么设置可以改善throughput吗? (正如我所见,它实际上离天花板还很远) 我尝试增加 'max_block_size' 以一次读取更多文件,但它似乎不起作用。
  3. 如何延长缓存时间?大查询分分钟搞定。缓存需要几秒钟。但是缓存似乎不会持续很长时间。
  4. 如何预热色谱柱以满足所有要求?请显示 sqls。

Does 500 IOPS actually limit my query (file-reading) speed?

Should I change EBS volume type to gp2 or io1 to increase IOPS?

Is there any setting can improve throughput under the same IOPS?

调整max_bytes_to_read

减少列数(select)

减少零件数量(select)

How to extend the cache time?

min_merge_bytes_to_use_direct_io=1

How can I warm-up columns to meet all requirements? Please show sqls.

select a,b,c,d from T Format Null