Referenz zu Tabelleneigenschaften

Delta Lake- und Apache Iceberg-Tabellen verwenden Tabelleneigenschaften zum Konfigurieren von Verhalten und Features, einschließlich Datenlayout, Dateigröße, Datensprung, Isolationsstufe und Ändern des Datenfeeds.

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.

Ändern von Tabelleneigenschaften

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

Präfixe der Delta- und Iceberg-Eigenschaft

Delta Lake- und Apache Iceberg-Tabellen verwenden dieselben Tabelleneigenschaftennamen, erfordern jedoch unterschiedliche Präfixe:

  • Delta Lake-Tabellen: Verwenden des Präfixes delta.
  • Eisbergtabellen: Verwenden des Präfixes iceberg.

So aktivieren Sie beispielsweise Löschvektoren in einer Tabelle:

Delta Lake

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Eisbergtisch

ALTER TABLE <table-name> SET TBLPROPERTIES ('iceberg.enableDeletionVectors' = true);

Tabelleneigenschaften und SparkSession -eigenschaften

Jede Tabelle verfügt über eigene Tabelleneigenschaften, die das Verhalten steuern. Einige SparkSession Konfigurationen überschreiben immer Tabelleneigenschaften. Aktivieren Sie beispielsweise autoCompact.enabled die automatische Komprimierung und optimierte Schreibvorgänge auf der SparkSessionoptimizeWrite.enabled Ebene. Databricks empfiehlt die Verwendung von tabellenbezogenen Konfigurationen für die meisten Workloads.

Sie können Standardwerte für neue Tabellen mithilfe von SparkSession Konfigurationen festlegen. Diese Standardwerte gelten nur für neue Tabellen und wirken sich nicht auf vorhandene Tabelleneigenschaften aus. SparkSession Konfigurationen verwenden ein anderes Präfix als Tabelleneigenschaften, wie in der folgenden Tabelle dargestellt:

Table-Eigenschaft SparkSession Konfiguration
delta.<conf>
iceberg.<conf>
spark.databricks.delta.properties.defaults.<conf>
spark.databricks.iceberg.properties.defaults.<conf>

Wenn Sie beispielsweise die appendOnly = true Eigenschaft für alle neuen Tabellen festlegen möchten, die in einer Sitzung erstellt wurden, legen Sie Folgendes fest:

Delta Lake

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

Eisbergtisch

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

Tabelleneigenschaften

Die meisten der folgenden Tabelleneigenschaften sind für Delta Lake- und Apache Iceberg-Tabellen verfügbar, es sei denn, dies ist angegeben. Verwenden Sie das delta. Präfix für Delta Lake-Tabellen und iceberg. -Präfix für Iceberg-Tabellen.

