文章目录

  • 1.概述

本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载。

1.概述

转载:【ClickHouse】查看数据库容量和表大小的方法(system.parts各种操作方法)

clickhouse有system.parts系统表记录表相关元数据,可以通过该表对clickhouse上所有表进行查询表大小、行数等操作。

1.查看数据库容量

selectsum(rows) as row,--总行数formatReadableSize(sum(data_uncompressed_bytes)) as ysq,--原始大小formatReadableSize(sum(data_compressed_bytes)) as ysh,--压缩大小round(sum(data_compressed_bytes) / sum(data_uncompressed_bytes) * 100, 0) ys_rate--压缩率
from system.parts

结果:

2.查看表的各个指标

select database,table,sum(bytes) as size,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,max_date - min_date as days,size / (max_date - min_date) as avgDaySizefrom system.partswhere activeand database = 'database'and table = 'tablename'group by database, table

结果为:这种结果显示的大小size是字节,我们如何转换为常见的MB和GB呢?

selectdatabase,table,formatReadableSize(size) as size,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,days,formatReadableSize(avgDaySize) as avgDaySize
from
(selectdatabase,table,sum(bytes) as size,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,max_date - min_date as days,size / (max_date - min_date) as avgDaySizefrom system.partswhere active and database = 'database'and table = 'tablename'group bydatabase,table
)

结果:这就转换为常见的单位了:

上面过程可以看到,最终都用表进行了聚合,为什么会这样呢?

以一个简单的例子来看,我们最常见的是查看表分区,下面来看下不进行聚合的结果:

select partitionfrom system.partswhere activeand database = 'database'and table = 'tablename'

结果为:这是因为在CH中,和我们hive表不一样,hive表一个分区只会有一条记录,但CH不是,每个分区分为了不同的marks

因此,我们要实现和hive一样查分区的功能时,要对表进行聚合查看。

3.跟踪分区

SELECT database,table,count() AS parts,uniq(partition) AS partitions,sum(marks) AS marks,sum(rows) AS rows,formatReadableSize(sum(data_compressed_bytes)) AS compressed,formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed,round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100.,2) AS percentageFROM system.partsWHERE activeand database = 'database'and table = 'tablename'GROUP BY database, table

结果为:

4.检查数据大小

SELECT table,formatReadableSize(sum(data_compressed_bytes)) AS tc,formatReadableSize(sum(data_uncompressed_bytes)) AS tu,round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100,2) AS ratioFROM system.columnsWHERE database = 'database'and table = 'table'GROUP BY tableORDER BY sum(data_compressed_bytes) ASC

结果:

5.查看表中列的数据大小

SELECT column,any(type),sum(column_data_compressed_bytes) AS compressed,sum(column_data_uncompressed_bytes) AS uncompressed,sum(rows)FROM system.parts_columnsWHERE database = 'database'and table = 'table'AND activeGROUP BY columnORDER BY column ASC

结果:

以上就是对表和库的一些基本操作了。

【ClickHouse】查看数据库容量和表大小的方法(system.parts各种操作方法)相关推荐

  1. oracle误删数据和误删表的恢复方法

    之前在操作数据的时候,我在思考如何编写SQL,但是不小心按下了F8执行了drop语句,不小心删除了表,不过之后被我恢复了,但是之后我又不小心删错了表数据,虽然很快恢复了,但是我也找了几篇博客对比,虽然 ...

  2. windows查看某目录所有子目录大小的方法

    有以下两个方法查看所有子目录大小,还可以手动清理目录.个人觉得第二种更方面: 1.使用命令行查看:先切到要显示的目录下,输入以下命令即可:ls -r 2.下载treesize free工具https: ...

  3. sap系统前台数据与后台表之间_数据治理之SAP软件非生产数据清除方法

    作者:JongWill声明:本文章仅用于SAP软件的应用与学习,不代表SAP公司.(注:文中所示截图来源SAP软件,相应著作权归SAP所有.) 我们知道SAP系统软件往往在使用多年后,底层数据库中的数 ...

  4. access设计视图打不开_5、使用数据视图创建表(ACCESS图解操作系列)

    操作要求: 在D:Access目录下有一ACCESS数据库"教学管理.accdb". 1.利用表的"数据视图"创建如右图的"学生-数据视图" ...

  5. 查看mysql整个库的数据大小_查看mysql数据库容量大小

    第一种情况:查询所有数据库的总大小,方法如下: mysql> use information_schema; mysql> select concat(round(sum(DATA_LEN ...

  6. 查看mysql数据库容量大小

    查看mysql数据库容量大小 第一种情况:查询所有数据库的总大小,方法如下: mysql> use information_schema; mysql> select concat(rou ...

  7. mysql 查看数据表大小_关于MySQL 查询表数据大小的总结

    一:关于MySQL表数据大小 我们知道mysql存储数据文件一般使用表空间存储 当mysql使用innodb存储引擎的时候,mysql使用表存储数据分为共享表空间和独享表空间两种方式 ·共享表空间:I ...

  8. MYSQL查看某个数据库下所有表索引的数据量及占用空间大小

    查询某个库下所有表&索引的数据量及占用空间大小 SELECTtable_schema AS '数据库',table_name AS '表名',table_rows AS '记录数',TRUNC ...

  9. mysql tables rows_MySQL数据库查看数据表占用空间大小和记录数

    MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHE ...

最新文章

  1. python程序员月薪多少-Python程序员就业行情以及前景分析
  2. day20 函数闭包与装饰器
  3. python 多分类情感_文本情感分类(一):传统模型
  4. php redis mset,MSET命令_视频讲解_用法示例-redis编程词典-php中文网
  5. 前端学习(1031):jquery多库共存
  6. FTP多用户权限 linux环境 一站式解决方案(基础篇)
  7. 自动驾驶芯片_盘点全球自动驾驶芯片“战场”参与者
  8. php会话控制区别和流程,PHP会话控制:cookie和session区别与用法深入理解_后端开发...
  9. CSS学习笔记(二)选择器
  10. 关于ajax表单提交.serialize()
  11. 【光学】基于matlab色散曲线拟合【含Matlab源码 2053期】
  12. Mac数据库可视化工具,workbench完全替代Navicat和PowerDesigner,Oracle官方免费可视化工具workbench!!
  13. MATLAB中log算子处理图像
  14. 世界各国(地区)货币名称及其进位制
  15. 制作u盘winpe启动盘_u盘启动盘制作工具 纯净+好用,原来不止是 微pe
  16. C++异常处理throw
  17. R语言基础-Rstudio基本使用
  18. 真香!百度网盘超级会员等级制度,等级越高,特权越多!容量,解压,转存上限,回收站保存时间,全都有!
  19. 学校运动会广播稿计算机,学校运动会广播稿
  20. 前端上传大文件怎么处理

热门文章

  1. 韩国或将禁止苹果和谷歌向开发者抽取佣金
  2. 快手上的cosplay大师有多野?
  3. 月费10元起!中国移动推年轻人的第一张5G元素电话卡
  4. 大家可以放心了!Redmi K20将配备双频GPS
  5. 变相裁员?人人车发奇葩通知:未离职员工每天打卡三次 只抄规则
  6. 三星S10+真机上手视频流出:屏下指纹让强迫症不忍直视
  7. 想成为嵌入式程序员应知道的0x10个基本问题[转]
  8. shell编程追加2
  9. 年薪20万软件测试工程师都具备的能力,你有吗?
  10. python的编码类型转换