強制執行結構描述
Azure Databricks 藉由強制執行寫入架構來驗證數據品質。
注意
本文說明由 Delta Lake 支援的 Azure Databricks 上數據表的預設行為。 架構強制執行不適用於外部數據所支持的數據表。
插入作業的架構強制執行
將數據插入資料表時,Azure Databricks 會強制執行下列規則:
- 所有插入的數據行都必須存在於目標數據表中。
- 所有數據行數據類型都必須符合目標數據表中的數據行數據類型。
注意
Azure Databricks 會嘗試安全地轉換數據行數據類型,以符合目標數據表。
作業期間的 MERGE
架構驗證
Azure Databricks 在作業中插入或更新數據 MERGE
時,會強制執行下列規則:
- 如果 source 語句中的數據類型不符合目標數據行,
MERGE
則嘗試安全地轉換數據行數據類型以符合目標數據表。 - 或
INSERT
動作目標UPDATE
的數據行必須存在於目標數據表中。 - 使用
INSERT *
或UPDATE SET *
語法時:- 系統會忽略源數據集中不存在於目標數據表中的數據行。
- 源數據集必須具有目標數據表中的所有數據行。
修改數據表架構
您可以使用明確 ALTER TABLE
語句或自動架構演進來更新數據表的架構。 請參閱 更新 Delta Lake 數據表架構。
架構演進具有作業的特殊語意 MERGE
。 請參閱 Delta Lake merge 的自動架構演進。