Referenz zu Delta-Tabelleneigenschaften

Delta Lake reserviert Delta-Tabelleneigenschaften beginnend mit delta.. Diese Eigenschaften können bestimmte Bedeutungen haben und sich auf das Verhalten auswirken, wenn diese Eigenschaften festgelegt sind.

Hinweis

Sie ändern die Delta-Tabelleneigenschaften für vorhandene Tabellen mithilfe von ALTER TABLE-Anweisungen. Diese Vorgänge führen zu einem Konflikt mit anderen gleichzeitigen Schreibvorgängen, wodurch sie fehlschlagen. Für Databricks wird empfohlen, eine Tabelleneigenschaft nur dann zu ändern, wenn keine gleichzeitigen Schreibvorgänge in der Tabelle erfolgen.

Wie interagieren Tabelleneigenschaften und SparkSession-Eigenschaften?

Delta-Tabelleneigenschaften werden pro Tabelle festgelegt. Wenn eine Eigenschaft für eine Tabelle festgelegt ist, dann ist dies die Eigenschaft, die standardmäßig befolgt wird.

Einige Tabelleneigenschaften verfügen über zugeordnete SparkSession-Konfigurationen, die immer Vorrang vor Tabelleneigenschaften haben. Einige Beispiele sind die spark.databricks.delta.autoCompact.enabled- und spark.databricks.delta.optimizeWrite.enabled-Konfigurationen, welche die automatische Verdichtung und optimierte Schreibvorgänge auf SparkSession-Ebene aktivieren statt auf der Tabellenebene. Databricks empfiehlt die Verwendung von tabellenbezogenen Konfigurationen für die meisten Workloads.

Für jede Delta-Tabelleneigenschaft können Sie mithilfe einer SparkSession-Konfiguration einen Standardwert für neue Tabellen festlegen, wodurch die integrierte Standardeinstellung überschrieben wird. Diese Einstellung wirkt sich nur auf neue Tabellen aus und überschreibt oder ersetzt keine Eigenschaften, die für vorhandene Tabellen festgelegt sind. Das in SparkSession verwendete Präfix unterscheidet sich von den Konfigurationen, die in den Tabelleneigenschaften verwendet werden, wie in der folgenden Tabelle gezeigt:

Delta Lake-Konfiguration Spark-Sitzungskonfiguration
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Wenn Sie beispielsweise die Eigenschaft delta.appendOnly = true für alle neuen Delta Lake-Tabellen festlegen möchten, die in einer Sitzung erstellt werden, können Sie Folgendes festlegen:

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

Verwenden Sie SET TBLPROPERTIES, um Tabelleneigenschaften vorhandener Tabellen zu ändern.

Delta-Tabelleneigenschaften

Verfügbare Delta-Tabelleneigenschaften umfassen Folgendes:

Eigenschaft
delta.appendOnly

true für diese Delta-Tabelle, damit sie nur Anfügevorgänge unterstützt. Wenn Sie nur Anfügevorgänge unterstützt, können vorhandene Datensätze nicht gelöscht und vorhandene Werte nicht aktualisiert werden.

Weitere Informationen finden Sie unter Referenz zu Delta-Tabelleneigenschaften.

Datentyp: Boolean

Standard: false
delta.autoOptimize.autoCompact

auto, damit Delta Lake das Layout der Dateien für diese Delta-Tabelle automatisch optimiert.

Weitere Informationen finden Sie unter Automatische Verdichtung für Delta Lake in Azure Databricks.

Datentyp: Boolean

Standardwert: (None)
delta.autoOptimize.optimizeWrite

true, damit Delta Lake das Layout der Dateien für diese Delta-Tabelle bei Schreibvorgängen automatisch optimiert.

Weitere Informationen finden Sie unter Optimierte Schreibvorgänge für Delta Lake in Azure Databricks.

Datentyp: Boolean

Standardwert: (None)
delta.checkpoint.writeStatsAsJson

