Performance 如何在ClickHouse中加速大查询?
背景: 我在ClickHouse中提交了一个本地查询(不使用缓存),它处理了41443万行,42.80GB。 查询持续了100多秒。 我的ClickHouse实例安装在AWSPerformance 如何在ClickHouse中加速大查询?,performance,clickhouse,throughput,Performance,Clickhouse,Throughput,背景: 我在ClickHouse中提交了一个本地查询(不使用缓存),它处理了41443万行,42.80GB。 查询持续了100多秒。 我的ClickHouse实例安装在AWSc5.9xlargeEC2上,带有12Tst1EBS 在此查询过程中,IOPS最高可达500,读取吞吐量最高可达20M/s。 作为比较,st1EBS maxIOPS为500最大吞吐量为500M/s 我的问题是: 500IOPS是否确实限制了我的查询(文件读取)速度?(不要介意缓存)我应该将EBS卷类型更改为gp2还是io1以
c5.9xlarge
EC2上,带有12T
st1
EBS
在此查询过程中,IOPS
最高可达500
,读取吞吐量
最高可达20M/s
。
作为比较,st1
EBS maxIOPS
为500
最大吞吐量
为500M/s
我的问题是:
500
IOPS
是否确实限制了我的查询(文件读取)速度?(不要介意缓存)我应该将EBS卷类型更改为gp2
还是io1
以增加IOPS
IOPS
下,是否有任何设置可以提高吞吐量
?(如我所见,它实际上离天花板很远)
我试图增加“最大块大小”
一次读取更多文件,但似乎不起作用从T格式Null中选择a、b、c、d
500 IOPS是否限制了我的查询(文件读取)速度
对
我是否应该将EBS卷类型更改为gp2或io1以提高IOPS
对
在相同的IOPS下,是否有任何设置可以提高吞吐量
将最大字节数调整为读取
减少列数(在选择中)
减少零件数量(在选择中)
如何延长缓存时间
最小\u合并\u字节\u使用\u直接\u io=1
如何使预热栏满足所有要求?请显示sqls
从T Format Null中选择a、b、c、d作为参考,我查询的表包含数千个分区(目前为2k)。我发现max\u bytes\u to\u read
默认设置为0,这意味着没有限制。我试图改变它的价值,但没有发现性能上的显著变化。这是否意味着我的查询产生如此低的吞吐量仅仅是因为有太多的部分,并且它不满足max_bytes\u to_read
限制?我可能将max_bytes\u to_read
与另一个参数混淆了。我记得CH读取1MB缓冲区。但您的目标不是吞吐量。是的,2k零件可能是压力超过500IPS极限的原因。部分可能太小,CH执行更多IO操作以读取多个文件而不是一个文件。尝试使用其他分区重建表。作为参考,我查询的表包含数千个分区(目前为2k)。我发现max\u bytes\u to\u read
默认设置为0,这意味着没有限制。我试图改变它的价值,但没有发现性能上的显著变化。这是否意味着我的查询产生如此低的吞吐量仅仅是因为有太多的部分,并且它不满足max_bytes\u to_read
限制?我可能将max_bytes\u to_read
与另一个参数混淆了。我记得CH读取1MB缓冲区。但您的目标不是吞吐量。是的,2k零件可能是压力超过500IPS极限的原因。部分可能太小,CH执行更多IO操作以读取多个文件而不是一个文件。尝试用另一个分区重建表。