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:
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 SetTransaction s) 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) |