Dela via


Referens för deltatabellegenskaper

Delta Lake reserverar deltatabellegenskaper från och med delta.. Dessa egenskaper kan ha specifika betydelser och påverka beteenden när dessa egenskaper anges.

Kommentar

Alla åtgärder som anger eller uppdaterar tabellegenskaper är i konflikt med andra samtidiga skrivåtgärder, vilket gör att de misslyckas. Databricks rekommenderar att du ändrar en tabellegenskap endast när det inte finns några samtidiga skrivåtgärder i tabellen.

Hur interagerar tabellegenskaper och SparkSession-egenskaper?

Deltatabellegenskaper anges per tabell. Om en egenskap anges i en tabell är detta den inställning som följs av standardinställningen.

Vissa tabellegenskaper har associerade SparkSession-konfigurationer som alltid har företräde framför tabellegenskaper. Några exempel är konfigurationerna spark.databricks.delta.autoCompact.enabled och spark.databricks.delta.optimizeWrite.enabled som aktiverar automatisk komprimering och optimerade skrivningar på SparkSession-nivå i stället för tabellnivån. Databricks rekommenderar att du använder tabellomfattande konfigurationer för de flesta arbetsbelastningar.

För varje Delta-tabellegenskap kan du ange ett standardvärde för nya tabeller med hjälp av en SparkSession-konfiguration, vilket överskrider den inbyggda standardinställningen. Den här inställningen påverkar bara nya tabeller och åsidosätter inte eller ersätter inte egenskaper som angetts för befintliga tabeller. Prefixet som används i SparkSession skiljer sig från de konfigurationer som används i tabellegenskaperna, enligt följande tabell:

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

Om du till exempel vill ange delta.appendOnly = true egenskapen för alla nya Delta Lake-tabeller som skapats i en session anger du följande:

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

Om du vill ändra tabellegenskaper för befintliga tabeller använder du SET TBLPROPERTIES.

Deltatabellegenskaper

Tillgängliga Delta-tabellegenskaper inkluderar följande:

Property
delta.appendOnly

true för att deltatabellen ska vara tilläggsbaserad. Om endast tillägg kan befintliga poster inte tas bort och befintliga värden kan inte uppdateras.

Se Referens för egenskaper för Delta-tabell.

Datatyp: Boolean

Standard: false
delta.autoOptimize.autoCompact

auto för Att Delta Lake automatiskt ska optimera layouten för filerna för den här Delta-tabellen.

Se Automatisk komprimering för Delta Lake på Azure Databricks.

Datatyp: Boolean

Standard: (ingen)
delta.autoOptimize.optimizeWrite

true för Delta Lake att automatiskt optimera layouten för filerna för den här Delta-tabellen under skrivningar.

Se Optimerade skrivningar för Delta Lake på Azure Databricks.

Datatyp: Boolean

Standard: (ingen)
delta.checkpoint.writeStatsAsJson

true för Delta Lake att skriva filstatistik i kontrollpunkter i JSON-format för stats kolumnen.

Se Hantera statistik på kolumnnivå i kontrollpunkter.

Datatyp: Boolean

Standard: true
delta.checkpoint.writeStatsAsStruct

true för Delta Lake att skriva filstatistik till kontrollpunkter i struct-format för stats_parsed kolumnen och att skriva partitionsvärden som en struct för partitionValues_parsed.

Se Hantera statistik på kolumnnivå i kontrollpunkter.

Datatyp: Boolean

Standard: (ingen)
delta.checkpointPolicy

classic för klassiska Delta Lake-kontrollpunkter. v2 för v2-kontrollpunkter.

Se Kompatibilitet för tabeller med flytande klustring.

Datatyp: String

Standard: classic
delta.columnMapping.mode

Om kolumnmappning är aktiverat för Delta-tabellkolumner och motsvarande Parquet-kolumner som använder olika namn.

Se Byt namn på och släpp kolumner med Delta Lake-kolumnmappning.

Obs! Aktivering delta.columnMapping.mode aktiverar automatiskt
delta.randomizeFilePrefixes.

Datatyp: DeltaColumnMappingMode

Standard: none
delta.dataSkippingNumIndexedCols

Antalet kolumner för Delta Lake att samla in statistik om för datahoppning. Ett värde för -1 medel för att samla in statistik för alla kolumner.

Se Hoppa över data för Delta Lake.

Datatyp: Int

Standard: 32
delta.dataSkippingStatsColumns

En kommaavgränsad lista över kolumnnamn där Delta Lake samlar in statistik för att förbättra funktionerna för datahopp. Den här egenskapen har företräde framför delta.dataSkippingNumIndexedCols.

Se Hoppa över data för Delta Lake.

Datatyp: String

