Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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: BooleanStandardwert: (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: IntStandard: 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: StringStandardwert: (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:
Weitere Informationen finden Sie unter Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen. Datentyp: CalendarIntervalStandard: 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: BooleanStandard: 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: CalendarIntervalStandard: 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: IntStandard: 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: IntStandard: 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: IntStandard: 2 |
randomizeFilePrefixes |
true um ein zufälliges Präfix für einen Dateipfad anstelle von Partitionsinformationen zu generieren.Datentyp: BooleanStandard: 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: StringStandardwert: (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: StringStandard: 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: BooleanStandard: false |
autoOptimize.autoCompact |
Kombiniert automatisch kleine Dateien in Tabellenpartitionen, um kleine Dateiprobleme zu reduzieren. Akzeptiert auto (empfohlen), true, , legacyoder false.Siehe Automatische Komprimierung. Datentyp: StringStandardwert: (None) |
checkpoint.writeStatsAsJson |
true um Dateistatistiken in Prüfpunkten im JSON-Format für die stats Spalte zu schreiben.Datentyp: BooleanStandard: 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: BooleanStandard: true |
checkpointPolicy |
classic für klassische Checkpoints.
v2 für v2-Prüfpunkte.Siehe Kompatibilität für Tabellen mit Liquid Clustering. Datentyp: StringStandard: 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: DeltaColumnMappingModeStandard: 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: BooleanStandard: false |
enableChangeDataFeed |
true, zum Aktivieren des Änderungsdatenfeeds.Weitere Informationen finden Sie unter Aktivieren des Änderungsdatenfeeds. Datentyp: BooleanStandard: false |
enableTypeWidening |
true um die Erweiterung des Typspektrums zu ermöglichen.Weitere Informationen finden Sie unter Typerweiterung. Datentyp: BooleanStandard: 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: StringStandard: WriteSerializable |
randomPrefixLength |
Die Anzahl der Zeichen, die für zufällige Präfixe generiert werden, wenn randomizeFilePrefixestrue ist.Datentyp: IntStandard: 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: CalendarIntervalStandardwert: (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: BooleanStandardwert: (None) |