スキーマの適用
Azure Databricks は、書き込み時にスキーマを適用することでデータ品質を検証します。
手記
この記事では、Delta Lake によってサポートされる Azure Databricks 上のテーブルの既定の動作について説明します。 スキーマの適用は、外部データによってサポートされるテーブルには適用されません。
挿入操作に対するスキーマの適用
Azure Databricks では、テーブルにデータを挿入するときに、次の規則が適用されます。
- 挿入されたすべての列がターゲット テーブルに存在する必要があります。
- すべての列データ型は、ターゲット テーブルの列データ型と一致する必要があります。
手記
Azure Databricks は、ターゲット テーブルに一致するように列データ型を安全にキャストしようとします。
MERGE
操作中のスキーマ検証
Azure Databricks では、MERGE
操作の一部としてデータを挿入または更新するときに、次の規則が適用されます。
- ソース ステートメントのデータ型がターゲット列と一致しない場合、
MERGE
はターゲット テーブルに一致するように列データ型を安全にキャストしようとします。 UPDATE
またはINSERT
アクションのターゲットである列は、ターゲット テーブルに存在する必要があります。INSERT *
またはUPDATE SET *
構文を使用する場合:- ターゲット テーブルに存在しないソース データセット内の列は無視されます。
- ソース データセットには、ターゲット テーブルに存在するすべての列が必要です。
テーブル スキーマを変更する
明示的な ALTER TABLE
ステートメントまたはスキーマの自動進化を使用して、テーブルのスキーマを更新できます。 Delta Lake テーブル スキーマの更新
スキーマの進化には、MERGE
操作のための特別なセマンティクスがあります。 「Delta Lake マージの自動スキーマの進化」を参照してください。