大数据(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`='库名';
列名数据类型说明
databaseString库名
nameString表名
engineString引擎名(不含参数)
is_temporaryUInt8是否是临时表
data_pathString数据在文件系统中的路径
metadata_pathString元数据在文件系统中的路径
metadata_modification_timeDateTime元数据的最新修改时间
dependencies_databaseArray(String)数据库依赖关系
dependencies_tableArray(String)表依赖关系(基于当前表的 物化视图 表)
create_table_queryString建表SQL
engine_fullString表引擎的参数
as_selectString视图的SELECT语句
partition_keyString分区键表达式
sorting_keyString排序键表达式
primary_keyString主键表达式
sampling_keyString采样键表达式
storage_policyString存储
total_rowsNullable(UInt64)总行数,如果无法快速确定表中的确切行数,就返回为NULL(包括底层Buffer表)
total_bytesNullable(UInt64)总字节数
如果无法快速确定存储表的确切字节数,就返回为NULL(包括任何底层存储)
如果表数据存在磁盘,就返回使用的磁盘空间(压缩后)
如果表数据存储在内存,就返回在内存中使用的近似字节数
lifetime_rowsNullable(UInt64)服务启动后插入的总行数(只针对Buffer表)
lifetime_bytesNullable(UInt64)服务启动后插入的总字节数(只针对Buffer表)
commentString表的注释
has_own_dataUInt8标志,表示表本身是否在磁盘上存储数据,或访问其他来源

列(system.columns)

SELECT `database` AS `库名`,`table` AS `表名`,`name` AS `列名`,`type` AS `数据类型`,`comment` AS `列注释`
FROM system.columns
WHERE `database`='库名';
列名数据类型说明
databaseString数据库名称
tableString表名
nameString列名
typeString列类型
positionUInt64列在表中的顺序位置,从1开始
default_kindString默认值的表达式类型(DEFAULT,MATERIALIZED,ALIAS),如果没有定义,则为空字符串
default_expressionString默认值的表达式,如果未定义则为空字符串
data_compressed_bytesUInt64压缩数据的大小,以字节为单位
data_uncompressed_bytesUInt64解压后的数据的大小,以字节为单位
marks_bytesUInt64标记的大小,以字节为单位
commentString列注释,如果没有定义,则为空字符串
is_in_partition_keyUInt8列是否在分区表达式中的标志
is_in_sorting_keyUInt8列是否在排序键表达式中的标志
is_in_primary_keyUInt8列是否在主键表达式中的标志
is_in_sampling_keyUInt8列是否在采样键表达式中的标志
compression_codecString压缩编码的名称
character_octet_lengthNullable(UInt64)二进制数据、字符数据或文本数据和图像的最大长度(以字节为单位)
只对FixedString数据类型有意义。否则,将返回NULL
numeric_precisionNullable(UInt64)近似数字型数据、精确数字型数据、整数型数据或货币数据的精度
对于整数类型是比特率(bitness),对于Decimal类型是十进制精度。否则,将返回NULL
numeric_precision_radixNullable(UInt64)数字系统的基数是近似数字型数据、精确数字型数据、整数型数据或货币数据的精度
对于整数类型是2,对于Decimal类型是10。否则,将返回NULL
numeric_scaleNullable(UInt64)近似数字型数据、精确数字型数据、整数型数据或货币数据的比例
只对Decimal类型有意义。否则,将返回NULL
datetime_precisionNullable(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 '%中文注释%')


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部