次の方法で共有


スキーマの適用

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 マージの自動スキーマの進化」を参照してください。