Referens för tabellegenskaper

Delta Lake- och Apache Iceberg-tabeller använder tabellegenskaper för att konfigurera beteende och funktioner, inklusive datalayout, filstorlek, datahopp, isoleringsnivå och ändringsdataflöde.

Note

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-egenskapsprefix

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

  • Delta Lake-tabeller: Använd prefixet delta.
  • Isbergstabeller: Använd prefixet iceberg.

Om du till exempel vill aktivera borttagningsvektorer i en tabell:

Delta Lake

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Isbergsbord

ALTER TABLE <table-name> SET TBLPROPERTIES ('iceberg.enableDeletionVectors' = true);

Tabellegenskaper och SparkSession egenskaper

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 SparkSession på nivån. 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, vilket visas i följande tabell:

Tabelleegenskap SparkSession konfiguration
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:

Delta Lake

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

Isbergsbord

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

Tabellegenskaper

De flesta av följande tabellegenskaper är tillgängliga för både Delta Lake- och Apache Iceberg-tabeller, förutom där det anges. Använd prefixet delta. för Delta Lake-tabeller och iceberg. prefix för Iceberg-tabeller.

Fastighet 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
Standardvärde: 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
Standardvärde: 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
Standardvärde: 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
Standardvärde: 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
Standardvärde: 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
Standardvärde: 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
Standardvärde: 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
Standardvärde: ZSTD
parquet.format.version (Endast Delta Lake) Parquet-formatversionen som används när du skriver datafiler. 2.12.0 Ange resultat i Databricks Runtime med hjälp av mer avancerade Parquet-kodningar och sidhuvuden för datasidor.
Giltiga värden är 1.0.0 och 2.12.0, som motsvarar versioner från Apache Parquet-formatet.
Den här egenskapen gäller endast för Delta Lake-tabeller. Ange inte den här egenskapen för Iceberg, UniForm-tabeller eller tabeller som används av icke-Databricks Runtime-motorer.
Datatyp: String
Standardvärde: 1.0.0
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
Standardvärde: 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
Standardvärde: 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
Standardvärde: true
checkpointPolicy classic för klassiska kontrollpunkter. v2 för v2-kontrollpunkter.
Se Kontrollpunkt V2 och Kompatibilitet för tabeller med flytande klustring.
Datatyp: String
Standardvärde: classic
columnMapping.mode Aktiverar kolumnmappning för tabellkolumner och motsvarande Parquet-kolumner som använder olika namn. Giltiga värden är none, name och id.
Se Byt namn på och ta bort kolumner med kolumnmappning i Delta Lake.
Obs! Om du aktiverar columnMapping.mode automatiskt aktiveras randomizeFilePrefixes.
Datatyp: DeltaColumnMappingMode
Standardvärde: none
compatibility.symlinkFormatManifest.enabled (Endast Delta Lake) true för att konfigurera Delta Lake-tabellen så att alla skrivåtgärder i tabellen automatiskt uppdaterar manifesten.
Datatyp: Boolean
Standardvärde: false
enableChangeDataFeed true för att aktivera ändringsdataflöde.
Se Använda ändringsdataflöde.
Datatyp: Boolean
Standardvärde: false
enableTypeWidening true för att aktivera typbreddning.
Se Typbreddning.
Datatyp: Boolean
Standardvärde: 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 (WriteSerializable och Serializable).
Datatyp: String
Standardvärde: WriteSerializable
randomPrefixLength Antalet tecken som ska genereras för slumpmässiga prefix när randomizeFilePrefixes är true.
Datatyp: Int
Standardvärde: 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. Mer information finns i Använda foreachBatch för idempotent-tabellskrivningar .
Datatyp: CalendarInterval
Standard: (ingen)