Eigentum Description
autoOptimize.optimizeWrite true um das Layout der Dateien für diese Tabelle während der Schreibvorgänge automatisch zu optimieren.
Siehe "Optimierte Schreibvorgänge".
Datentyp: Boolean
Standardwert: (None)
dataSkippingNumIndexedCols Die Anzahl der Spalten, über die Statistiken zum Zweck des Datenüberspringens gesammelt werden sollen. Ein Wert von -1 bedeutet, dass Statistiken für alle Spalten gesammelt werden.
Siehe Datenüberspringen.
Datentyp: Int
Standardwert: 32
dataSkippingStatsColumns Eine durch Kommas getrennte Liste von Spaltennamen, für die Statistiken gesammelt werden sollen, um die Datenüberspringfunktionalität zu verbessern. Diese Eigenschaft hat Vorrang vor dataSkippingNumIndexedCols.
Siehe Datenüberspringen.
Datentyp: String
Standardwert: (None)
deletedFileRetentionDuration Die kürzeste Dauer, um logisch gelöschte Datendateien beizubehalten, bevor sie physisch gelöscht werden. Dadurch werden Fehler in veralteten Lesern nach Komprimierungen oder Partitionsüberschreibungen verhindert.
Databricks empfiehlt den Standardwert von 7 Tagen oder höher. Wenn der Aufbewahrungsfrist zu kurz ist, werden möglicherweise uncommittete Dateien gelöscht, bevor der Auftrag abgeschlossen ist.
Siehe Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen.
Datentyp: CalendarInterval
Standardwert: interval 1 week
enableDeletionVectors true, um Löschvektoren und prädiktive E/A für Updates zu aktivieren.
Siehe Löschen von Vektoren in Databricks und Aktivieren von 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.
logRetentionDuration Wie lange die Historie einer Tabelle aufbewahrt werden soll. VACUUM Operationen setzen diesen Aufbewahrungsschwellenwert außer Kraft.
Databricks bereinigt automatisch Protokolleinträge, die älter als das Aufbewahrungsintervall sind, jedes Mal, wenn ein Prüfpunkt geschrieben wird. Wenn Sie diese Eigenschaft auf einen großen Wert festlegen, bleiben viele Protokolleinträge erhalten. Dies wirkt sich nicht auf die Leistung aus, da Vorgänge in konstanter Zeit gegen das Protokoll ausgeführt werden. Vorgänge in der Historie sind parallel, werden aber kostenintensiver, wenn die Protokollgröße zunimmt.
Siehe Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen.
Datentyp: CalendarInterval
Standardwert: interval 30 days
minReaderVersion (Nur Delta Lake) Die mindestens erforderliche Protokollleseversion, die aus dieser Tabelle gelesen werden soll.
Databricks empfiehlt nicht, diese Eigenschaft manuell zu konfigurieren.
Siehe Delta Lake Featurekompatibilität und Protokolle.
Datentyp: Int
Standardwert: 1
minWriterVersion (Nur Delta Lake) Die mindestens erforderliche Protokollschreiberversion, um zu dieser Tabelle zu schreiben.
Databricks empfiehlt nicht, diese Eigenschaft manuell zu konfigurieren.
Siehe Delta Lake Featurekompatibilität und Protokolle.
Datentyp: Int
Standardwert: 2
format-version (Nur von Apache Iceberg verwaltete Tabellen) Die Version des Iceberg-Tabellenformats.
Databricks empfiehlt nicht, diese Eigenschaft manuell zu konfigurieren.
Siehe "Apache Iceberg v3-Features verwenden".
Datentyp: Int
Standardwert: 2
randomizeFilePrefixes true um ein zufälliges Präfix für einen Dateipfad anstelle von Partitionsinformationen zu generieren.
Datentyp: Boolean
Standardwert: false
targetFileSize Die Zieldateigröße in Bytes oder höheren Einheiten für die Dateioptimierung. Beispiel: 104857600 (Byte) oder 100mb.
Siehe "Datendateigröße steuern".
Datentyp: String
Standardwert: (None)
parquet.compression.codec Der Komprimierungscodec für eine Tabelle.
Gültige Werte: ZSTD, SNAPPY, GZIP, LZ4, BROTLI (Unterstützung variiert je nach Format)
Diese Eigenschaft stellt sicher, dass alle zukünftigen Schreibvorgänge in die Tabelle den ausgewählten Codec verwenden, wobei der Cluster- oder Sitzungsstandard (spark.sql.parquet.compression.codec) überschrieben wird. Einmalige DataFrame-Einstellungen .write.option("compression", "...") haben jedoch weiterhin Vorrang. Verfügbar in Databricks Runtime 16.0 und höher. Beachten Sie, dass vorhandene Dateien nicht automatisch neu geschrieben werden. Wenn Sie vorhandene Daten mit Ihrem ausgewählten Format rekomprimieren möchten, verwenden Sie OPTIMIZE table_name FULL.
Datentyp: String
Standardwert: ZSTD
parquet.format.version (Nur Delta Lake) Die Beim Schreiben von Datendateien verwendete Parkettformatversion. Angeben von 2.12.0 Ergebnissen in Databricks Runtime mit komplexeren Parkettcodierungen und Datenseitenheadern.
Gültige Werte sind 1.0.0 und 2.12.0, die Freigaben aus dem Apache-Parkett-Format entsprechen.
Diese Eigenschaft gilt nur für Delta Lake-Tabellen. Legen Sie diese Eigenschaft nicht für Iceberg-, UniForm-Tabellen oder Tabellen fest, auf die von Nicht-Databricks-Runtime-Engines zugegriffen wird.
Datentyp: String
Standardwert: 1.0.0
appendOnly true um die Tabelle nur anfügbar zu machen. Anfügetabellen erlauben weder das Löschen vorhandener Datensätze noch das Aktualisieren vorhandener Werte.
Datentyp: Boolean
Standardwert: false
autoOptimize.autoCompact Kombiniert automatisch kleine Dateien in Tabellenpartitionen, um kleine Dateiprobleme zu reduzieren. Akzeptiert auto (empfohlen), true, , legacyoder false.
Siehe Automatische Komprimierung.
Datentyp: String
Standardwert: (None)
checkpoint.writeStatsAsJson true um Dateistatistiken in Prüfpunkten im JSON-Format für die stats Spalte zu schreiben.
Datentyp: Boolean
Standardwert: false
checkpoint.writeStatsAsStruct true zum Schreiben von Dateistatistiken im Strukturformat in Prüfpunkte für die stats_parsed Spalte und zum Schreiben von Partitionswerten im Strukturformat für partitionValues_parsed.
Datentyp: Boolean
Standardwert: true
checkpointPolicy classic für klassische Checkpoints. v2 für v2-Prüfpunkte.
Siehe Prüfpunkt V2 und Kompatibilität für Tabellen mit flüssigem Clustering.
Datentyp: String
Standardwert: classic
columnMapping.mode Aktiviert die Spaltenzuordnung für Tabellenspalten und die entsprechenden Parkettspalten, die unterschiedliche Namen verwenden. Gültige Werte sind none, nameund id.
Siehe Umbenennen und Löschen von Spalten mit der Delta Lake-Spaltenzuordnung.
Hinweis: Durch das Aktivieren von columnMapping.mode wird randomizeFilePrefixes automatisch ebenfalls aktiviert.
Datentyp: DeltaColumnMappingMode
Standardwert: none
compatibility.symlinkFormatManifest.enabled (Nur Delta Lake) true um die Delta Lake-Tabelle so zu konfigurieren, dass alle Schreibvorgänge in der Tabelle die Manifeste automatisch aktualisieren.
Datentyp: Boolean
Standardwert: false
enableChangeDataFeed true, zum Aktivieren des Änderungsdatenfeeds.
Siehe "Ändern des Datenfeeds verwenden".
Datentyp: Boolean
Standardwert: false
enableTypeWidening true um die Erweiterung des Typspektrums zu ermöglichen.
Weitere Informationen finden Sie unter Typerweiterung.
Datentyp: Boolean
Standardwert: false
isolationLevel Das Ausmaß, inwieweit eine Transaktion von Änderungen durch gleichzeitige Transaktionen isoliert sein muss.
Gültige Werte sind Serializable und WriteSerializable.
Siehe Isolationsstufen (WriteSerializable und Serializable).
Datentyp: String
Standardwert: WriteSerializable
randomPrefixLength Die Anzahl der Zeichen, die für zufällige Präfixe generiert werden, wenn randomizeFilePrefixestrue ist.
Datentyp: Int
Standardwert: 2
setTransactionRetentionDuration Die kürzeste Dauer, in der neue Momentaufnahmen Transaktionskennungen (z. B. SetTransaction s) behalten. Neue Momentaufnahmen laufen ab und ignorieren Transaktionsbezeichner, die gleich oder älter als die von dieser Eigenschaft vorgegebene Dauer sind. Der SetTransaction Bezeichner wird verwendet, um Schreiboperationen idempotent zu machen. Weitere Informationen finden Sie unter "Verwenden foreachBatch für idempotent"-Tabelle .
Datentyp: CalendarInterval
Standardwert: (None)