如何查询clickhouse分区信息,如分区是et,at,查询后的信息大致是这种et=20221212/at=2022121210分区字段名加上分区信息。

  通过这个SELECT partitionFROM system. parts WHERE (database IN ('default’)) AND ( table IN (test_sjgc_part_I')) ORDER BY partition ASC命令可以查询clickhouse的分区信息
    clickhouse如何查询到的分区数据类型类似于hive的show partitions tablename 命令返回的信息。返回带有分区字段的分区数据。

试一试这个:

SELECT distinct database, table, partition, name FROM system.parts 
WHERE database = 'default' AND table = 'test_sjgc_part_I' 
ORDER BY database, table, partition, name ASC


在ClickHouse中,可以通过以下SQL语句查询分区信息:
sql
SELECT * FROM system.parts
WHERE table = 'table_name'
AND database = 'database_name'
这将返回表的所有分区信息,包括:

  • partition: 分区名称,格式为"{partition_expr_name}={partition_expr_value}"
  • name: 分区表达式名称,如et、at等
  • value: 分区表达式的值,如20221212
  • count: 分区中的行数
  • marks: 分区中的标记(标记分区概念,忽略)
  • files: 分区文件数量
  • min_block_number: 最小数据块号
  • max_block_number: 最大数据块号
  • level: 分区层级(仅适用于分区元素的嵌套)
    所以,如果et和at are 是表的两个分区表达式,查询结果可能如下:
    partition | name | value | count
    et=20221212 | et | 20221212 | 100
    at=2022121210 | at | 2022121210 | 50
    这表示:
  • et分区表达式的值是20221212,该分区包含100行数据
  • at分区表达式的值是2022121210,该分区包含50行数据
    如果分区是多级分区,查询结果会显示分区的层级关系。
    除此之外,ClickHouse还提供一些其他分区相关的系统表,比如:
  • system.parts_columns - 显示分区键的列信息
  • system.detached_parts - 显示已分离的分区信息(用于分区裁剪)
  • 等等
    所以通过这些系统表,可以比较全面地查询ClickHouse的分区信息,包括分区表达式、分区值、分区数据量等信息。