Freigeben über


Referenz zu Tabelleneigenschaften

Delta Lake und Apache Iceberg verwenden Tabelleneigenschaften zum Steuern des Tabellenverhaltens und der Features. Diese Eigenschaften können bestimmte Bedeutungen haben und Verhalten beeinflussen, wenn sie festgelegt werden.

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.

Delta- und Iceberg-Formate

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

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

Beispiel:

  • So aktivieren Sie Löschvektoren in einer Delta-Tabelle: delta.enableDeletionVectors
  • So aktivieren Sie Löschvektoren in einer Iceberg-Tabelle: iceberg.enableDeletionVectors

Tabelleneigenschaften und SparkSession-Eigenschaften

Jede Tabelle verfügt über eigene Tabelleneigenschaften, die das Verhalten steuern. Einige SparkSession-Konfigurationen überschreiben immer Tabelleneigenschaften. Beispielsweise ermöglichen autoCompact.enabled und optimizeWrite.enabled auf SparkSession-Ebene die automatische Verdichtung und optimierte Schreibvorgänge. 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:

-- For Delta tables
SET spark.databricks.delta.properties.defaults.appendOnly = true

-- For Iceberg tables
SET spark.databricks.iceberg.properties.defaults.appendOnly = true

Tabelleneigenschaften

Die folgenden Tabelleneigenschaften sind für Delta Lake- und Apache Iceberg-Tabellen verfügbar. Verwenden Sie das delta. Präfix für Delta-Tabellen und iceberg. das Präfix für Iceberg-Tabellen.

Eigenschaft 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
Standard: 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.
Legen Sie diesen Wert groß genug fest, um folgendes sicherzustellen:
  • Der Wert überschreitet die längste mögliche Dauer eines Jobs, wenn VACUUM mit gleichzeitigen Lesern oder Schreibern ausgeführt wird, die auf die Tabelle zugreifen.
  • Streaming-Abfragen, die von der Tabelle lesen, stoppen nicht länger als der angegebene Wert. Andernfalls kann die Abfrage nicht neu gestartet werden, da sie alte Dateien lesen muss.

Weitere Informationen finden Sie unter Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen.
Datentyp: CalendarInterval
Standard: 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.
Weitere Informationen finden Sie unter Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen.
Datentyp: CalendarInterval
Standard: 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
Standard: 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
Standard: 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
Standard: 2
randomizeFilePrefixes true um ein zufälliges Präfix für einen Dateipfad anstelle von Partitionsinformationen zu generieren.
Datentyp: Boolean
Standard: 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
Standard: ZSTD
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
Standard: 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
Standard: 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
Standard: true
checkpointPolicy classic für klassische Checkpoints. v2 für v2-Prüfpunkte.
Siehe Kompatibilität für Tabellen mit Liquid Clustering.
Datentyp: String
Standard: classic
columnMapping.mode Aktiviert die Spaltenzuordnung für Tabellenspalten und die entsprechenden Parkettspalten, die unterschiedliche Namen verwenden.
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: Durch das Aktivieren von columnMapping.mode wird randomizeFilePrefixes automatisch ebenfalls aktiviert.
Datentyp: DeltaColumnMappingMode
Standard: none
compatibility.symlinkFormatManifest.enabled (Nur Delta Lake) true um die Delta-Tabelle so zu konfigurieren, dass alle Schreibvorgänge in der Tabelle die Manifeste automatisch aktualisieren.
Datentyp: Boolean
Standard: false
enableChangeDataFeed true, zum Aktivieren des Änderungsdatenfeeds.
Weitere Informationen finden Sie unter Aktivieren des Änderungsdatenfeeds.
Datentyp: Boolean
Standard: false
enableTypeWidening true um die Erweiterung des Typspektrums zu ermöglichen.
Weitere Informationen finden Sie unter Typerweiterung.
Datentyp: Boolean
Standard: false
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
randomPrefixLength Die Anzahl der Zeichen, die für zufällige Präfixe generiert werden, wenn randomizeFilePrefixestrue ist.
Datentyp: Int
Standard: 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. Ausführliche Informationen finden Sie unter Idempotente Schreibvorgänge in foreachBatch.
Datentyp: CalendarInterval
Standardwert: (None)
tuneFileSizesForRewrites true um immer geringere Dateigrößen für alle Vorgänge zur Datenlayout-Optimierung in der Tabelle zu verwenden.
false verhindert die Optimierung auf niedrigere Dateigrößen und deaktiviert die automatische Erkennung.
Siehe "Datendateigröße steuern".
Datentyp: Boolean
Standardwert: (None)