Freigeben über


Referenz zu Delta-Tabelleneigenschaften

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

Hinweis

Alle Vorgänge, die Tabelleneigenschaften festlegen oder aktualisieren, 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

Um Tabelleneigenschaften vorhandener Tabellen zu ändern, verwenden Sie SET TBLPROPERTIES.

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.
Datentyp: Boolean
Standard: false
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.
Datentyp: Boolean
Standard: true
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.randomizeFilePrefixes.
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.
Weitere Informationen finden Sie unter Ü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.
Weitere Informationen finden Sie unter Ü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.enableTypeWidening
true um die Erweiterung des Typspektrums zu ermöglichen.
Weitere Informationen finden Sie unter Typerweiterung.
Datentyp: Boolean
Standard: false
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 Operationen setzen diesen Aufbewahrungsschwellenwert außer Kraft.
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.
Siehe Delta Lake Featurekompatibilität und Protokolle.
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.
Siehe Delta Lake Featurekompatibilität und Protokolle.
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 als idempotent festgelegt. Ausführliche Informationen finden Sie unter Idempotente Schreibvorgänge in foreachBatch.
Datentyp: CalendarInterval
Standardwert: (None)
delta.targetFileSize
Die Zieldateigröße in Bytes oder höheren Einheiten für die Dateioptimierung. Beispiel:
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 auf kleinere Dateigrößen zu wechseln, also die automatische Erkennung zu verhindern.
Weitere Informationen finden Sie unter Konfigurieren von Delta Lake zum Steuern der Datendateigröße.
Datentyp: Boolean
Standardwert: (None)
delta.parquet.compression.codec (Verfügbar in Databricks Runtime 16.0 und höher.)
Der Komprimierungscodec für eine Delta-Tabelle.
ZSTD um die Zstandard-Komprimierung (Zstd) auf einer Delta-Tabelle zu verwenden.
SNAPPY zur Verwendung der Snappy-Komprimierung in einer Delta-Tabelle.
  • Mehrere Komprimierungstypen werden unterstützt, einschließlich Zstandard und Snappy.
  • Diese Eigenschaft stellt sicher, dass alle zukünftigen Schreibvorgänge in die Tabelle den ausgewählten Codec verwenden.
  • Mit dieser Einstellung wird der Standard für Cluster/Sitzung (spark.sql.parquet.compression.codec) außer Kraft gesetzt.
  • One-off DataFrame .write.option("compression", ...") hat weiterhin Vorrang.
  • Vorhandene Dateien werden nicht automatisch neu geschrieben. Um das ausgewählte Komprimierungsformat erneut zu komprimieren, verwenden Sie OPTIMIZE table_name FULL (Databricks Runtime 16.0 und höher).
  • Diese Eigenschaft gilt nur für Delta-Tabellen. Verwaltete Iceberg-Tabellen unterstützen das Ändern des Komprimierungscodecs nicht. Siehe Begrenzungen für verwaltete Iceberg-Tabellen.

Datentyp: String
Standard: ZSTD