true, damit Delta Lake Dateistatistiken in Prüfpunkten im JSON-Format für die stats-Spalte schreibt.

Weitere Informationen finden Sie unter Verwalten von Statistiken auf Spaltenebene in Prüfpunkten.

Datentyp: Boolean

Standard: true
delta.checkpoint.writeStatsAsStruct

true, damit Delta Lake Dateistatistiken in Prüfpunkten im Strukturformat für die stats_parsed-Spalte und Partitionswerte als Struktur für partitionValues_parsed schreibt.

Weitere Informationen finden Sie unter Verwalten von Statistiken auf Spaltenebene in Prüfpunkten.

Datentyp: Boolean

Standardwert: (None)
delta.checkpointPolicy

classic für klassische Delta Lake-Prüfpunkte. v2 für v2-Prüfpunkte.

Siehe Kompatibilität für Tabellen mit Liquid Clustering.

Datentyp: String

Standard: classic
delta.columnMapping.mode

Ob die Spaltenzuordnung für Delta-Tabellenspalten und die entsprechenden Parquet-Spalten, die unterschiedliche Namen verwenden, aktiviert ist.

Weitere Informationen finden Sie unter Rename and drop columns with Delta Lake column mapping (Umbenennen und Löschen von Spalten mit Delta Lake-Spaltenzuordnung).

Hinweis: Das Aktivieren von delta.columnMapping.mode aktiviert automatisch
delta.randomFilePrefixes.

Datentyp: DeltaColumnMappingMode

Standard: none
delta.dataSkippingNumIndexedCols

Die Anzahl der Spalten für Delta Lake, über die Statistiken für das Überspringen von Daten gesammelt werden. Ein Wert von -1 bedeutet, dass Statistiken für alle Spalten gesammelt werden.

Siehe Überspringen von Daten für Delta Lake.

Datentyp: Int

Standard: 32
delta.dataSkippingStatsColumns

Eine durch Trennzeichen getrennte Liste von Spaltennamen, für die Delta Lake Statistiken sammelt, um die Funktionalität zum Überspringen von Daten zu verbessern. Diese Eigenschaft hat Vorrang vor delta.dataSkippingNumIndexedCols.

Siehe Überspringen von Daten für Delta Lake.

Datentyp: String

Standardwert: (None)
delta.deletedFileRetentionDuration

Die kürzeste Zeitspanne, die Delta Lake logisch gelöschte Dateien aufbewahrt, bevor sie physisch gelöscht werden. Dies dient dazu, Fehler in veralteten Readern nach Komprimierungen oder dem Überschreiben von Partitionen zu verhindern.

Dieser Wert sollte groß genug sein, um Folgendes sicherzustellen:

* Er ist größer als die längste mögliche Dauer eines Auftrags, falls Sie VACUUM ausführen, wenn gleichzeitig Reader oder Writer auf die Delta-Tabelle zugreifen.
* Wenn Sie eine Streamingabfrage ausführen, die aus der Tabelle liest, wird diese Abfrage nicht länger als bis zu diesem Wert angehalten. Andernfalls kann die Abfrage möglicherweise nicht neu gestartet werden, da sie noch alte Dateien lesen muss.

Weitere Informationen finden Sie unter Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen.

Datentyp: CalendarInterval

Standard: interval 1 week
delta.enableChangeDataFeed

true, zum Aktivieren des Änderungsdatenfeeds.

Weitere Informationen finden Sie unter Aktivieren des Änderungsdatenfeeds.

Datentyp: Boolean

Standard: false
delta.enableDeletionVectors

true, um Löschvektoren und prädiktive E/A für Updates zu aktivieren.

Weitere Informationen finden Sie unter Was sind Löschvektoren?.

Datentyp: Boolean

Standard: Hängt von den Administratoreinstellungen des Arbeitsbereichs und der Databricks Runtime-Version ab. Weitere Informationen finden Sie unter Automatische Aktivierung von Löschvektoren.
delta.isolationLevel

