Dela via


Referens för tabellegenskaper

Delta Lake och Apache Iceberg använder tabellegenskaper för att styra tabellbeteende och funktioner. Dessa egenskaper kan ha specifika betydelser och påverka beteenden när de anges.

Anteckning

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.

Ändra tabellegenskaper

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

Delta- och Iceberg-format

Delta Lake- och Apache Iceberg-tabeller delar samma tabellegenskapsnamn, men kräver olika prefix:

  • Deltatabeller: Använd prefixet delta.
  • Isbergstabeller: Använd prefixet iceberg.

Till exempel:

  • Så här aktiverar du borttagningsvektorer i en Delta-tabell: delta.enableDeletionVectors
  • Så här aktiverar du borttagningsvektorer i en isbergstabell: iceberg.enableDeletionVectors

Tabellegenskaper och Egenskaper för SparkSession

Varje tabell har sina egna tabellegenskaper som styr dess beteende. Vissa SparkSession-konfigurationer åsidosätter alltid tabellegenskaper. Till exempel autoCompact.enabled och optimizeWrite.enabled aktivera automatisk komprimering och optimerade skrivningar på SparkSession-nivå. Databricks rekommenderar att du använder tabellomfattande konfigurationer för de flesta arbetsbelastningar.

Du kan ange standardvärden för nya tabeller med hjälp av SparkSession-konfigurationer. Dessa standardvärden gäller endast för nya tabeller och påverkar inte befintliga tabellegenskaper. SparkSession-konfigurationer använder ett annat prefix än tabellegenskaper, som du ser i följande tabell:

Tabelleegenskap Konfiguration av SparkSession
delta.<conf>
iceberg.<conf>
spark.databricks.delta.properties.defaults.<conf>
spark.databricks.iceberg.properties.defaults.<conf>

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

-- For Delta tables
SET spark.databricks.delta.properties.defaults.appendOnly = true

-- For Iceberg tables
SET spark.databricks.iceberg.properties.defaults.appendOnly = true

Tabellegenskaper

Följande tabellegenskaper är tillgängliga för både Delta Lake- och Apache Iceberg-tabeller. Använd prefixet delta. för Delta-tabeller och iceberg. prefix för Isbergstabeller.

