Delen via


Naslaginformatie over eigenschappen van Delta-tabellen

Delta Lake reserveert Delta-tabeleigenschappen 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 conferentie 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:

Eigendom
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 om bestandsstatistieken in struct-formaat naar checkpoints te schrijven voor de stats_parsed kolom en om partitiewaarden als een struct voor partitionValues_parsed te schrijven.
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 Kolommen hernoemen en verwijderen met Delta Lake-kolomtoewijzing.
Opmerking: Door delta.columnMapping.mode in te schakelen wordt automatisch inschakelen mogelijk.
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 -1 betekent het verzamelen van 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 verouderde lezers te voorkomen na compacties of partitie overschrijven.
Deze waarde moet groot genoeg zijn om ervoor te zorgen dat:
  • Het is groter dan de langst mogelijke duur van een taak als u VACUUM uitvoert 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 voor tijdreisquery's configureren.
Gegevenstype: CalendarInterval
Standaardwaarde: interval 1 week
delta.enableChangeDataFeed
true om de wijzigingsgegevensstroom in te schakelen.
Zie Wijzigingsgegevensfeed 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. Zie Automatisch inschakelen van verwijderingsvectoren
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 stellen deze retentiedrempel buiten werking.
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 zou geen invloed mogen hebben op de prestaties omdat de tijd voor bewerkingen op het logboek constant blijft. Bewerkingen in de geschiedenis zijn parallel, maar worden duurder naarmate de logboekgrootte toeneemt.
Zie Gegevensretentie configureren voor tijdreisquery's.
Gegevenstype: CalendarInterval
Standaardwaarde: interval 30 days
delta.minReaderVersion
De minimaal vereiste protocollezerversie voor een lezer waarmee u deze Delta-tabel kunt lezen.
Databricks raadt af om deze eigenschap handmatig te configureren.
Zie Hoe beheert Azure Databricks de compatibiliteit van Delta Lake-functies?
Gegevenstype: Int
Standaardwaarde: 1
delta.minWriterVersion
De minimale vereiste versie van de protocolschrijver voor een schrijver die schrijven naar deze Delta-tabel mogelijk maakt.
Databricks raadt af om 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 is ingesteld op true, is 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. Bij het idempotent maken van de schrijfbewerkingen wordt de SetTransaction-identificator gebruikt. Zie idempotente tabel schrijven in foreachBatch voor details.
Gegevenstype: CalendarInterval
Standaard: (geen)
delta.targetFileSize
De grootte van het doelbestand in bytes of hogere eenheden voor het afstemmen van bestanden. Bijvoorbeeld:
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)