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
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
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 automatischdelta.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.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. SetTransaction s). 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) |