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。
  • 作为 UPDATEINSERT 操作目标的 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 演变