查看clickHouse中未压缩大小,已压缩大小,占有磁盘大小,总条数

1.查询本地表时,执行查询语句,结果输出到文本

clickhouse-client -h XXXX --port XXXX -u xxxx --password xxxx  -m --query " 

select
    database,
    table,
    formatReadableSize(bytes_on_disk) as bytes_on_disk,
    formatReadableSize(data_uncompressed_bytes) as data_uncompressed_bytes,
    formatReadableSize(data_compressed_bytes) as data_compressed_bytes,
    compress_rate,
    rows
from
(
    select
        database,
        table,
        sum(rows) as rows,
        min(min_date) as min_date,
        max(max_date) as max_date,
        sum(bytes_on_disk) as bytes_on_disk,
        sum(data_uncompressed_bytes) as data_uncompressed_bytes,
        sum(data_compressed_bytes) as data_compressed_bytes,
        (data_compressed_bytes / data_uncompressed_bytes) * 100 as compress_rate
    from system.parts
    where active 
     and database = 'xxxx'
     and table = '本地表'
     and partition = XXXX
    group by
        database,
        table" > result.txt 

注意:此sql查询为本地表,如果需要查询整个表的未压缩大小,已压缩大小,占有磁盘大小,总条数,需要求出所有分布式表的结果并累计。

下文将加载求出所有分布式表的方法

1.将所有服务器对应的ip 放到一个TXT文本中,然后执行

 for ip in $(cat ip.txt); do

clickhouse-client -h XXXX --port XXXX -u xxxx --password xxxx  -m --query " 

select
    database,
    table,
    formatReadableSize(bytes_on_disk) as bytes_on_disk,
    formatReadableSize(data_uncompressed_bytes) as data_uncompressed_bytes,
    formatReadableSize(data_compressed_bytes) as data_compressed_bytes,
    compress_rate,
    rows
from
(
    select
        database,
        table,
        sum(rows) as rows,
        min(min_date) as min_date,
        max(max_date) as max_date,
        sum(bytes_on_disk) as bytes_on_disk,
        sum(data_uncompressed_bytes) as data_uncompressed_bytes,
        sum(data_compressed_bytes) as data_compressed_bytes,
        (data_compressed_bytes / data_uncompressed_bytes) * 100 as compress_rate
    from system.parts
    where active 
     and database = 'xxxx'
     and table = '本地表'
     and partition = XXXX
    group by
        database,
        table" >> result.txt 
done 

2.使用awk切割文本,并汇总结果

未压缩大小 cat result.txt|awk '{sum+=$5} END {print "Sum未压缩大小 = ", sum}'
 已压缩大小 cat result.txt|awk '{sum+=$7} END {print "Sum 已压缩大小 = ", sum}'
 磁盘大小  cat result.txt|awk '{sum+=$3} END {print "Sum 磁盘大小 = ", sum}'
 总条数  cat result.txt|awk '{sum+=$10} END {print "Sum 总条数 = ", sum}'

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值