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