スキーマ強制

Databricks は書き込み時にスキーマを適用することでデータの品質を検証します。

注:

この記事では、Databricks によってサポートされる 上のテーブルの デフォルトDelta Lake 動作について説明します。訪問者強制は、外部データによってサポートされるテーブルには適用されません。

挿入操作のスキーマ強制

Databricks は、テーブルにデータを挿入するときに次のルールを適用します。

  • 挿入されるすべての列は、ターゲット表に存在している必要があります。

  • すべての列データ・タイプは、ターゲット表の列データ・タイプと一致する必要があります。

注:

Databricks は、ターゲット テーブルと一致するように列のデータ型を安全にキャストしようとします。

MERGE操作中のスキーマ検証

Databricks は、 MERGE操作の一環としてデータを挿入または更新するときに、次のルールを適用します。

  • ソース ステートメントのデータ型がターゲットカラムと一致しない場合、 MERGEターゲット テーブルと一致するように列のデータ型を安全にキャストしようとします。

  • UPDATEまたはINSERTアクションのターゲットである列は、ターゲット表に存在している必要があります。

  • INSERT * または UPDATE SET * 構文を使用する場合:

    • ターゲット テーブルに存在しないソース データセットの列は無視されます。

    • ソース データセットには、ターゲット テーブルに存在するすべての列が含まれている必要があります。

テーブルスキーマを変更する

明示的なALTER TABLEステートメントまたは自動スキーマ進化のいずれかを使用して、テーブルのスキーマを更新できます。 「Delta Lake テーブル スキーマの更新」を参照してください。

訪問者進化には、 MERGE操作に対する特別なセマンティクスがあります。 Delta Lake マージの自動スキーマ進化を参照してください。