大数据ClickHouse元数据

Posted 小基基o_O

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据ClickHouse元数据相关的知识,希望对你有一定的参考价值。

文章目录

ClickHouse常用系统表👇

表(system.tables)

SELECT `database`
      ,`name`
      ,`comment`
      ,`engine`
      ,`sorting_key`
      ,`partition_key`
      ,`total_rows`
      ,`total_bytes`
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`,`table`,`name`,`type`,`comment`
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 '%中文注释%')

以上是关于大数据ClickHouse元数据的主要内容,如果未能解决你的问题,请参考以下文章

大数据ClickHouse进阶(十七):数据字典查询和删除

大数据(5p)ClickHouse异于平常SQL的语法

浮点型是啥意思

浮点类型是如何存储的

吴裕雄--天生自然数据结构:十大经典排序算法——基数排序

第二十一章 Caché 算法与数据结构 基数排序