メインコンテンツまでスキップ

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 conf (英語)

SparkSession conf

delta.<conf>

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

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

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

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

Delta テーブルのプロパティ

使用可能な Delta テーブル プロパティには、次のものが含まれます。

属性

delta.appendOnly true この Delta テーブルは追加専用です。 追加専用の場合、既存のレコードを削除したり、既存の値を更新したりすることはできません。 「Delta テーブル プロパティ リファレンス」を参照してください。 データ型: Boolean デフォルト: false

delta.autoOptimize.autoCompact auto Delta Lake がこの Delta テーブルのファイルのレイアウトを自動的に最適化します。 「Databricks 上の Delta Lake の自動圧縮」を参照してください。 データ型: Boolean デフォルト: (なし)

delta.autoOptimize.optimizeWrite true Delta Lake が書き込み中にこの Delta テーブルのファイルのレイアウトを自動的に最適化します。 「Databricks 上の Delta Lake の最適化された書き込み」を参照してください。 データ型: Boolean デフォルト: (なし)

delta.checkpoint.writeStatsAsJson true Delta Lake が stats 列の JSON 形式でチェックポイントにファイル統計を書き込むようにします。 チェックポイントでの列レベルの統計の管理を参照してください。 データ型: Boolean デフォルト: true

delta.checkpoint.writeStatsAsStruct true Delta Lake が stats_parsed 列の構造体形式でチェックポイントにファイル統計を書き込み、パーティション値を struct として書き込む partitionValues_parsedチェックポイントでの列レベルの統計の管理を参照してください。 データ型: Boolean デフォルト: (なし)

delta.checkpointPolicy classic クラシック Delta Lake チェックポイント用。 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 トランザクションを並列トランザクションによる変更から分離する必要がある度合い。 有効な値は 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 新しいスナップショットがトランザクション識別子を保持する最短の期間 ( SetTransactions など)。 新しいスナップショットで、このプロパティで指定された期間以上経過したトランザクション識別子が見つかった場合、スナップショットはそれを期限切れと見なし、無視します。 SetTransaction識別子は、書き込みをべき等にするときに使用されます。詳細については、foreachBatchでのべき等テーブル書き込みを参照してください。 データ型: CalendarInterval デフォルト: (なし)

delta.targetFileSize ファイルチューニングのターゲットファイルサイズ(バイト以上単位)。 例えば 104857600 (バイト) または 100mb。 「 データ ファイル サイズを制御するための Delta Lake の構成」を参照してください。 データ型: String デフォルト: (なし)

delta.tuneFileSizesForRewrites true Delta テーブルに対するすべてのデータ レイアウト最適化操作で常に小さいファイル サイズを使用します。 false ファイルサイズを小さく調整しないようにする、つまり、自動検出がアクティブにならないようにする。 「 データ ファイル サイズを制御するための Delta Lake の構成」を参照してください。 データ型: Boolean デフォルト: (なし)