Naslaginformatie over eigenschappen van Delta-tabellen

Delta Lake reserveert deltatabeleigenschappen die beginnen met delta.. Deze eigenschappen hebben mogelijk specifieke betekenissen en beïnvloeden gedrag wanneer deze eigenschappen zijn ingesteld.

Notitie

Alle bewerkingen die tabeleigenschappen instellen of bijwerken, conflicteren met andere gelijktijdige schrijfbewerkingen, waardoor ze mislukken. Databricks raadt u aan een tabeleigenschap alleen te wijzigen wanneer er geen gelijktijdige schrijfbewerkingen in de tabel zijn.

Hoe werken tabeleigenschappen en SparkSession-eigenschappen?

Eigenschappen van Delta-tabellen worden per tabel ingesteld. Als een eigenschap is ingesteld voor een tabel, is dit de instelling die standaard wordt gevolgd.

Sommige tabeleigenschappen hebben gekoppelde SparkSession-configuraties die altijd voorrang hebben op tabeleigenschappen. Enkele voorbeelden zijn de spark.databricks.delta.autoCompact.enabled en spark.databricks.delta.optimizeWrite.enabled configuraties, waarmee automatische compressie en geoptimaliseerde schrijfbewerkingen op SparkSession-niveau worden ingeschakeld in plaats van op tabelniveau. Databricks raadt aan om configuraties met tabelbereik te gebruiken voor de meeste workloads.

Voor elke Delta-tabeleigenschap kunt u een standaardwaarde instellen voor nieuwe tabellen met behulp van een SparkSession-configuratie, waarbij de ingebouwde standaardwaarde wordt overschreven. Deze instelling is alleen van invloed op nieuwe tabellen en vervangt geen eigenschappen die zijn ingesteld op bestaande tabellen. Het voorvoegsel dat in SparkSession wordt gebruikt, verschilt van de configuraties die worden gebruikt in de tabeleigenschappen, zoals wordt weergegeven in de volgende tabel:

Delta Lake conf SparkSession conf
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Als u bijvoorbeeld de delta.appendOnly = true eigenschap wilt instellen voor alle nieuwe Delta Lake-tabellen die in een sessie zijn gemaakt, stelt u het volgende in:

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

Als u tabeleigenschappen van bestaande tabellen wilt wijzigen, gebruikt u SET TBLPROPERTIES.

Eigenschappen van Delta-tabel

Beschikbare Delta-tabeleigenschappen zijn onder andere:

Eigenschappen
delta.appendOnly

true om deze Delta-tabel alleen toe te voegen. Als alleen toevoegen, kunnen bestaande records niet worden verwijderd en kunnen bestaande waarden niet worden bijgewerkt.

Zie naslaginformatie over eigenschappen van Delta-tabellen.

Gegevenstype: Boolean

Standaardwaarde: false
delta.autoOptimize.autoCompact

auto voor Delta Lake om de indeling van de bestanden voor deze Delta-tabel automatisch te optimaliseren.

Zie Automatische compressie voor Delta Lake in Azure Databricks.

Gegevenstype: Boolean

Standaard: (geen)
delta.autoOptimize.optimizeWrite

true voor Delta Lake om de indeling van de bestanden voor deze Delta-tabel automatisch te optimaliseren tijdens schrijfbewerkingen.

Zie Geoptimaliseerde schrijfbewerkingen voor Delta Lake in Azure Databricks.

Gegevenstype: Boolean

Standaard: (geen)
delta.checkpoint.writeStatsAsJson

true voor Delta Lake voor het schrijven van bestandsstatistieken in controlepunten in JSON-indeling voor de stats kolom.

Zie Statistieken op kolomniveau beheren in controlepunten.

Gegevenstype: Boolean

Standaardwaarde: true
delta.checkpoint.writeStatsAsStruct

true voor Delta Lake voor het schrijven van bestandsstatistieken naar controlepunten in de struct-indeling voor de stats_parsed kolom en voor het schrijven van partitiewaarden als een struct voor partitionValues_parsed.

Zie Statistieken op kolomniveau beheren in controlepunten.

Gegevenstype: Boolean

Standaard: (geen)
delta.checkpointPolicy

classic voor klassieke Delta Lake-controlepunten. v2 voor v2-controlepunten.

Zie Compatibiliteit voor tabellen met vloeistofclustering.

Gegevenstype: String

Standaardwaarde: classic
delta.columnMapping.mode

Of kolomtoewijzing is ingeschakeld voor Delta-tabelkolommen en de bijbehorende Parquet-kolommen die verschillende namen gebruiken.

Zie De naam van kolommen wijzigen en neerzetten met delta lake-kolomtoewijzing.

Opmerking: automatisch inschakelen delta.columnMapping.mode
delta.randomizeFilePrefixes.

Gegevenstype: DeltaColumnMappingMode

Standaardwaarde: none
delta.dataSkippingNumIndexedCols

Het aantal kolommen voor Delta Lake voor het verzamelen van statistieken over het overslaan van gegevens. Een waarde van middelen voor het verzamelen van -1 statistieken voor alle kolommen.

Zie Gegevens overslaan voor Delta Lake.

Gegevenstype: Int

Standaardwaarde: 32
delta.dataSkippingStatsColumns

Een door komma's gescheiden lijst met kolomnamen waarop Delta Lake statistieken verzamelt om de functionaliteit voor het overslaan van gegevens te verbeteren. Deze eigenschap heeft voorrang op delta.dataSkippingNumIndexedCols.

