架构实施

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

注意

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

对插入操作实施模式强制

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

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

注意

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

MERGE操作期间的架构验证

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

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

修改表架构

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

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