Delta column mapping | Databricks on AWS [2021/12/22時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
プレビュー
本機能はパブリックプレビューです。
Delta Lakeでは、Deltaテーブルのカラムと対応する対応するParquetのカラムで違う名前を使用することができるカラムマッピングをサポートしています。カラムマッピングを用いることで、背後のParquetファイルを書き換えることなしに、Deltaテーブルに対するRENAME COLUMN
のようなDeltaスキーマ進化オペレーションが可能となります。スペースのようにParquetで許可されていない文字列を用いてDeltaテーブルのカラムに名前をつけることができ、ユーザーは上述した文字列の制約のためにカラムの名前を変更することなしに、Deltaに直接CSVやJSONデータを取り込むことが可能となります。
要件
- Databricksランタイム10.2以降
- カラムマッピングにおいては、readerバージョン2、writerバージョン5のDeltaテーブルバージョンが必要となります。必要とされるテーブルバージョンのDeltaテーブルに対しては、
delta.columnMappingMode
をname
に設定することで、カラムマッピングを有効化することができます。以下のALTER TABLE
コマンドを実行することで、テーブルバージョンをアップグレードし、カラムマッピングを有効にすることができます。
ALTER TABLE <table_name> SET TBLPROPERTIES (
'delta.minReaderVersion' = '2',
'delta.minWriterVersion' = '5',
'delta.columnMapping.mode' = 'name'
)
注意
テーブルにこれらのプロパティを設定すると、このDeltaテーブルはDatabricksランタイム10.2以降でしか読み書きできなくなります。
カラム名でサポートされている文字列
Deltaテーブルでカラムマッピングが有効化されると、テーブルのカラム名に,;{}()\n\t=
を含めることができるようになります。
カラム名の変更
Deltaテーブルでカラムマッピングが有効化されている際はカラム名を変更することができます。
ALTER TABLE <table_name> RENAME COLUMN old_col_name TO new_col_name
詳細はカラム名の変更をご覧ください。