架构实施
Azure Databricks 通过在写入时强制实施架构来验证数据质量。
注意
本文介绍由 Delta Lake 支持的 Azure Databricks 上的表的默认行为。 架构强制不适用于外部数据支持的表。
插入操作的架构强制
将数据插入表中时,Azure Databricks 会强制实施以下规则:
- 所有插入的列都必须存在于目标表中。
- 所有列数据类型必须与目标表中的列数据类型匹配。
注意
Azure Databricks 尝试安全地强制转换列数据类型以匹配目标表。
MERGE
操作期间的架构验证
在 MERGE
操作中插入或更新数据时,Azure Databricks 会强制实施以下规则:
- 如果源语句中的数据类型与目标列不匹配,
MERGE
会尝试安全地强制转换列数据类型以匹配目标表。 - 作为
UPDATE
或INSERT
操作目标的列必须存在于目标表中。 - 使用
INSERT *
或UPDATE SET *
语法时:- 将忽略源数据集中在目标表中不存在的列。
- 源数据集必须包含目标表中存在的所有列。
修改表架构
可以使用显式 ALTER TABLE
语句或自动架构演变来更新表的架构。 请参阅更新 Delta Lake 表架构。
架构演变对于 MERGE
操作有特殊的语义。 请参阅 Delta Lake 合并的自动架构演变。