Egendom Description
autoOptimize.optimizeWrite true för att automatiskt optimera layouten för filerna för den här tabellen under skrivningar.
Se Optimerade skrivningar.
Datatyp: Boolean
Standard: (ingen)
dataSkippingNumIndexedCols Antalet kolumner att samla in statistik om för datahopp. Ett värde på -1 betyder att samla in statistik för alla kolumner.
Se Hoppa över data.
Datatyp: Int
Förvalt: 32
dataSkippingStatsColumns En kommaavgränsad lista med kolumnnamn där du kan samla in statistik för att förbättra funktionerna för datahopp. Den här egenskapen har företräde framför dataSkippingNumIndexedCols.
Se Hoppa över data.
Datatyp: String
Standard: (ingen)
deletedFileRetentionDuration Den kortaste varaktigheten för att behålla logiskt borttagna datafiler innan du tar bort dem fysiskt. Detta förhindrar fel hos föråldrade läsare efter komprimeringar eller överskrivningar av partitioner.
Databricks rekommenderar standardvärdet 7 dagar eller högre. Om kvarhållningsperioden är för kort kan långkörande jobb få sina inte slutförda filer borttagna innan jobbet är klart.
Se Konfigurera datalagring för frågor rörande tidsresor.
Datatyp: CalendarInterval
Förvalt: interval 1 week
enableDeletionVectors true för att aktivera borttagningsvektorer och förutsägande I/O för uppdateringar.
Se Borttagningsvektorer i Databricks och Aktivera borttagningsvektorer.
Datatyp: Boolean
Standard: Beror på administratörsinställningarna för arbetsytan och Databricks Runtime-versionen. Se Automatisk aktivering av borttagningsvektorer.
logRetentionDuration Hur länge du ska behålla historiken för en tabell. VACUUM åtgärder åsidosätter det här kvarhållningströskelvärdet.
Databricks rensar automatiskt loggposter som är äldre än kvarhållningsintervallet varje gång en kontrollpunkt skrivs. Om du sätter den här egenskapen till ett högt värde, behålls flera loggposter. Detta påverkar inte prestanda eftersom åtgärder mot loggen har konstant tid. Operationer på historik är parallella men blir mer kostsamma när loggstorleken ökar.
Se Konfigurera datalagring för frågor rörande tidsresor.
Datatyp: CalendarInterval
Förvalt: interval 30 days
minReaderVersion (Endast Delta Lake) Den lägsta nödvändiga protokollläsarversionen som ska läsas från den här tabellen.
Databricks rekommenderar att du inte konfigurerar den här egenskapen manuellt.
Se Delta Lake-funktionskompatibilitet och protokoll.
Datatyp: Int
Förvalt: 1
minWriterVersion (Endast Delta Lake) Den lägsta protokollskrivarversion som krävs för att skriva till den här tabellen.
Databricks rekommenderar att du inte konfigurerar den här egenskapen manuellt.
Se Delta Lake-funktionskompatibilitet och protokoll.
Datatyp: Int
Förvalt: 2
format-version (Endast Apache Iceberg-hanterade tabeller) Isbergstabellens formatversion.
Databricks rekommenderar att du inte konfigurerar den här egenskapen manuellt.
Se Använda Apache Iceberg v3-funktioner.
Datatyp: Int
Förvalt: 2
randomizeFilePrefixes true för att generera ett slumpmässigt prefix för en filsökväg i stället för partitionsinformation.
Datatyp: Boolean
Förvalt: false
targetFileSize Målfilens storlek i byte eller högre enheter för filjustering. Till exempel 104857600 (byte) eller 100mb.
Se Kontrollera storleken på datafilen.
Datatyp: String
Standard: (ingen)
parquet.compression.codec Komprimeringskodcen för en tabell.
Giltiga värden: ZSTD, SNAPPY, GZIP, LZ4, BROTLI (stödet varierar beroende på format)
Den här egenskapen säkerställer att alla framtida skrivningar till tabellen använder den valda codecen, vilket åsidosätter klustret eller sessionsstandarden (spark.sql.parquet.compression.codec). Engångsinställningar för DataFrame .write.option("compression", "...") har dock fortfarande företräde. Tillgänglig i Databricks Runtime 16.0 och senare. Observera att befintliga filer inte skrivs om automatiskt. Om du vill komprimera befintliga data med det valda formatet använder du OPTIMIZE table_name FULL.
Datatyp: String
Förvalt: ZSTD
appendOnly true för att göra tabellen tilläggsspecifik. Tabeller med endast tillägg tillåter inte borttagning av befintliga poster eller uppdatering av befintliga värden.
Datatyp: Boolean
Förvalt: false
autoOptimize.autoCompact Kombinerar automatiskt små filer i tabellpartitioner för att minska små filproblem. Accepterar auto (rekommenderas), true, legacy, eller false.
Se Automatisk komprimering.
Datatyp: String
Standard: (ingen)
checkpoint.writeStatsAsJson true för att skriva filstatistik i kontrollpunkter i JSON-format för stats kolumnen.
Datatyp: Boolean
Förvalt: false
checkpoint.writeStatsAsStruct true för att skriva filstatistik till kontrollpunkter i struct-format för stats_parsed-kolumnen och för att skriva partitionsvärden som en struct för partitionValues_parsed.
Datatyp: Boolean
Förvalt: true
checkpointPolicy classic för klassiska kontrollpunkter. v2 för v2-kontrollpunkter.
Se Kompatibilitet för tabeller med flytande klustring.
Datatyp: String
Förvalt: classic
columnMapping.mode Aktiverar kolumnmappning för tabellkolumner och motsvarande Parquet-kolumner som använder olika namn.
Se Byt namn på och ta bort kolumner med kolumnmappning i Delta Lake.
Obs! Om du aktiverar columnMapping.mode automatiskt aktiveras randomizeFilePrefixes.
Datatyp: DeltaColumnMappingMode
Förvalt: none
compatibility.symlinkFormatManifest.enabled (Endast Delta Lake) true för att konfigurera Delta-tabellen så att alla skrivåtgärder i tabellen automatiskt uppdaterar manifesten.
Datatyp: Boolean
Förvalt: false
enableChangeDataFeed true för att aktivera ändringsdataflöde.
Se Aktivera ändringsdataflöde.
Datatyp: Boolean
Förvalt: false
enableTypeWidening true för att aktivera typbreddning.
Se även Typbreddning.
Datatyp: Boolean
Förvalt: false
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
Förvalt: WriteSerializable
randomPrefixLength Antalet tecken som ska genereras för slumpmässiga prefix när randomizeFilePrefixes är true.
Datatyp: Int
Förvalt: 2
setTransactionRetentionDuration Den kortaste varaktighet inom vilken nya ögonblicksbilder behåller transaktionsidentifierare (till exempel SetTransactions). Nya ögonblicksbilder upphör att gälla och ignorerar transaktionsidentifierare som är äldre än eller lika med den varaktighet som anges av den här egenskapen. Identifieraren SetTransaction används för att göra skrivningar idempotenta. Se Idempotent-tabellskrivningar i foreachBatch för mer information.
Datatyp: CalendarInterval
Standard: (ingen)
tuneFileSizesForRewrites true för att alltid använda mindre filstorlekar för att optimera datalayouten i tabellen.
false förhindrar justering till lägre filstorlekar och inaktiverar automatisk identifiering.
Se Kontrollera storleken på datafilen.
Datatyp: Boolean
Standard: (ingen)