Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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);
Iceberg
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
Iceberg
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 |
|---|---|
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: BooleanStandardvä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: StringStandard: (ingen) |
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) |
checkpoint.writeStatsAsJson |
true för att skriva filstatistik i kontrollpunkter i JSON-format för stats kolumnen.Datatyp: BooleanStandardvä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: BooleanStandardvä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: StringStandardvä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: DeltaColumnMappingModeStandardvä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: BooleanStandardvärde: false |
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: IntStandardvä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: 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: CalendarIntervalStandardvärde: interval 1 week |
enableChangeDataFeed |
true för att aktivera ändringsdataflöde.Se Använda ändringsdataflöde. Datatyp: BooleanStandardvärde: false |
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. |
enableIcebergCompatV2 (Endast Delta Lake) |
true för att aktivera IcebergCompatV2, som skriver data i ett format kompatibelt med Iceberg-läsare. För att möjliggöra isbergsläsningar, sätt denna egenskap tillsammans med universalFormat.enabledFormats.Läs Delta Lake-tabeller med Iceberg-klienter. Datatyp: BooleanStandard: (ingen) |
enableRowTracking (Endast Delta Lake) |
true för att aktivera radspårning, som tilldelar stabila rad-ID:n och rad-commit-versioner till varje rad för radnivå-härstamning. Finns tillgängligt i Databricks Runtime 14.0 och uppåt. Apache Iceberg v3-tabeller inkluderar automatisk radspårning.Se Radspårning i Azure Databricks. Datatyp: BooleanStandardvärde: false |
enableTypeWidening |
true för att aktivera typbreddning.Se Typbreddning. Datatyp: BooleanStandardvärde: false |
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: IntStandardvärde: 2 |
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: StringStandardvärde: WriteSerializable |
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: CalendarIntervalStandardvä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: IntStandardvä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: IntStandardvärde: 2 |
parquet.compression.codec |
Komprimeringskodcen för en tabell. Giltiga värden: ZSTD, SNAPPY, GZIP, LZ4, BROTLI (stödet varierar beroende på format)Tillgängligt i Databricks Runtime 16.0 och uppåt, applicerar denna egenskap den valda codec på alla framtida skrivningar till tabellen, och överskrider klustret eller sessionens standard ( spark.sql.parquet.compression.codec). Du kan åsidosätta denna tabellegenskap med en DataFrame .write.option("compression", "..."). Att sätta egenskapen skriver inte om befintliga filer. För att komprimera befintlig data med din valda codec, använd OPTIMIZE table_name FULL. För Unity Catalog-hanterade Delta Lake-tabeller skriver parquet.compression.codec Databricks explicit (ZSTD) när tabellen skapas, så den separata Delta-standarden spark.databricks.delta.properties.defaults.parquet.compression.codec har ingen effekt. För nya externa Delta Lake-bord, använd spark.databricks.delta.properties.defaults.parquet.compression.codec.Datatyp: StringStandardvärde: ZSTD |
parquet.format.version (Endast Delta Lake) |
Parquet-formatversionen som används när du skriver datafiler. Om du ställer in detta på 2.12.0 aktiveras avancerade kodningar, sidhuvuden för v2-datasidor och INT64 tidsstämplar, vilket kan förbättra frågeprestanda och minska lagringsavtrycket.Giltiga värden är 1.0.0 och 2.12.0, som motsvarar versioner från Apache Parquet-formatet.Den här egenskapen kan ställas in på tabellerna Delta Lake och Apache Iceberg. Vissa OSS Iceberg-läsare kanske inte stöder Parquet v2-kodningar. Se Begränsningar. Se Parquet v2. Datatyp: StringStandardvärde: 1.0.0 |
randomizeFilePrefixes |
true för att generera ett slumpmässigt prefix för en filsökväg i stället för partitionsinformation.Datatyp: BooleanStandardvärde: false |
randomPrefixLength |
Antalet tecken som ska genereras för slumpmässiga prefix när randomizeFilePrefixes är true.Datatyp: IntStandardvä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: CalendarIntervalStandard: (ingen) |
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) |
universalFormat.enabledFormats (Endast Delta Lake) |
En komma-separerad lista över format för att generera metadata, så att externa klienter kan läsa Delta Lake-tabellen (UniForm). Ställ in på iceberg för att generera Iceberg-metadata. Inställningen iceberg kräver enableIcebergCompatV2 = true.Läs Delta Lake-tabeller med Iceberg-klienter. Datatyp: StringStandard: (ingen) |