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 automatisktdelta.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 SetTransaction s). 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) |