共用方式為


強制執行 Schema

Azure Databricks 藉由在寫入時強制執行 schema 來驗證數據品質。

注意

本文說明 Azure Databricks 上 tables 的預設行為,其是由 Delta Lake 支援的。 Schema 執行不適用於有外部資料支援的 tables。

Schema 的強制執行於 insert 作業

將數據插入 table時,Azure Databricks 會強制執行下列規則:

  • 所有插入 columns 都必須存在於目標 table中。
  • 所有 column 數據類型都必須符合目標 table中的 column 數據類型。

注意

Azure Databricks 會嘗試安全地轉換 column 資料類型,以符合目標 table。

在 Schema 驗證期間進行 MERGE 作業

Azure Databricks 會在插入或更新數據作為 MERGE 作業的一部分時,強制執行下列規則:

  • 如果 source 語句中的數據類型不符合目標 column,MERGE 會嘗試安全地轉換 column 資料類型,以符合目標 table。
  • 在執行 UPDATEINSERT 動作時,目標 columns 必須存在於目標 table中。
  • 使用 INSERT *UPDATE SET * 語法時:
    • 在來源數據集中不存在於目標 table 的 Columns 會被忽略。
    • 來源數據集必須具有目標 table中的所有 columns。

修改 tableschema

您可以使用明確的 ALTER TABLE 語句或自動演進的 schema 來updatetable 的 schema。 請參閱 Update Delta Lake tableschema

Schema 演進具有 MERGE 作業的特殊語意。 請參閱 Delta Lake merge的自動 schema 演進。