Zie Gegevens overslaan voor Delta Lake.

Gegevenstype: String

Standaard: (geen)
delta.deletedFileRetentionDuration

De kortste duur voor Delta Lake om logisch verwijderde gegevensbestanden te bewaren voordat ze fysiek worden verwijderd. Dit is om fouten in verlopen lezers te voorkomen na compressies of partitieoverschrijven.

Deze waarde moet groot genoeg zijn om ervoor te zorgen dat:

* Het is groter dan de langst mogelijke duur van een taak als u uitvoert VACUUM wanneer er gelijktijdige lezers of schrijvers zijn die toegang hebben tot de Delta-tabel.
* Als u een streamingquery uitvoert die uit de tabel wordt gelezen, stopt die query niet langer dan deze waarde. Anders kan de query mogelijk niet opnieuw worden opgestart, omdat deze nog steeds oude bestanden moet lezen.

Zie Gegevensretentie configureren voor query's voor tijdreizen.

Gegevenstype: CalendarInterval

Standaardwaarde: interval 1 week
delta.enableChangeDataFeed

true om wijzigingenfeed in te schakelen.

Zie Wijzigingenfeed inschakelen.

Gegevenstype: Boolean

Standaardwaarde: false
delta.enableDeletionVectors

true om verwijderingsvectoren en voorspellende I/O in te schakelen voor updates.

Zie Wat zijn verwijderingsvectoren?

Gegevenstype: Boolean

Standaard: is afhankelijk van de instellingen van de werkruimtebeheerder en de Databricks Runtime-versie. Verwijderingsvectoren automatisch inschakelen
delta.isolationLevel

De mate waarin een transactie moet worden geïsoleerd van wijzigingen die door gelijktijdige transacties zijn aangebracht.

Geldige waarden zijn Serializable en WriteSerializable.

Bekijk isolatieniveaus en schrijfconflicten in Azure Databricks.

Gegevenstype: String

Standaardwaarde: WriteSerializable
delta.logRetentionDuration

Hoe lang de geschiedenis voor een Delta-tabel wordt bewaard. VACUUM bewerkingen overschrijven deze retentiedrempel.

Telkens wanneer een controlepunt wordt geschreven, schoont Delta Lake automatisch logboekvermeldingen op die ouder zijn dan het bewaarinterval. Als u deze eigenschap instelt op een waarde die groot genoeg is, worden veel logboekvermeldingen bewaard. Dit mag geen invloed hebben op de prestaties omdat bewerkingen voor het logboek constant zijn. Bewerkingen in de geschiedenis zijn parallel, maar worden duurder naarmate de logboekgrootte toeneemt.

Zie Gegevensretentie configureren voor query's voor tijdreizen.

Gegevenstype: CalendarInterval

Standaardwaarde: interval 30 days
delta.minReaderVersion

De minimaal vereiste protocollezerversie voor een lezer waarmee u deze Delta-tabel kunt lezen.

Databricks raadt aan deze eigenschap handmatig te configureren.

Zie Hoe beheert Azure Databricks de compatibiliteit van Delta Lake-functies?

Gegevenstype: Int

Standaardwaarde: 1
delta.minWriterVersion

De minimaal vereiste protocolschrijverversie voor een schrijver waarmee u naar deze Delta-tabel kunt schrijven.

Databricks raadt aan deze eigenschap handmatig te configureren.

Zie Hoe beheert Azure Databricks de compatibiliteit van Delta Lake-functies?

Gegevenstype: Int

Standaardwaarde: 2
delta.randomizeFilePrefixes

true voor Delta Lake om een willekeurig voorvoegsel voor een bestandspad te genereren in plaats van partitiegegevens.

Gegevenstype: Boolean

Standaardwaarde: false
delta.randomPrefixLength

Wanneer delta.randomizeFilePrefixes dit is ingesteld true, wordt het aantal tekens dat Delta Lake genereert voor willekeurige voorvoegsels.

Gegevenstype: Int

Standaardwaarde: 2
delta.setTransactionRetentionDuration

De kortste duur waarin nieuwe momentopnamen transactie-id's (bijvoorbeeld SetTransactions) behouden. Wanneer een nieuwe momentopname een transactie-id ziet die ouder is dan of gelijk is aan de duur die door deze eigenschap is opgegeven, wordt deze door de momentopname als verlopen beschouwd en genegeerd. De SetTransaction id wordt gebruikt bij het maken van de schrijfbewerkingen idempotent. Zie Idempotent table writes in foreachBatch voor meer informatie.

Gegevenstype: CalendarInterval

Standaard: (geen)
delta.targetFileSize

De grootte van het doelbestand in bytes of hogere eenheden voor het afstemmen van bestanden. Voorbeeld:
104857600 (bytes) of 100mb.

Zie Delta Lake configureren voor het beheren van de bestandsgrootte.

Gegevenstype: String

Standaard: (geen)
delta.tuneFileSizesForRewrites

true om altijd lagere bestandsgrootten te gebruiken voor alle optimalisatiebewerkingen voor gegevensindelingen in de Delta-tabel.

false om nooit af te stemmen op lagere bestandsgrootten, dat wil gezegd, voorkomen dat automatische detectie wordt geactiveerd.

Zie Delta Lake configureren voor het beheren van de bestandsgrootte.

Gegevenstype: Boolean

Standaard: (geen)