次の方法で共有


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

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

メモ

テーブル のプロパティを設定または更新するすべての操作は、他の同時書き込み操作と競合し、失敗します。 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

既存のテーブルのテーブル プロパティを変更するには、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 でチェックポイント内に true 列に関するファイル統計を JSON 形式で書き込む場合は stats
データ型: Boolean
既定値: true
delta.checkpoint.writeStatsAsStruct
Delta Lake で、チェックポイントに true 列に関するファイル統計を構造体形式で書き込み、stats_parsed に関するパーティション値を構造体として書き込む場合はpartitionValues_parsed
データ型: Boolean
既定値: true
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.enableTypeWidening
true を選択して、型拡大を有効にします。
タイプ拡張」を参照してください。
データ型: Boolean
既定値: false
delta.isolationLevel
同時実行トランザクションで行われた変更からトランザクションを分離する必要がある度合い。
有効値は Serializable または WriteSerializable です。
Azure Databricks での分離レベルと書き込みの競合に関するページを参照してください。
データ型: String
既定値: WriteSerializable
delta.logRetentionDuration
Delta テーブルの履歴を保持する期間。 VACUUM 操作は、この保持しきい値をオーバーライドします。
チェックポイントが書き込まれるたびに、Delta Lake によって、保持間隔より古いログ エントリが自動的にクリーンアップされます。 このプロパティを十分な大きさの値に設定すると、多くのログ エントリが保持されます。 これがパフォーマンスに影響しないのは、ログに対する操作が一定の時間であるからです。 履歴に対する操作は並列ですが、ログのサイズが増加するにつれてコストが高くなります。
タイム トラベル クエリのデータ保持を構成する」を参照してください。
データ型: CalendarInterval
既定値: interval 30 days
delta.minReaderVersion
この Delta テーブルからの読み取りを許可するリーダーに必要な最小プロトコル リーダー バージョン。
Databricks では、このプロパティを手動で構成しないことをお勧めします。
Delta Lake の機能の互換性とプロトコルに関する記事を参照してください。
データ型: Int
既定値: 1
delta.minWriterVersion
この Delta テーブルへの書き込みを許可するライターに必要な最小プロトコル ライター バージョン。
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
既定値: (なし)
delta.parquet.compression.codec (Databricks Runtime 16.0 以降で使用できます)。
Delta テーブルの圧縮コーデック。
ZSTD Zstandard (Zstd) 圧縮を Delta テーブルで使用するため。
SNAPPY 差分テーブルで Snappy 圧縮を使用する。
  • Zstandard や Snappy など、複数の圧縮タイプがサポートされています。
  • このプロパティを使用すると、今後のテーブルへのすべての書き込みで、選択したコーデックが使用されるようになります。
  • この設定は、クラスター/セッションの既定値 (spark.sql.parquet.compression.codec) をオーバーライドします。
  • 1 回限りの DataFrame .write.option("compression", ...") が引き続き優先されます。
  • 既存のファイルは自動的に書き換えされません。 選択した圧縮形式で再圧縮するには、 OPTIMIZE table_name FULL (Databricks Runtime 16.0 以降) を使用します。
  • このプロパティは Delta テーブルにのみ適用されます。 管理された Iceberg テーブルでは、圧縮コーデックの変更はサポートされていません。 Managed Iceberg テーブルの制限事項を参照してください。

データ型: String
既定値: ZSTD