Das Ausmaß, inwieweit eine Transaktion von Änderungen durch gleichzeitige Transaktionen isoliert sein muss.

Gültige Werte sind Serializable und WriteSerializable.

Siehe Isolationsstufen und Schreibkonflikte in Azure Databricks.

Datentyp: String

Standard: WriteSerializable
delta.logRetentionDuration

Dauer der Aufbewahrung für den Verlauf einer Tabelle. VACUUM Vorgänge überschreiben diesen Aufbewahrungsschwellenwert.

Jedes Mal, wenn ein Prüfpunkt geschrieben wird, bereinigt Delta Lake automatisch Protokolleinträge, die älter als das Aufbewahrungsintervall sind. Wenn Sie diese Eigenschaft auf einen ausreichend großen Wert festlegen, werden viele Protokolleinträge beibehalten. Dies sollte sich nicht auf die Leistung auswirken, da Vorgänge für das Protokoll in einem konstanten Zeitraum durchgeführt werden. Vorgänge im Verlauf sind parallel, werden jedoch mit zunehmender Protokollgröße teurer.

Weitere Informationen finden Sie unter Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen.

Datentyp: CalendarInterval

Standard: interval 30 days
delta.minReaderVersion

Die minimal erforderliche Version des Protokollreaders für einen Reader, der das Lesen aus dieser Delta-Tabelle zulässt.

Databricks empfiehlt nicht, diese Eigenschaft manuell zu konfigurieren.

Weitere Informationen finden Sie unter Wie verwaltet Azure Databricks die Kompatibilität von Delta Lake-Features?.

Datentyp: Int

Standard: 1
delta.minWriterVersion

Die minimal erforderliche Version des Protokollwriters für einen Writer, der in diese Delta-Tabelle schreiben kann.

Databricks empfiehlt nicht, diese Eigenschaft manuell zu konfigurieren.

Weitere Informationen finden Sie unter Wie verwaltet Azure Databricks die Kompatibilität von Delta Lake-Features?.

Datentyp: Int

Standard: 2
delta.randomizeFilePrefixes

true, damit Delta Lake anstelle von Partitionsinformationen ein zufälliges Präfix für einen Dateipfad generiert.

Datentyp: Boolean

Standard: false
delta.randomPrefixLength

Wenn delta.randomizeFilePrefixes auf true festgelegt ist, die Anzahl der Zeichen, die Delta Lake für zufällige Präfixe generiert.

Datentyp: Int

Standard: 2
delta.setTransactionRetentionDuration

Der kürzeste Zeitraum, in dem neue Momentaufnahmen Transaktionsbezeichner beibehalten (z. B. SetTransactions). Wenn eine neue Momentaufnahme einen Transaktionsbezeichner ermittelt, der älter oder gleich dem Zeitraum ist, der durch diese Eigenschaft angegeben wird, betrachtet die Momentaufnahme ihn als abgelaufen und ignoriert ihn. Mit dem Bezeichner SetTransaction werden Schreibvorgänge idempotent geschrieben. Weitere Informationen finden Sie unter Idempotente Schreibvorgänge in Tabellen in foreachBatch.

Datentyp: CalendarInterval

Standardwert: (None)
delta.targetFileSize

Die Zieldateigröße in Bytes oder höheren Einheiten für die Dateioptimierung. Ein auf ein Objekt angewendeter
104857600 (Bytes) oder 100mb.

Weitere Informationen finden Sie unter Konfigurieren von Delta Lake zum Steuern der Datendateigröße.

Datentyp: String

Standardwert: (None)
delta.tuneFileSizesForRewrites

true, um immer kleinere Dateigrößen für alle Datenlayout-Optimierungsvorgänge für die Delta-Tabelle zu verwenden.

false, um nie kleinere Dateigrößen zu verwenden, d. h. die automatische Erkennung nicht zu aktivieren.

Weitere Informationen finden Sie unter Konfigurieren von Delta Lake zum Steuern der Datendateigröße.

Datentyp: Boolean

Standardwert: (None)