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

Delta Lake delta. で始まる Delta テーブル プロパティを予約します。 これらのプロパティには特定の意味があり、これらのプロパティが設定されたときの動作に影響します。

注:

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

テーブル プロパティと SparkSession プロパティはどのように相互作用しますか?

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

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

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

Delta Lake 会議

スパークセッション会議

delta.<conf>

spark.databricks.delta.properties.defaults.<conf>

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

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

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

Delta テーブルのプロパティ

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

財産

delta.appendOnly

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

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

データ型: Boolean

デフォルト: false

delta.autoOptimize.autoCompact

auto を使用して、 Delta Lake この Delta テーブルのファイルのレイアウトを自動的に最適化します。

Databrick s で の Delt a Lake の自動圧縮 を参照してください。

データ型: Boolean

デフォルト: (なし)

delta.autoOptimize.optimizeWrite

true を使用して、 Delta Lake 書き込み中にこの Delta テーブルのファイルのレイアウトを自動的に最適化します。

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

データ型: Boolean

デフォルト: (なし)

delta.checkpoint.writeStatsAsJson

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

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

データ型: Boolean

デフォルト: true

delta.checkpoint.writeStatsAsStruct

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

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

データ型: Boolean

デフォルト: (なし)

delta.checkpointPolicy

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

テーブルと liquid クラスターの互換性」を参照してください。

データ型: String

デフォルト: classic

delta.columnMapping.mode

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

Delta Lake 列マッピングを使用した列の名前変更と削除」を参照してください。

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

データ型: 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

delta.isolationLevel

並列トランザクションによって行われた変更からトランザクションを分離する必要がある度合い。

有効な値は SerializableWriteSerializableです。

「Databricks での分離レベルと書き込みの競合」を参照してください。

データ型: String

デフォルト: WriteSerializable

delta.logRetentionDuration

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

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

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

データ型: CalendarInterval

デフォルト: interval 30 days

delta.minReaderVersion

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

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

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

データ型: Int

デフォルト: 1

delta.minWriterVersion

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

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

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

データ型: Int

デフォルト: 2

delta.randomizeFilePrefixes

true Delta Lake を使用して、パーティション情報の代わりにファイル パスのランダムなプレフィックスを生成します。

データ型: 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

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

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

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

データ型: Boolean

デフォルト: (なし)