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

Azure Delta表注释缺失:如何提取表注释?

提取Azure Databricks中Delta表的表注释问题解决

问题场景

你创建了带表注释的外部Delta表,SQL语句如下:

DROP TABLE IF EXISTS dbtest.test_antony;
CREATE TABLE IF NOT EXISTS dbtest.test_antony(
  db_name STRING COMMENT 'EN: Database Name ',
  table_name STRING COMMENT 'EN: Table Name '
)
USING delta
LOCATION 'dbfs:/mnt/user/antony/test_antony'
COMMENT 'my test table'

但使用describe系列语句、SHOW CREATE TABLE都无法找到表注释my test table,集群版本10.4和11.2均存在此问题。

原因分析

当使用LOCATION指定外部路径创建Delta表时,表级注释不会写入Hive元数据的常规字段,而是存储在Delta Lake的事务日志或表属性中,导致常规查询语句无法直接获取。

解决方法

方法1:使用SHOW TBLPROPERTIES查询

直接查询表的comment属性:

SHOW TBLPROPERTIES dbtest.test_antony ('comment');

或者查看所有表属性(包含注释):

SHOW TBLPROPERTIES dbtest.test_antony;

执行后会返回comment对应的my test table值。

方法2:通过Delta Lake API读取(Python)

利用Delta Lake的官方API直接读取表的元数据:

from delta.tables import DeltaTable

# 从路径加载Delta表
delta_table = DeltaTable.forPath(spark, "dbfs:/mnt/user/antony/test_antony")
# 获取表注释
table_comment = delta_table.detail().select("description").collect()[0][0]
print(table_comment)

运行这段代码会输出表的注释内容。

补充说明

如果创建的是内部Delta表(不指定LOCATION),使用DESCRIBE TABLE EXTENDED dbtest.test_antony即可在结果中找到表注释,但外部表必须使用上述两种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:15:39