查看对象历史版本(DESC HISTORY)
DESC HISTORY
DESC HISTORY
命令用于查看表、动态表或物化视图的历史版本记录。通过历史记录,用户可以了解对象的变更过程,或结合 Time Travel 功能查询特定时间点的数据。
语法
DESC HISTORY [EXTENDED] [schema_name.]<object_name>;
参数说明
| 参数 | 说明 |
|---|
EXTENDED
EXTENDED | 可选。在 stats
stats 列中额外返回每个版本写入的分区(partitions
partitions 字段),适合排查某次写入或刷新具体改动了哪些分区。只对分区表有意义 |
schema_name
schema_name | 可选。指定 schema 名称 |
object_name
object_name | 表、动态表或物化视图的名称 |
使用示例
示例 1:查看普通表的历史记录
DESC HISTORY students;
+---------+-------------------------+------------+-------------+----------+-----------------+---------------------------+
| version | time | total_rows | total_bytes | user | operation | job_id |
+---------+-------------------------+------------+-------------+----------+-----------------+---------------------------+
| 2 | 2024-06-14 11:18:43.238 | 37 | 1387 | UAT_TEST | CREATE_TABLE_AS | 2024061403184277861pl5... |
+---------+-------------------------+------------+-------------+----------+-----------------+---------------------------+
示例 2:查看动态表的历史记录
DESC HISTORY public.event_gettime;
+---------+-------------------------+------------+-------------+-------+-----------+---------------------------+----------------------+-------+
| version | time | total_rows | total_bytes | user | operation | job_id | source_tables | stats |
+---------+-------------------------+------------+-------------+-------+-----------+---------------------------+----------------------+-------+
| 3 | 2024-01-31 17:49:28.814 | 5 | 7578 | | REFRESH | 202401310949284215k3... | [...] | NULL |
| 2 | 2024-01-31 17:48:11.862 | 4 | 3820 | | REFRESH | 2024013109481169177w... | [...] | NULL |
| 1 | 2024-01-31 17:48:11.656 | 0 | 0 | | CREATE | 2024013109481148777w... | [...] | NULL |
+---------+-------------------------+------------+-------------+-------+-----------+---------------------------+----------------------+-------+
动态表的历史记录额外包含
source_tables
source_tables
(源表信息)和
stats
stats
(刷新统计)字段。
示例 3:查看物化视图的历史记录
DESC HISTORY mv_inventory_basic;
+---------+-------------------------+------------+-------------+---------+-----------+---------------------------+----------------------+-------+
| version | time | total_rows | total_bytes | user | operation | job_id | source_tables | stats |
+---------+-------------------------+------------+-------------+---------+-----------+---------------------------+----------------------+-------+
| 2 | 2024-12-26 15:18:21.626 | 1 | 2915 | qiliang | CREATE | 202412261518212641gm... | [...] | NULL |
+---------+-------------------------+------------+-------------+---------+-----------+---------------------------+----------------------+-------+
示例 4:查看每个版本写入的分区
CREATE TABLE IF NOT EXISTS doc_hist_part (id INT, dt STRING) PARTITIONED BY (dt);
INSERT INTO doc_hist_part VALUES (1, '2024-01-01'), (2, '2024-01-02');
INSERT INTO doc_hist_part VALUES (3, '2024-01-01');
DESC HISTORY EXTENDED doc_hist_part;
| sequence | version | time | total_rows | total_bytes | user | operation | job_id | stats |
|---|
| 3 | 7732629774742169636 | 2026-10-26 17:58:13.075 | 3 | 6309 | user1 | INSERT_INTO | 20261026175812404... | {"rows_inserted":"1","rows_deleted":"0","partitions":"["dt=2024-01-01"]"} |
| 2 | 7252487219036879163 | 2026-10-26 17:58:12.201 | 2 | 4206 | user1 | INSERT_INTO | 20261026175808115... | {"rows_inserted":"2","rows_deleted":"0","partitions":"["dt=2024-01-01","dt=2024-01-02"]"} |
| 1 | -1 | 2026-10-26 17:58:07.605 | 0 | 0 | user1 | CREATE | 20261026175807168... | NULL |
第二次写入只涉及
dt=2024-01-01
dt=2024-01-01
一个分区。不加
EXTENDED
EXTENDED
时,
stats
stats
中只有
rows_inserted
rows_inserted
、
rows_deleted
rows_deleted
。
示例 5:结合 Time Travel 查询历史数据
-- 查看历史版本
DESC HISTORY event_gettime;
-- 查询指定时间点的数据
SELECT * FROM event_gettime TIMESTAMP AS OF '2024-01-31 17:48:11.862';
返回字段说明
| 字段 | 说明 |
|---|
version
version | 版本号,每次变更递增 |
time
time | 版本创建时间 |
total_rows
total_rows | 该版本下的总行数 |
total_bytes
total_bytes | 该版本下的总字节数 |
user
user | 操作者 |
operation
operation | 操作类型:CREATE
CREATE (创建)、REFRESH
REFRESH (刷新)、INSERT
INSERT (插入)、TRUNCATE
TRUNCATE (清空)等 |
job_id
job_id | 关联的作业 ID |
source_tables
source_tables | 源表信息(仅动态表和物化视图) |
stats
stats | 刷新统计信息(仅动态表) |
注意事项
- 可查看的历史版本数量受
data_retention_days
data_retention_days
保留周期限制(默认 1 天)
- 超出保留周期的历史版本将被物理删除,无法查询
- View(普通视图)不支持
DESC HISTORY
DESC HISTORY
相关文档