使用自定义元数据扩充表

Databricks 建议始终为表和表中的列提供注释。 可以使用 AI 生成这些注释。

Unity Catalog 还提供了标记数据的功能。 请参阅“将标记应用于 Unity Catalog 安全对象”。

记录在事务日志的某个字段中对表单独提交的日志消息。

设置用户定义的提交元数据

使用 DataFrameWriter 选项 userMetadata将用户定义的字符串指定为提交中的元数据。 可以将此选项用于任何写入模式,包括 appendoverwrite。 此用户定义的元数据在 DESCRIBE HISTORY 操作中可读。 有关详细信息,请参阅 表历史记录的处理

SQL

-- For Delta tables
SET spark.databricks.delta.commitInfo.userMetadata=overwrite-comment
INSERT OVERWRITE target_table SELECT * FROM data_source

-- For Iceberg tables
SET spark.databricks.iceberg.commitInfo.userMetadata=overwrite-comment
INSERT OVERWRITE target_table SELECT * FROM data_source

Python

# userMetadata works with any write mode, including overwrite and append
df.write \
  .mode("overwrite") \
  .option("userMetadata", "overwrite-comment") \
  .saveAsTable("target_table")

df.write \
  .mode("append") \
  .option("userMetadata", "append-comment") \
  .saveAsTable("target_table")

Scala

// userMetadata works with any write mode, including overwrite and append
df.write
  .mode("overwrite")
  .option("userMetadata", "overwrite-comment")
  .saveAsTable("target_table")

df.write
  .mode("append")
  .option("userMetadata", "append-comment")
  .saveAsTable("target_table")

有关计算类型的说明

在经典计算中,还可以使用 SparkSession 配置密钥 spark.databricks.delta.commitInfo.userMetadata (Delta)或 spark.databricks.iceberg.commitInfo.userMetadata (Iceberg)指定用户定义的提交元数据。 如果同时指定了 DataFrameWriter 选项 userMetadata 和 SparkSession 配置,则 DataFrameWriter 选项优先。

在无服务器计算中,直接使用 DataFrameWriter 选项 userMetadata 。 无服务器计算不支持用于提交元数据的 SparkSession 配置密钥。