功能

SHOW PARTITIONS
SHOW PARTITIONS
是一个在 SQL 中用于显示指定表的分区信息的命令。分区表是一种在数据仓库中常见的数据组织方式,它通过将数据分散存储在不同的分区中来优化查询性能和管理效率。使用
SHOW PARTITIONS
SHOW PARTITIONS
可以快速查看表的分区结构和每个分区的详细信息。

使用限制

  • 目前使用 实时sdk 写入的分区无法立即查看,需要等待实时写入的数据提交后才能查看分区大小。

语法

SHOW PARTITIONS [EXTENDED] table_name [ PARTITION ( partition_col_name = partition_col_val [ , ... ] ) ] [WHERE <expr>]

参数说明

  • EXTENDED: 添加该关键字可以查看分区的文件数量、分区大小、分区条数和修改时间。
  • table_name: 需要查询分区信息的表名,支持表、动态表、物化视图。
  • PARTITION ( partition_col_name = partition_col_val [ , ... ] )**: 可选参数,用于指定要查看的分区的特定条件。通过指定分区键的值,可以过滤出特定的分区信息。
  • WHERE <expr>: 可选参数,可以根据显示的字段进行过滤。支持根据 total_rows、bytes、total_files、created_time 进行过滤。expr 支持 =、!=、>、< 、>= 、<=、 is null 、is not null、 between ...and、or、not 、<> 、IN。

使用场景

  • 查看分区结构: 了解表的分区策略和当前的分区情况,查看分区大小和修改时间。
  • 数据管理: 在进行数据导入、导出或维护时,了解分区信息有助于更高效地管理数据。

示例

查看所有分区

DROP TABLE IF EXISTS pt_table; CREATE TABLE pt_table (order_id INT, customer_id INT, amount DOUBLE) PARTITIONED BY (pt1 string,pt2 string); INSERT INTO pt_table VALUES (1, 101, 100.0, '2023','01'), (2, 102, 200.0, '2023','02'), (3, 103, 300.0, '2023','03'), (4, 104, 400.0, '2023','04'); SHOW PARTITIONS pt_table; +-----------------+ | partitions | +-----------------+ | pt1=2023/pt2=01 | | pt1=2023/pt2=02 | | pt1=2023/pt2=03 | | pt1=2023/pt2=04 | +-----------------+ SHOW PARTITIONS EXTENDED pt_table; +-----------------+------------+-------+-------------+------------------------+------------------------+------------------------+----------------------+ \|   partitions    | total\_rows | bytes | total\_files |      created\_time      |   last\_modified\_time   |     last\_data\_time     | last\_compaction\_time | +-----------------+------------+-------+-------------+------------------------+------------------------+------------------------+----------------------+ \| pt1=2023/pt2=01 | 1          | 3205  | 1           | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 |                      | \| pt1=2023/pt2=02 | 1          | 3206  | 1           | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 |                      | \| pt1=2023/pt2=03 | 1          | 3206  | 1           | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 |                      | \| pt1=2023/pt2=04 | 1          | 3205  | 1           | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 | 2026-02-10 15:49:01.16 |                      | +-----------------+------------+-------+-------------+------------------------+------------------------+------------------------+----------------------+

上述命令将返回

pt_table
pt_table
表的所有分区信息。

查看特定分区

SHOW PARTITIONS pt_table PARTITION (pt1 = '2023'); +-----------------+ | partitions | +-----------------+ | pt1=2023/pt2=01 | | pt1=2023/pt2=02 | | pt1=2023/pt2=03 | | pt1=2023/pt2=04 | +-----------------+ SHOW PARTITIONS pt_table PARTITION (pt1 = '2023',pt2='01'); +-----------------+ | partitions | +-----------------+ | pt1=2023/pt2=01 | +-----------------+

使用 WHERE 根据显示的字段过滤

-- 过滤条数大于 1 的分区 SHOW PARTITIONS EXTENDED pt_table WHERE total_rows>1; +-----------------+------------+-------+-------------+-------------------------+ | partitions | total_rows | bytes | total_files | created_time | +-----------------+------------+-------+-------------+-------------------------+ | pt1=2023/pt2=04 | 2 | 3119 | 1 | 2024-12-20 14:25:34.99 | +-----------------+------------+-------+-------------+-------------------------+

查看分区降序显示

select * from (show partitions extended pt_table) t order by partitions desc limit 20; +-----------------+------------+-------+-------------+-------------------------+-------------------------+-------------------------+----------------------+ \|   partitions    | total\_rows | bytes | total\_files |      created\_time       |   last\_modified\_time    |     last\_data\_time      | last\_compaction\_time | +-----------------+------------+-------+-------------+-------------------------+-------------------------+-------------------------+----------------------+ \| pt1=2023/pt2=04 | 1          | 3205  | 1           | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 |                      | \| pt1=2023/pt2=03 | 1          | 3206  | 1           | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 |                      | \| pt1=2023/pt2=02 | 1          | 3206  | 1           | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 |                      | \| pt1=2023/pt2=01 | 1          | 3205  | 1           | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 | 2026-02-10 13:39:27.376 |                      | +-----------------+------------+-------+-------------+-------------------------+-------------------------+-------------------------+----------------------+

联系我们
预约咨询
微信咨询
电话咨询