Referenční informace k vlastnostem tabulky

Tabulky Delta Lake a Apache Iceberg používají vlastnosti tabulky ke konfiguraci chování a funkcí, včetně rozložení dat, velikosti souboru, přeskočení dat, úrovně izolace a změny datového kanálu.

Note

Všechny operace, které nastavují nebo aktualizují vlastnosti tabulky, jsou v konfliktu s jinými souběžnými operacemi zápisu, což způsobuje selhání. Databricks doporučuje upravit vlastnost tabulky pouze v případě, že v tabulce nejsou žádné souběžné operace zápisu.

Úprava vlastností tabulky

Chcete-li upravit vlastnosti tabulky existujících tabulek, použijte SET TBLPROPERTIES.

Předpony vlastností Delta a Iceberg

Tabulky Delta Lake a Apache Iceberg sdílejí stejné názvy vlastností tabulky, ale vyžadují různé předpony:

  • Tabulky Delta Lake: Použití předpony delta.
  • Iceberg tables: Použijte prefix iceberg.

Pokud chcete například povolit vektory odstranění v tabulce:

Delta Lake

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

Ledová tabulka

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

Vlastnosti a SparkSession vlastnosti tabulky

Každá tabulka má vlastní vlastnosti tabulky, které řídí jeho chování. Některé SparkSession konfigurace vždy přepisují vlastnosti tabulky. Můžete například autoCompact.enabledoptimizeWrite.enabled povolit automatické komprimace a optimalizované zápisy na SparkSession úrovni. Databricks doporučuje pro většinu úloh používat konfigurace s ohraničením na úrovni tabulky.

Výchozí hodnoty pro nové tabulky můžete nastavit pomocí SparkSession konfigurací. Tato výchozí nastavení platí jenom pro nové tabulky a nemají vliv na existující vlastnosti tabulky. SparkSession konfigurace používají jinou předponu než vlastnosti tabulky, jak je znázorněno v následující tabulce:

Vlastnost tabulky SparkSession Konfigurace
delta.<conf>
iceberg.<conf>
spark.databricks.delta.properties.defaults.<conf>
spark.databricks.iceberg.properties.defaults.<conf>

Pokud chcete například nastavit vlastnost pro všechny nové tabulky vytvořené v relaci, nastavte následující: appendOnly = true

Delta Lake

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

Ledová tabulka

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

Vlastnosti tabulky

Většina následujících vlastností tabulky je k dispozici pro tabulky Delta Lake i Apache Iceberg, s výjimkou případů, kdy je uvedeno. Použijte předponu delta. pro tabulky Delta Lake a iceberg. předponu pro tabulky Iceberg.

