架构实施

Azure Databricks通过强制实施写入架构来验证数据质量。

注意

本文介绍由 Delta Lake 支持的 Azure Databricks 上的表的默认行为。 架构约束不适用于由外部数据支持的表。

插入操作的模式强制

Azure Databricks将数据插入表中时强制实施以下规则:

  • 所有插入的列都必须存在于目标表中。
  • 所有列数据类型必须与目标表中的列数据类型匹配。

注意

Azure Databricks尝试安全转换列数据类型以匹配目标表。

MERGE 操作期间的架构验证

Azure Databricks在插入或更新数据作为 MERGE 操作的一部分时强制实施以下规则:

  • 如果源语句中的数据类型与目标列不匹配,MERGE 会尝试安全地强制转换列数据类型以匹配目标表。
  • 作为 UPDATEINSERT 操作目标的列必须存在于目标表中。
  • 使用 INSERT *UPDATE SET * 语法时:
    • 源数据集中在目标表内不存在的列将被忽略。
    • 源数据集必须包含目标表中存在的所有列。

修改表架构

可以使用显式 ALTER TABLE 语句或自动架构演变来更新表的架构。 请参阅 “更新表架构”。

架构演变对于 INSERTMERGE 操作具有特殊的语义。 请参阅启用架构演变