0
0

More than 1 year has passed since last update.

Delta Lakeのテーブルプロトコルのバージョン管理

Last updated at Posted at 2022-03-05

Table versioning | Databricks on AWS [2022/2/1時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

Deltaテーブルのトランザクションログには、Delta Lakeのエボリューションをサポートするバージョン管理情報が含まれています。Delta Lakeはreaderとwriterの最小バージョンを別々にトラックします。

Delta Lakeは後方互換性を保証します。バージョンの新しいDatabricksランタイムは常に古いバージョンによって書き込まれたデータを読み込むことができます。

Delta Lakeは時に後方互換性を破壊します。古いバージョンのDatabricksランタイムでは新しいバージョンのDatabricksランタイムによって書き込まれたデータを読み取れなくなる場合があります。古すぎるバージョンのDatabricksランタイムでテーブルを読み書きしようとする際には、アップグレードすべきということを告げるエラーを受け取ることでしょう。

テーブルを作成する際、Delta Lakeはスキーマやテーブルプロパティのようなテーブル特性に基づき、要求する最低プロトコルバージョンを選択します。SQL設定によりデフォルトのプロトコルバージョンを設定することもできます。

  • spark.databricks.delta.properties.defaults.minWriterVersion = 2 (デフォルト)
  • spark.databricks.delta.properties.defaults.minReaderVersion = 1 (デフォルト)

テーブルが新しいバージョンのプロトコルをサポートするようにアップグレードするには、DeltaTable.upgradeTableProtocolメソッドを使用します。

Python
from delta.tables import DeltaTable
delta = DeltaTable.forPath(spark, "path_to_table") # or DeltaTable.forName
delta.upgradeTableProtocol(1, 3) # upgrades to readerVersion=1, writerVersion=3
Scala
import io.delta.tables.DeltaTable
val delta = DeltaTable.forPath(spark, "path_to_table") // or DeltaTable.forName
delta.upgradeTableProtocol(1, 3) // upgrades to readerVersion=1, writerVersion=3

重要!
プロトコルのアップデートは不可逆であり、Delta Lakeの新機能を利用するなどで必要な場合には特定のテーブルのみをアップグレードすることをお勧めします。

プロトコルバージョンでサポートされる機能

機能 minWriterVersion minReaderVersion 導入バージョン ドキュメント
基本機能 2 1 - Delta Lake guide
CHECK制約 3 1 Databricks Runtime 7.4 (未サポート) CHECK constraint
チェンジデータフィード 4 1 Databricks Runtime 8.4 (未サポート) Change data feed
ジェネレーテッドカラム 4 2 Databricks Runtime 8.3 (未サポート) ジェネレーテッドカラムを使う
カラムマッピング 5 2 Databricks Runtime 10.2 Delta column mapping

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0