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