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