架构实施

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

注意

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

插入操作的架构强制

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

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

注意

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

MERGE 操作期间的架构验证

MERGE 操作中插入或更新数据时,Azure Databricks 会强制实施以下规则:

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

修改表架构

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

架构演变对于 MERGE 操作有特殊的语义。 请参阅 Delta Lake 合并的自动架构演变