Delta テーブル プロパティのリファレンス

Delta Lake では、delta. で始まる差分テーブルのプロパティが予約されます。 これらのプロパティには特定の意味があり、これらのプロパティが設定されている場合の動作に影響を与える可能性があります。

Note

テーブル のプロパティを設定または更新するすべての操作は、他の同時書き込み操作と競合し、失敗します。 Databricks では、テーブル プロパティの修正は、そのテーブルで同時書き込み操作がないときにのみ行うことをお勧めします。

テーブルのプロパティと SparkSession プロパティはどのように連携するか

Delta テーブルのプロパティは、テーブルごとに設定されます。 テーブルにプロパティが設定されている場合、これは既定で従う設定です。

一部のテーブル プロパティには、SparkSession 構成が関連付けられており、それはテーブル プロパティよりも常に優先されます。 たとえば、spark.databricks.delta.autoCompact.enabledspark.databricks.delta.optimizeWrite.enabled の構成などがあります。これにより、テーブル レベルではなく SparkSession レベルでの自動圧縮と最適化された書き込みが有効になります。 Databricks では、ほとんどのワークロードでテーブルスコープの構成を使用することをお勧めします。

Delta テーブル プロパティごとに、SparkSession 構成を使用して新しいテーブルの既定値を設定し、組み込みの既定値をオーバーライドできます。 この設定は、新しいテーブルにのみ影響し、既存のテーブルに設定されているプロパティはオーバーライドまたは置き換えられません。 次の表に示すように、SparkSession で使用されるプレフィックスは、テーブル プロパティで使用される構成とは異なります。

Delta Lake 構成 SparkSession 構成
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

たとえば、セッションで作成されるすべての新しい Delta Lake テーブルの delta.appendOnly = true プロパティを設定するには、次のように設定します。

SET spark.databricks.delta.properties.defaults.appendOnly = true

既存のテーブルのテーブル プロパティを変更するには、SET TBLPROPERTIES を使用します。

Delta テーブル プロパティ

使用可能な Delta テーブルのプロパティは次のとおりです。

プロパティ
delta.appendOnly

この Delta テーブルを追加専用にする場合は true。 追加専用の場合、既存のレコードを削除できず、既存の値を更新できません。

Delta テーブル プロパティのリファレンス」を参照してください。

データ型: Boolean

既定値: false
delta.autoOptimize.autoCompact

Delta Lake でこの Delta テーブルのファイルのレイアウトが自動的に最適化されるようにする場合は auto

Delta Lake on Azure Databricks の自動圧縮」を参照してください。

データ型: Boolean

既定値: (なし)
delta.autoOptimize.optimizeWrite

Delta Lake で書き込み時この Delta テーブルのファイルのレイアウトが自動的に最適化されるようにする場合は true

Delta Lake on Azure Databricks の最適化された書き込み」を参照してください。

データ型: Boolean

既定値: (なし)
delta.checkpoint.writeStatsAsJson

Delta Lake でチェックポイント内に stats 列に関するファイル統計を JSON 形式で書き込む場合は true

チェックポイントで列レベルの統計を管理する」を参照してください。

データ型: Boolean

既定値: true
delta.checkpoint.writeStatsAsStruct

Delta Lake で、チェックポイントに stats_parsed 列に関するファイル統計を構造体形式で書き込み、partitionValues_parsed に関するパーティション値を構造体として書き込む場合はtrue

チェックポイントで列レベルの統計を管理する」を参照してください。

データ型: Boolean

既定値: (なし)
delta.checkpointPolicy

従来の Delta Lake チェックポイントの classic。 v2 チェックポイントの v2

リキッド クラスタリングありのテーブルの互換性」を参照してください。

データ型: String

既定値: classic
delta.columnMapping.mode

Delta テーブルの列と、名前が異なっている対応する Parquet 列に対して、列マッピングを有効にするかどうか。

Delta Lake の列マッピングを使用して列の名前変更と削除を行う」をご覧ください。

注: delta.columnMapping.mode を有効にすると、自動的に有効になります
delta.randomizeFilePrefixes

データ型: DeltaColumnMappingMode

既定値: none
delta.dataSkippingNumIndexedCols

Delta Lake が統計を収集する列数のうちデータ スキップに関するもの。 値 -1 は、すべての列に関する統計を収集することを意味します。

Delta Lake に対するデータのスキップ」を参照してください。

データ型: Int

既定値: 32
delta.dataSkippingStatsColumns

Delta Lake がデータ スキップ機能を強化するために統計を収集する列名のコンマ区切りのリスト。 このプロパティは delta.dataSkippingNumIndexedCols よりも優先されます。

