次の方法で共有


スキーマの適用

Azure Databricks は、書き込み時にスキーマを適用してデータの品質を検証します。

Note

この記事では、Delta Lake によってサポートされる、Azure Databricks でのテーブルの既定の動作について説明します。 スキーマの適用は、外部データに基づくテーブルには適用されません。

挿入操作に対するスキーマの適用

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

  • 挿入されるすべての列が、ターゲット テーブルに存在している必要があります。
  • すべての列のデータ型が、ターゲット テーブルの列のデータ型と一致している必要があります。

Note

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

MERGE 操作の間のスキーマの検証

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

  • ソース ステートメントのデータ型がターゲット列と一致しない場合、MERGE はターゲット テーブルと一致するように、列のデータ型の安全なキャストを試みます。
  • UPDATE または INSERT アクションのターゲットである列が、ターゲット テーブルに存在している必要があります。
  • INSERT * または UPDATE SET * 構文を使うとき:
    • ターゲット テーブルに存在しないソース データセット内の列は無視されます。
    • ソース データセットには、ターゲット テーブルに存在するすべての列が含まれる必要があります。

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

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

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