SHOW DYNAMIC TABLE REFRESH HISTORY
功能概述
查看动态表的刷新执行历史,包含每次刷新的模式(增量/全量/跳过)、耗时、触发方式、行变更数和失败原因。是诊断刷新是否正常、是否退化为全量、是否积压的主要工具。
语法
:按任意返回字段过滤,例如WHERE <expr>WHERE name = 'my_dt' AND state = 'FAILED'
:限制返回条数,范围 1–10000,默认返回最近 100 条LIMIT <num>
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| string | 工作空间名称 |
| string | Schema 名称 |
| string | 动态表名称 |
| string | 本次刷新使用的计算集群 |
| timestamp | 刷新开始时间 |
| timestamp | 刷新结束时间 |
| object | 刷新耗时,格式为 , 字段值除以 1,000,000,000 得秒数 |
| string | 执行结果: / |
| string | 触发方式:(定时自动触发)/ (用户手动调用,含 Studio 调度触发) |
| string | 刷新模式,见下方说明 |
| string | 失败时的错误信息,成功时为 null |
| array | 本次增量计算的上游表列表, 时为空数组 |
| object | 行变更统计,仅 时有值,格式为 |
| string | 作业 ID,可在 Studio 作业监控中查看详情 |
refresh_mode 说明
| 值 | 含义 | stats |
|---|---|---|
| 上游无变更,本次刷新跳过,不执行计算 | null |
| 增量计算,只处理上游变更行 | |
| 全量重算,整张表重新计算 | null(或全量行数) |
使用示例
查看某张动态表的最近 10 次刷新:
筛选失败记录:
查看某个 Schema 下所有动态表的最近刷新(不加 WHERE 则返回当前 Schema 下全部):
诊断常见问题
刷新是否退化为全量?
看
refresh_mode:FULL 说明引擎判断增量代价过高,自动回退全量。持续全量说明 SQL 结构复杂度超出增量引擎的处理范围,需要检查查询。
刷新是否在积压?
用
start_time 和 end_time 算出 duration,与刷新间隔对比。如果单次刷新耗时接近或超过刷新间隔,说明任务在积压——上一次还没跑完,下一次已经触发。需要加大刷新间隔或升级集群规格。
上游源表变更是否被识别?
INCREMENTAL 时 source_tables 会列出被识别到变更的上游表。如果 source_tables 为空且结果是 NO_DATA,说明本次检测周期内上游没有新的变更。
判断
是否正常?NO_DATA
NO_DATA 是正常现象,代表上游在这个调度周期内没有变更,引擎跳过了计算。不是失败,也不是问题。
相关文档
- 查看动态表刷新模式 — 与本命令的关系(本文为完整参考,旧文档为简介)
- ALTER DYNAMIC TABLE — 手动触发刷新(
)ALTER DYNAMIC TABLE dt REFRESH - 动态表(Dynamic Table) — 刷新机制与使用限制
联系我们
