我在使用clickhouse的时候,遇到这样的问题:
1.背景:业务系统每秒30M的日志量
日志格式如下:
time level type traceid parentid spanid service instance ip msg
level只有五个值
type有10个值
traceid/parentid/spanid是调用链要用到的三个值
service大概K级别,instance是service的子项,假如service=svr1的话,instance取值就是svr-0,svr-1,svr-2这种,数量从1-100
建表的时候我按照day分区
order by字段如下:time,type,level,service,instance,traceid
2.现在的问题有几个:
1.第一个问题是集群查询超级慢:
单机clickhouse,写入和查询速度都在能接受范围内,但是上了集群,写入没问题,查询的时候响应特别慢。
单独查这样的条件:where type='t1' and time>=t1 and time <=t2,t1-t2相差1小时
在一个并发的前提下,数据量G级别的时候,耗时大概500ms
但是在5并发的情况下,耗时直接飙升到2s,加大并发到10,20,耗时直接飙升到10+s
不知道是什么原因?
2.第二个问题是:这样的设计表是不是有问题?order by字段是否需要调整,越小的放越前面?
3.第三个问题:按天分区是不是太粗,有必要调整成按小时分区吗?
--
FROM 103.167.135.*