Vlastnictví Description
autoOptimize.optimizeWrite true pro automatickou optimalizaci rozložení souborů pro tuto tabulku během zápisu.
Viz Optimalizované zápisy.
Datový typ: Boolean
Výchozí hodnota: (žádná)
dataSkippingNumIndexedCols Počet sloupců, pro které se mají shromažďovat statistiky pro účely přeskakování dat. Hodnota -1 znamená shromažďování statistik pro všechny sloupce.
Viz Přeskočení dat.
Datový typ: Int
Výchozí: 32
dataSkippingStatsColumns Čárkami oddělený seznam názvů sloupců, pro které se mají shromažďovat statistiky k vylepšení funkčnosti vynechávání dat. Tato vlastnost má přednost před dataSkippingNumIndexedCols.
Viz Přeskočení dat.
Datový typ: String
Výchozí hodnota: (žádná)
deletedFileRetentionDuration Nejkratší doba uchovávání logicky odstraněných datových souborů před jejich odstraněním fyzicky. To zabraňuje selháním v zastaralých čtenářích po komprimaci nebo přepsání oddílů.
Databricks doporučuje výchozí hodnotu 7 dnů nebo vyšší. Pokud je doba uchování příliš krátká, úlohy s dlouhou dobou běhu mohou mít své nepotvrzené soubory odstraněné ještě před dokončením úlohy.
Viz Konfigurace uchovávání dat pro časové dotazy.
Datový typ: CalendarInterval
Výchozí: interval 1 week
enableDeletionVectors true pro povolení vektorů mazání a prediktivních vstupů/výstupů pro aktualizace.
Viz Vektory smazání v Databricks a Zapnout vektory smazání.
Datový typ: Boolean
Výchozí nastavení: Závisí na nastavení správce pracovního prostoru a verzi Databricks Runtime. Viz automatické povolení vektorů odstranění.
logRetentionDuration Jak dlouho se má uchovávat historie dané tabulky. VACUUM operace překročí tuto prahovou hodnotu uchovávání.
Databricks automaticky vyčistí položky protokolu starší než interval uchovávání informací při každém zápisu kontrolního bodu. Nastavení této vlastnosti na velkou hodnotu uchovává mnoho položek protokolu. To nemá vliv na výkon, protože operace s protokolem jsou konstantní čas. Operace s historií jsou paralelní, ale s růstem velikosti log souboru jsou dražší.
Viz Konfigurace uchovávání dat pro časové dotazy.
Datový typ: CalendarInterval
Výchozí: interval 30 days
minReaderVersion (Jenom Delta Lake) Minimální požadovaná verze čtečky protokolu pro čtení z této tabulky.
Databricks nedoporučuje ruční konfiguraci této vlastnosti.
Viz kompatibilita a protokoly funkcí Delta Lake.
Datový typ: Int
Výchozí: 1
minWriterVersion (Jenom Delta Lake) Minimální požadovaná verze zápisu protokolu pro zápis do této tabulky.
Databricks nedoporučuje ruční konfiguraci této vlastnosti.
Viz kompatibilita a protokoly funkcí Delta Lake.
Datový typ: Int
Výchozí: 2
format-version (Pouze spravované tabulky Apache Iceberg) Verze formátu tabulek Iceberg.
Databricks nedoporučuje ruční konfiguraci této vlastnosti.
Viz Použití funkcí Apache Iceberg v3.
Datový typ: Int
Výchozí: 2
randomizeFilePrefixes true pro vygenerování náhodné předpony pro cestu k souboru místo informací o oddílu.
Datový typ: Boolean
Výchozí: false
targetFileSize Cílová velikost souboru v bajtech nebo vyšších jednotkách pro ladění souborů. Například 104857600 (bajty) nebo 100mb.
Viz Kontrola velikosti datového souboru.
Datový typ: String
Výchozí hodnota: (žádná)
parquet.compression.codec Kodek pro kompresi tabulky.
Platné hodnoty: ZSTD, SNAPPY, GZIP, , LZ4( BROTLI podpora se liší podle formátu)
Tato vlastnost zajišťuje, že všechny budoucí zápisy do tabulky budou používat zvolený kodek, čímž nahradí výchozí nastavení clusteru nebo relace (spark.sql.parquet.compression.codec). Jednorázové nastavení datového rámce .write.option("compression", "...") má ale stále přednost. K dispozici ve službě Databricks Runtime 16.0 a novějších verzích. Všimněte si, že existující soubory se automaticky nepřepíší. Chcete-li rekomprimovat existující data s vybraným formátem, použijte OPTIMIZE table_name FULL.
Datový typ: String
Výchozí: ZSTD
parquet.format.version (Jenom Delta Lake) Verze formátu Parquet použitá při zápisu datových souborů. Nastavením této možnosti 2.12.0 povolíte pokročilá kódování, záhlaví datových stránek v2 a INT64 časová razítka, která můžou zlepšit výkon dotazů a snížit nároky na úložiště.
Platné hodnoty jsou 1.0.0 a 2.12.0které odpovídají vydaným verzím z formátu Apache Parquet.
Tuto vlastnost lze nastavit v tabulkách Delta Lake a Apache Iceberg. Některé čtenáře OSS Iceberg nemusí podporovat kódování Parquet v2. Viz Omezení.
Viz Parquet v2.
Datový typ: String
Výchozí: 1.0.0
appendOnly true aby byla tabulka pouze pro přidávání. Tabulky jen pro připojení neumožňují odstranění existujících záznamů ani aktualizaci existujících hodnot.
Datový typ: Boolean
Výchozí: false
autoOptimize.autoCompact Automaticky kombinuje malé soubory v oddílech tabulky, aby se snížily problémy s malými soubory. Přijímá auto (doporučeno), true, legacy, nebo false.
Viz Automatické komprimace.
Datový typ: String
Výchozí hodnota: (žádná)
checkpoint.writeStatsAsJson true pro zápis statistik souboru ve formátu JSON do kontrolních bodů pro sloupec stats.
Datový typ: Boolean
Výchozí: false
checkpoint.writeStatsAsStruct true zapsat statistiku souboru do kontrolních bodů ve formátu struktury pro sloupec stats_parsed a zapsat hodnoty oddílů jako strukturu pro partitionValues_parsed.
Datový typ: Boolean
Výchozí: true
checkpointPolicy classic pro klasické kontrolní body. v2 pro kontrolní body verze 2.
Viz Kontrolní bod V2 a Kompatibilita tabulek s liquid clusteringem.
Datový typ: String
Výchozí: classic
columnMapping.mode Umožňuje mapování sloupců pro sloupce tabulky a odpovídající sloupce Parquet, které mají různé názvy. Platné hodnoty jsou none, namea id.
Viz Přejmenování a vyřazení sloupců v rámci mapování sloupců Delta Lake.
Poznámka: Povolení columnMapping.mode automaticky povolí randomizeFilePrefixes.
Datový typ: DeltaColumnMappingMode
Výchozí: none
compatibility.symlinkFormatManifest.enabled (Jenom Delta Lake) true nakonfigurovat tabulku Delta Lake tak, aby všechny operace zápisu v tabulce automaticky aktualizovaly manifesty.
Datový typ: Boolean
Výchozí: false
enableChangeDataFeed true povolit sledování změn dat.
Viz Použití kanálu změn dat.
Datový typ: Boolean
Výchozí: false
enableTypeWidening true pro povolení rozšíření datového typu.
Viz Rozšíření typu.
Datový typ: Boolean
Výchozí: false
isolationLevel Stupeň, do kterého musí být transakce izolovaná od úprav provedených souběžnými transakcemi.
Platné hodnoty jsou Serializable a WriteSerializable.
Viz Úrovně izolace (WriteSerializable a Serializable).
Datový typ: String
Výchozí: WriteSerializable
randomPrefixLength Počet znaků, které se mají vygenerovat pro náhodné předpony, pokud randomizeFilePrefixes je true.
Datový typ: Int
Výchozí: 2
setTransactionRetentionDuration Nejkratší doba trvání, během které nové snímky uchovávají identifikátory transakcí (například SetTransactions). Platnost nových snímků vyprší a ignorují identifikátory transakcí starší než nebo rovny době trvání určené touto vlastností. Identifikátor SetTransaction se používá při vytváření idempotentních zápisů. Podrobnosti najdete v tématu Použití foreachBatch pro zápisy idempotentní tabulky .
Datový typ: CalendarInterval
Výchozí hodnota: (žádná)