Standard: (ingen)
delta.deletedFileRetentionDuration

Den kortaste varaktigheten för Delta Lake att behålla logiskt borttagna datafiler innan de tas bort fysiskt. Detta för att förhindra fel i inaktuella läsare efter komprimering eller partitionsöverskrivningar.

Det här värdet bör vara tillräckligt stort för att säkerställa att:

– Det är större än den längsta möjliga varaktigheten för ett jobb om du kör VACUUM när det finns samtidiga läsare eller författare som har åtkomst till Delta-tabellen.
– Om du kör en direktuppspelningsfråga som läser från tabellen stoppas inte frågan längre än det här värdet. Annars kanske frågan inte kan startas om eftersom den fortfarande måste läsa gamla filer.

Se Konfigurera datakvarhållning för frågor om tidsresor.

Datatyp: CalendarInterval

Standard: interval 1 week
delta.enableChangeDataFeed

true för att aktivera ändringsdataflöde.

Se Aktivera ändringsdataflöde.

Datatyp: Boolean

Standard: false
delta.enableDeletionVectors

true för att aktivera borttagningsvektorer och förutsägande I/O för uppdateringar.

Se Vad är borttagningsvektorer?.

Datatyp: Boolean

Standard: Beror på administratörsinställningarna för arbetsytan och Databricks Runtime-versionen. Se Automatisk aktivering av borttagningsvektorer
delta.isolationLevel

I vilken utsträckning en transaktion måste isoleras från ändringar som görs av samtidiga transaktioner.

Giltiga värden är Serializable och WriteSerializable.

Se Isoleringsnivåer och skrivkonflikter i Azure Databricks.

Datatyp: String

Standard: WriteSerializable
delta.logRetentionDuration

Hur länge historiken för en Delta-tabell behålls. VACUUM åtgärder åsidosätter det här kvarhållningströskelvärdet.

Varje gång en kontrollpunkt skrivs rensar Delta Lake automatiskt loggposter som är äldre än kvarhållningsintervallet. Om du anger den här egenskapen till ett tillräckligt stort värde behålls många loggposter. Detta bör inte påverka prestanda eftersom åtgärder mot loggen är konstanta. Åtgärder i historiken är parallella men blir dyrare när loggstorleken ökar.

Se Konfigurera datakvarhållning för frågor om tidsresor.

Datatyp: CalendarInterval

Standard: interval 30 days
delta.minReaderVersion

Den lägsta nödvändiga protokollläsarversionen för en läsare som gör det möjligt att läsa från den här Delta-tabellen.

Databricks rekommenderar att du inte konfigurerar den här egenskapen manuellt.

Se Hur hanterar Azure Databricks funktionskompatibilitet med Delta Lake?.

Datatyp: Int

Standard: 1
delta.minWriterVersion

Den lägsta nödvändiga protokollskrivarversionen för en skrivare som gör det möjligt att skriva till deltatabellen.

Databricks rekommenderar att du inte konfigurerar den här egenskapen manuellt.

Se Hur hanterar Azure Databricks funktionskompatibilitet med Delta Lake?.

Datatyp: Int

Standard: 2
delta.randomizeFilePrefixes

true för Att Delta Lake ska generera ett slumpmässigt prefix för en filsökväg i stället för partitionsinformation.

Datatyp: Boolean

Standard: false
delta.randomPrefixLength

När delta.randomizeFilePrefixes är inställt på true, antalet tecken som Delta Lake genererar för slumpmässiga prefix.

Datatyp: Int

Standard: 2
delta.setTransactionRetentionDuration

Den kortaste varaktighet inom vilken nya ögonblicksbilder behåller transaktionsidentifierare (till exempel SetTransactions). När en ny ögonblicksbild ser en transaktionsidentifierare som är äldre än eller lika med den varaktighet som anges av den här egenskapen, anser ögonblicksbilden att den har upphört att gälla och ignorerar den. Identifieraren SetTransaction används när skrivningar görs idempotent. Mer information finns i Idempotent-tabellskrivningar i foreachBatch .

Datatyp: CalendarInterval

Standard: (ingen)
delta.targetFileSize

Målfilens storlek i byte eller högre enheter för filjustering. Ett exempel:
104857600 (byte) eller 100mb.

Se Konfigurera Delta Lake för att styra datafilstorleken.

Datatyp: String

Standard: (ingen)
delta.tuneFileSizesForRewrites

true för att alltid använda lägre filstorlekar för alla optimeringsåtgärder för datalayout i Delta-tabellen.

false för att aldrig justera till lägre filstorlekar, dvs. förhindra automatisk identifiering från att aktiveras.

Se Konfigurera Delta Lake för att styra datafilstorleken.

Datatyp: Boolean

Standard: (ingen)