Schema 强制措施
Azure Databricks 通过在写入时强制执行 schema 来验证数据质量。
注意
本文介绍 Azure Databricks 上 tables 的默认行为,这些行为由 Delta Lake 提供支持。 Schema 强制措施不适用于由外部数据支持的 tables。
insert 操作的 Schema 强制措施
在将数据插入 table时,Azure Databricks 强制实施以下规则:
- 所有插入 columns 都必须存在于目标 table 中。
- 所有 column 数据类型必须与目标 table中的 column 数据类型匹配。
备注
Azure Databricks 尝试安全地强制转换 column 数据类型以匹配目标 table。
在 MERGE
操作过程中进行 Schema 验证
Azure Databricks 在插入或更新数据作为 MERGE
操作的一部分时强制执行以下规则:
- 如果源语句中的数据类型与目标 column不匹配,
MERGE
尝试安全地强制转换 column 数据类型以匹配目标 table。 - 作为
UPDATE
或INSERT
操作目标的 columns 必须存在于目标 table中。 - 使用
INSERT *
或UPDATE SET *
语法时:- 目标 table 中不存在的源数据集中的 Columns 将被忽略。
- 源数据集必须包含目标 table中存在的所有 columns。
修改 tableschema
可以使用显式 ALTER TABLE
语句或自动 schema 演变来更新update table 的 schema。 请参阅 Update Delta Lake tableschema。
Schema 演变对于 MERGE
操作有特殊的语义。 请参阅 Delta Lake 合并的自动 schema 演变。