Delta Lake に対するデータのスキップ」を参照してください。

データ型: String

既定値: (なし)
delta.deletedFileRetentionDuration

Delta Lake が論理的に削除されたデータ ファイルを物理的に削除する前に保持する最短時間。 これは、圧縮後またはパーティションの上書き後に古いリーダーで失敗が発生するのを防ぐためです。

この値は、次のことを保証するのに十分な大きさにする必要があります。

* 複数のリーダーまたはライターが同時に Delta テーブルにアクセスしている際に VACUUM を実行する場合に、ジョブの最も長い期間よりも長い。
* テーブルから読み取るストリーミング クエリを実行する場合、そのクエリがこの値より長い時間停止しない。 十分な大きさでないと、引き続き古いファイルを読み取る必要があるため、クエリを再起動できない可能性があります。

タイム トラベル クエリのデータ保持を構成する」を参照してください。

データ型: CalendarInterval

既定値: interval 1 week
delta.enableChangeDataFeed

データ フィードの変更を有効にするには true

データ フィードの変更を有効にする」を参照してください。

データ型: Boolean

既定値: false
delta.enableDeletionVectors

true にすると、更新プログラムの削除ベクトルと予測 I/O が有効化されます。

削除ベクトルとは」を参照してください。

データ型: Boolean

既定値: ワークスペース管理者の設定と Databricks Runtime のバージョンによって異なります。 「削除ベクトルの自動有効化」を参照してください
delta.isolationLevel

同時実行トランザクションで行われた変更からトランザクションを分離する必要がある度合い。

有効値は Serializable または WriteSerializable です。

Azure Databricks での分離レベルと書き込みの競合に関するページを参照してください。

データ型: String

既定値: WriteSerializable
delta.logRetentionDuration

Delta テーブルの履歴を保持する期間。 VACUUM 操作は、この保持しきい値をオーバーライドします。

チェックポイントが書き込まれるたびに、Delta Lake によって、保持間隔より古いログ エントリが自動的にクリーンアップされます。 このプロパティを十分な大きさの値に設定すると、多くのログ エントリが保持されます。 これがパフォーマンスに影響しないのは、ログに対する操作が一定の時間であるからです。 履歴に対する操作は並列ですが、ログのサイズが増加するにつれてコストが高くなります。

タイム トラベル クエリのデータ保持を構成する」を参照してください。

データ型: CalendarInterval

既定値: interval 30 days
delta.minReaderVersion

この Delta テーブルからの読み取りを許可するリーダーに必要な最小プロトコル リーダー バージョン。

Databricks では、このプロパティを手動で構成しないことをお勧めします。

Azure Databricks で Delta Lake 機能の互換性を管理する方法」を参照してください。

データ型: Int

既定値: 1
delta.minWriterVersion

この Delta テーブルへの書き込みを許可するライターに必要な最小プロトコル ライター バージョン。

Databricks では、このプロパティを手動で構成しないことをお勧めします。

Azure Databricks で Delta Lake 機能の互換性を管理する方法」を参照してください。

データ型: Int

既定値: 2
delta.randomizeFilePrefixes

Delta Lake がパーティション情報の代わりにファイル パスのランダム プレフィックスを生成する場合は true

データ型: Boolean

既定値: false
delta.randomPrefixLength

delta.randomizeFilePrefixestrue に設定されている場合に、Delta Lake が生成するランダム プレフィックスの文字数。

データ型: Int

既定値: 2
delta.setTransactionRetentionDuration

新しいスナップショットがトランザクション識別子を保持する最も短い期間 (例: SetTransaction 秒)。 このプロパティで指定された期間以上のトランザクション識別子が新しいスナップショットにあると、スナップショットはこの識別子を期限切れであると見なして無視します。 この SetTransaction 識別子は、書き込みのべき等を行うときに使用されます。 詳細については、「foreachBatch でのべき等テーブルの書き込み」を参照してください。

データ型: CalendarInterval

既定値: (なし)
delta.targetFileSize

ファイル チューニングのターゲットのファイル サイズ (バイト以上の単位)。 たとえば、次のように入力します。
104857600 (バイト) または 100mb

データ ファイル サイズを制御するように Delta Lake を構成する」を参照してください。

データ型: String

既定値: (なし)
delta.tuneFileSizesForRewrites

Delta テーブルのすべてのデータ レイアウト最適化操作で常に小さいファイル サイズを使用するには true

小さいファイル サイズに調整しない、つまり自動検出がアクティブにならないようにする場合は false

データ ファイル サイズを制御するように Delta Lake を構成する」を参照してください。

データ型: Boolean

既定値: (なし)