Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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: BooleanStandard: (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: IntFö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: StringStandard: (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: CalendarIntervalFö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: BooleanStandard: 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: CalendarIntervalFö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: IntFö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: IntFö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: IntFö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: BooleanFö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: StringStandard: (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: StringFö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: BooleanFö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: StringStandard: (ingen) |
checkpoint.writeStatsAsJson |
true för att skriva filstatistik i kontrollpunkter i JSON-format för stats kolumnen.Datatyp: BooleanFö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: BooleanFörvalt: true |
checkpointPolicy |
classic för klassiska kontrollpunkter.
v2 för v2-kontrollpunkter.Se Kompatibilitet för tabeller med flytande klustring. Datatyp: StringFö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: DeltaColumnMappingModeFö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: BooleanFörvalt: false |
enableChangeDataFeed |
true för att aktivera ändringsdataflöde.Se Aktivera ändringsdataflöde. Datatyp: BooleanFörvalt: false |
enableTypeWidening |
true för att aktivera typbreddning.Se även Typbreddning. Datatyp: BooleanFö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: StringFörvalt: WriteSerializable |
randomPrefixLength |
Antalet tecken som ska genereras för slumpmässiga prefix när randomizeFilePrefixes är true.Datatyp: IntFö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: CalendarIntervalStandard: (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: BooleanStandard: (ingen) |