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 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. 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. 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) |