大数据(5q)ClickHouse元数据
文章目录
- 表(system.tables)
- 列(system.columns)
- 查询表和字段注释
ClickHouse常用系统表👇
表(system.tables)
SELECT `name` AS `表名`,`comment` AS `表注释`,`engine` AS `表引擎`,`metadata_modification_time` AS `表修改时间`,`sorting_key` AS `排序键`,`partition_key` AS `分区键`,`total_rows` AS `总行数`,`total_bytes` AS `总大小`
FROM system.tables
WHERE `database`='库名';
| 列名 | 数据类型 | 说明 |
|---|---|---|
| database | String | 库名 |
| name | String | 表名 |
| engine | String | 引擎名(不含参数) |
| is_temporary | UInt8 | 是否是临时表 |
| data_path | String | 数据在文件系统中的路径 |
| metadata_path | String | 元数据在文件系统中的路径 |
| metadata_modification_time | DateTime | 元数据的最新修改时间 |
| dependencies_database | Array(String) | 数据库依赖关系 |
| dependencies_table | Array(String) | 表依赖关系(基于当前表的 物化视图 表) |
| create_table_query | String | 建表SQL |
| engine_full | String | 表引擎的参数 |
| as_select | String | 视图的SELECT语句 |
| partition_key | String | 分区键表达式 |
| sorting_key | String | 排序键表达式 |
| primary_key | String | 主键表达式 |
| sampling_key | String | 采样键表达式 |
| storage_policy | String | 存储 |
| total_rows | Nullable(UInt64) | 总行数,如果无法快速确定表中的确切行数,就返回为NULL(包括底层Buffer表) |
| total_bytes | Nullable(UInt64) | 总字节数 如果无法快速确定存储表的确切字节数,就返回为 NULL(不包括任何底层存储)如果表数据存在磁盘,就返回使用的磁盘空间(压缩后) 如果表数据存储在内存,就返回在内存中使用的近似字节数 |
| lifetime_rows | Nullable(UInt64) | 服务启动后插入的总行数(只针对Buffer表) |
| lifetime_bytes | Nullable(UInt64) | 服务启动后插入的总字节数(只针对Buffer表) |
| comment | String | 表的注释 |
| has_own_data | UInt8 | 标志,表示表本身是否在磁盘上存储数据,或访问其他来源 |
列(system.columns)
SELECT `database` AS `库名`,`table` AS `表名`,`name` AS `列名`,`type` AS `数据类型`,`comment` AS `列注释`
FROM system.columns
WHERE `database`='库名';
| 列名 | 数据类型 | 说明 |
|---|---|---|
| database | String | 数据库名称 |
| table | String | 表名 |
| name | String | 列名 |
| type | String | 列类型 |
| position | UInt64 | 列在表中的顺序位置,从1开始 |
| default_kind | String | 默认值的表达式类型(DEFAULT,MATERIALIZED,ALIAS),如果没有定义,则为空字符串 |
| default_expression | String | 默认值的表达式,如果未定义则为空字符串 |
| data_compressed_bytes | UInt64 | 压缩数据的大小,以字节为单位 |
| data_uncompressed_bytes | UInt64 | 解压后的数据的大小,以字节为单位 |
| marks_bytes | UInt64 | 标记的大小,以字节为单位 |
| comment | String | 列注释,如果没有定义,则为空字符串 |
| is_in_partition_key | UInt8 | 列是否在分区表达式中的标志 |
| is_in_sorting_key | UInt8 | 列是否在排序键表达式中的标志 |
| is_in_primary_key | UInt8 | 列是否在主键表达式中的标志 |
| is_in_sampling_key | UInt8 | 列是否在采样键表达式中的标志 |
| compression_codec | String | 压缩编码的名称 |
| character_octet_length | Nullable(UInt64) | 二进制数据、字符数据或文本数据和图像的最大长度(以字节为单位) 只对 FixedString数据类型有意义。否则,将返回NULL值 |
| numeric_precision | Nullable(UInt64) | 近似数字型数据、精确数字型数据、整数型数据或货币数据的精度 对于整数类型是比特率(bitness),对于 Decimal类型是十进制精度。否则,将返回NULL值 |
| numeric_precision_radix | Nullable(UInt64) | 数字系统的基数是近似数字型数据、精确数字型数据、整数型数据或货币数据的精度 对于整数类型是2,对于 Decimal类型是10。否则,将返回NULL值 |
| numeric_scale | Nullable(UInt64) | 近似数字型数据、精确数字型数据、整数型数据或货币数据的比例 只对 Decimal类型有意义。否则,将返回NULL值 |
| datetime_precision | Nullable(UInt64) | DateTime64数据类型的小数精度。对于其他数据类型,将返回NULL值 |
查询表和字段注释
SELECT c.`database` AS db_name,c.`table` AS tb_name,t.`comment` AS tb_comment,c.`name` AS col_name,c.`comment` AS col_comment
FROM system.columns c
LEFT JOIN system.tables t ON c.`table`=t.`name`
WHERE `database`='库名'AND (t.`comment` LIKE '%中文注释%' OR c.`comment` LIKE '%中文注释%')
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
