表プロパティリファレンス
Delta Lake と Apache Iceberg は、テーブル プロパティを使用してテーブルの動作と機能を制御します。これらのプロパティには特定の意味があり、設定すると動作に影響を与える可能性があります。
テーブル・プロパティを設定または更新するすべての操作は、他の並列書き込み操作と競合するため、失敗します。 Databricks では、テーブルに対して並列書き込み操作がない場合にのみ、テーブルのプロパティを変更することをお勧めします。
テーブルのプロパティを変更する
既存のテーブルのテーブル・プロパティを変更するには、 SET TBLPROPERTIES を使用します。
DeltaとIceberg形式
Delta Lake テーブルと Apache Iceberg テーブルは同じテーブル プロパティ名を共有しますが、異なるプレフィックスが必要です。
- Deltaテーブル :
delta.プレフィックスを使用します - Icebergテーブル :
iceberg.プレフィックスを使用します
例えば:
- Delta テーブルで削除ベクトルを有効にするには:
delta.enableDeletionVectors - Iceberg テーブルで削除ベクトルを有効にするには:
iceberg.enableDeletionVectors
テーブルプロパティとSparkSessionプロパティ
各テーブルには、その動作を制御する独自のテーブル プロパティがあります。一部の SparkSession 構成では、常にテーブル プロパティがオーバーライドされます。たとえば、 autoCompact.enabledとoptimizeWrite.enabled 、SparkSession レベルでの自動圧縮と最適化された書き込みを有効にします。Databricks では、ほとんどのワークロードにテーブル スコープ構成を使用することをお勧めします。
SparkSession 構成を使用して、新しいテーブルのデフォルト値を設定できます。これらのデフォルトは新しいテーブルにのみ適用され、既存のテーブル プロパティには影響しません。次の表に示すように、SparkSession 構成ではテーブル プロパティとは異なるプレフィックスが使用されます。
テーブルプロパティ | SparkSessionの設定 |
|---|---|
|
|
たとえば、セッションで作成されたすべての新しいテーブルに対してappendOnly = trueプロパティを設定するには、次のように設定します。
-- For Delta tables
SET spark.databricks.delta.properties.defaults.appendOnly = true
-- For Iceberg tables
SET spark.databricks.iceberg.properties.defaults.appendOnly = true
表のプロパティ
次のテーブル プロパティは、Delta Lake テーブルと Apache Iceberg テーブルの両方で使用できます。Delta テーブルにはdelta.プレフィックスを使用し、Iceberg テーブルにはiceberg.プレフィックスを使用します。
属性 | 説明 |
|---|---|
|
最適化された書き込みを参照してください。 データ型: デフォルト: (なし) |
| データスキップに関する統計を収集する列の数。値 「データのスキップ」を参照してください。 データ型: デフォルト: |
| データスキップ機能を強化するために統計を収集する列名のカンマ区切りリスト。このプロパティは 「データのスキップ」を参照してください。 データ型: デフォルト: (なし) |
| 論理的に削除されたデータ ファイルを物理的に削除する前に保持する最短期間。これにより、圧縮またはパーティションの上書き後に古いリーダーで障害が発生するのを防ぎます。 次の条件を満たすように、この値を十分に大きく設定します。
タイムトラベル クエリのデータ保持の構成を参照してください。 データ型: デフォルト: |
|
Databricksの削除」と「削除を有効にする」を参照してください。 データ型: デフォルト: ワークスペースの管理者設定と Databricks Runtime バージョンによって異なります。 削除ベクトルの自動有効化を参照してください。 |
| テーブルの履歴を保持する期間。 Databricks は、チェックポイントが書き込まれるたびに、保持間隔よりも古いログ エントリを自動的にクリーンアップします。このプロパティを大きな値に設定すると、多くのログ エントリが保持されます。ログに対する操作は一定時間で行われるため、パフォーマンスには影響しません。履歴に対する操作は並列で行われますが、ログのサイズが大きくなるにつれてコストが高くなります。 タイムトラベル クエリのデータ保持の構成を参照してください。 データ型: デフォルト: |
| このテーブルから読み取るために必要な最小限のプロトコル リーダー バージョン。 Databricks では、このプロパティを手動で構成しないことをお勧めします。 Delta Lake 機能の互換性とプロトコルを参照してください。 データ型: デフォルト: |
| このテーブルに書き込むために必要な最小限のプロトコル ライター バージョン。 Databricks では、このプロパティを手動で構成しないことをお勧めします。 Delta Lake 機能の互換性とプロトコルを参照してください。 データ型: デフォルト: |
| Icebergテーブル形式バージョン。 Databricks では、このプロパティを手動で構成しないことをお勧めします。 「Apache Iceberg v3 機能の使用」を参照してください。 データ型: デフォルト: |
|
データ型: デフォルト: |
| ファイルチューニングの対象となるファイルのサイズ(バイト単位以上)。たとえば、 制御データ ファイル サイズを参照してください。 データ型: デフォルト: (なし) |
| テーブルの圧縮コーデック。 有効な値: このプロパティにより、今後のテーブルへのすべての書き込みで、クラスターまたはセッションのデフォルト ( データ型: デフォルト: |
|
データ型: デフォルト: |
| テーブル パーティション内の小さなファイルを自動的に結合して、小さなファイルの問題を軽減します。 自動圧縮を参照してください。 データ型: デフォルト: (なし) |
|
データ型: デフォルト: |
|
データ型: デフォルト: |
|
リキッドクラスタリングを使用したテーブルの互換性を参照してください。 データ型: デフォルト: |
| 異なる名前を使用するテーブル列と対応する Parquet 列の列マッピングを有効にします。 Delta Lake 列マッピングを使用した列の名前変更と削除を参照してください。 注意: データ型: デフォルト: |
|
データ型: デフォルト: |
|
チェンジデータフィードの有効化を参照してください。 データ型: デフォルト: |
|
「タイプ拡幅区間」を参照してください。 データ型: デフォルト: |
| トランザクションを並列トランザクションによる変更から分離する必要がある度合い。 有効な値は Databricks での分離レベルと書き込みの競合を参照してください。 データ型: デフォルト: |
|
データ型: デフォルト: |
| 新しいスナップショットがトランザクション識別子を保持する最短期間 (たとえば、 データ型: デフォルト: (なし) |
|
制御データ ファイル サイズを参照してください。 データ型: デフォルト: (なし) |