You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Databricks中是否可按行获取历史元数据?

在Databricks中获取行级历史元数据的方法

可以的,Databricks基于Delta Lake提供了行级版本历史查询能力,完全能实现你想要的效果。

前提条件

你的表必须是Delta Lake表,只有Delta表才支持版本控制。如果是普通表,先执行以下命令转换:

CONVERT TO DELTA your_table_name;

实现查询的方法

要获取每行的所有历史版本(包含版本号和时间戳),可以使用Delta Lake的table_changes函数,示例查询如下:

SELECT column1, column2, _commit_version AS VERSION_NUMBER, _commit_timestamp AS VERSION_TIMESTAMP
FROM table_changes('your_table_name', 0, CURRENT_VERSION())

参数说明

  • table_changes('表名', 起始版本, 结束版本):指定要查询的表和版本范围,0代表最早版本,CURRENT_VERSION()会自动获取表的最新版本。
  • _commit_version:Delta Lake内置的提交版本号,对应你要的VERSION_NUMBER。
  • _commit_timestamp:提交该版本的时间戳,对应VERSION_TIMESTAMP。

示例结果

按照你的需求,查询后会得到类似如下格式的结果:

col1col2VERSION_NUMBERVERSION_TIMESTAMP
Firstrow02023-11-26 08:00:00
Firstrow updated12023-11-27 08:00:00
Secondrow12023-11-27 08:00:00

额外说明

  • 如果只需要查询特定行的历史,直接在查询末尾加WHERE条件即可,比如WHERE column1 = 'First'。
  • Delta Lake默认保留7天的历史数据,如果需要更长时间的历史记录,可以调整表属性:
ALTER TABLE your_table_name SET TBLPROPERTIES (delta.logRetentionDuration = '30 days');

内容的提问来源于stack exchange,提问作者Bradford1138

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:48:28