Sdílet prostřednictvím


Odkaz na vlastnosti tabulky Delta

Delta Lake si vyhrazuje vlastnosti tabulky Delta, které začínají prefixem delta.. Tyto vlastnosti mohou mít specifické významy a ovlivňují chování při nastavení těchto vlastností.

Poznámka:

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.

Jak interagují vlastnosti tabulky a vlastnosti SparkSession?

Vlastnosti tabulky Delta jsou nastaveny pro každou tabulku. Pokud je vlastnost nastavena v tabulce, pak se jedná o nastavení, které následuje ve výchozím nastavení.

Některé vlastnosti tabulky mají přidružené konfigurace SparkSession, které mají vždy přednost před vlastnostmi tabulky. Mezi příklady patří konfigurace spark.databricks.delta.autoCompact.enabled a spark.databricks.delta.optimizeWrite.enabled, které na úrovni SparkSession namísto úrovně tabulky zapnou automatické komprimace a optimalizované zápisy. Databricks doporučuje pro většinu úloh používat konfigurace s ohraničením na úrovni tabulky.

Pro každou vlastnost tabulky Delta můžete pro nové tabulky nastavit výchozí hodnotu pomocí konfigurace SparkSession, čímž přepíšete předdefinovanou výchozí hodnotu. Toto nastavení má vliv pouze na nové tabulky a nepřepíše ani nenahrazuje vlastnosti nastavené u existujících tabulek. Předpona použitá ve SparkSession se liší od konfigurací použitých ve vlastnostech tabulky, jak je znázorněno v následující tabulce:

Delta Lake Conf SparkSession conf
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Například pokud chcete nastavit vlastnost delta.appendOnly = true pro všechny nové tabulky Delta Lake, které jsou vytvořeny v rámci jedné relace, nastavte následující:

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

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

Vlastnosti tabulky Delta

Mezi dostupné vlastnosti tabulky Delta patří:

Vlastnost
delta.appendOnly
true pro tuto tabulku Delta, aby umožňovala pouze přidávání. Pokud je pouze připojení, existující záznamy nelze odstranit a existující hodnoty nelze aktualizovat.
Viz referenční vlastnosti tabulky Delta.
Datový typ: Boolean
Výchozí: false
delta.autoOptimize.autoCompact
auto pro Delta Lake k automatické optimalizaci rozložení souborů pro tuto tabulku Delta.
Viz Automatická komprimace pro Delta Lake na Azure Databricks.
Datový typ: Boolean
Výchozí hodnota: (žádná)
delta.autoOptimize.optimizeWrite
true pro Delta Lake k automatické optimalizaci rozložení souborů pro tuto tabulku Delta během zápisu.
Viz Optimalizované zápisy pro Delta Lake v Azure Databricks.
Datový typ: Boolean
Výchozí hodnota: (žádná)
delta.checkpoint.writeStatsAsJson
true pro Delta Lake k zápisu statistik souborů do kontrolních bodů ve formátu JSON pro sloupec stats.
Viz Správa statistik na úrovni sloupců v kontrolních bodech.
Datový typ: Boolean
Výchozí: true
delta.checkpoint.writeStatsAsStruct
true pro Delta Lake pro zápis statistik souboru do kontrolních bodů ve strukturovaném formátu pro sloupec stats_parsed a pro zápis hodnot oddílů jako struktura pro partitionValues_parsed.
Viz Správa statistik na úrovni sloupců v kontrolních bodech.
Datový typ: Boolean
Výchozí hodnota: (žádná)
delta.checkpointPolicy
classic pro klasické kontrolní body Delta Lake. v2 pro kontrolní body verze 2.
Viz Kompatibilitu pro tabulky sshlukováním tekutin.
Datový typ: String
Výchozí: classic
delta.columnMapping.mode
Zda je povoleno mapování sloupců pro sloupce tabulky Delta a odpovídající sloupce Parquet s různými názvy.
Viz Přejmenování sloupců a odstranění sloupců s mapováním sloupců Delta Lake.
Poznámka: Povolení delta.columnMapping.mode automaticky umožňuje
delta.randomizeFilePrefixes.
Datový typ: DeltaColumnMappingMode
Výchozí: none
delta.dataSkippingNumIndexedCols
Počet sloupců, u kterých Delta Lake shromažďuje statistiky k optimalizaci přeskočení dat. Hodnota -1 znamená shromažďování statistik pro všechny sloupce.
Podívejte se na Přeskakování dat pro Delta Lake.
Datový typ: Int
Výchozí: 32
delta.dataSkippingStatsColumns
Čárkami oddělený seznam názvů sloupců, pro které Delta Lake shromažďuje statistiky pro lepší funkčnost při přeskakování dat. Tato vlastnost má přednost před delta.dataSkippingNumIndexedCols.
Podívejte se na vynechání dat pro Delta Lake.
Datový typ: String
Výchozí hodnota: (žádná)
delta.deletedFileRetentionDuration
Nejkratší doba, po které Delta Lake uchovává logicky odstraněné datové soubory, než je fyzicky odstraní. Aby se zabránilo selhání u zastaralých čtenářů po kompaktování nebo přepsání partící.
Tato hodnota by měla být dostatečně velká, aby se zajistilo, že:
  • Je větší než nejdelší možná doba trvání úlohy, pokud spustíte VACUUM a k tabulce Delta mají přístup souběžní čtenáři nebo zapisovači.
  • Pokud spustíte streamovací dotaz, který čte z tabulky, tento dotaz se nezastaví déle, než je tato hodnota. Jinak se dotaz nemusí restartovat, protože musí stále číst staré soubory.

Viz Konfigurace uchovávání dat pro časové dotazy.
Datový typ: CalendarInterval
Výchozí: interval 1 week
delta.enableChangeDataFeed
true povolit sledování změn dat.
Podívejte se na Povolení kanálu změn dat.
Datový typ: Boolean
Výchozí: false
delta.enableDeletionVectors
true pro povolení vektorů mazání a prediktivních vstupů/výstupů pro aktualizace.
Podívejte se na co jsou vektory odstranění?
Datový typ: Boolean
Výchozí nastavení: Závisí na nastavení správce pracovního prostoru a verzi Databricks Runtime. Viz automatické povolení vektorů odstraňování
delta.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 a konflikty zápisu v Azure Databricks.
Datový typ: String
Výchozí: WriteSerializable
delta.logRetentionDuration
Jak dlouho se uchovává historie tabulky Delta. VACUUM operace přepíší tuto prahovou hodnotu uchovávání informací.
Při každém zápisu kontrolního bodu Delta Lake automaticky vyčistí položky protokolu starší než interval uchovávání. Pokud tuto vlastnost nastavíte na dostatečně velkou hodnotu, zachová se mnoho položek protokolu. To by nemělo mít vliv na výkon, protože operace se záznamem mají konstantní časovou složitost. Operace na historii jsou paralelní, ale s růstem velikosti protokolu budou dražší.
Viz Konfigurace uchovávání dat pro dotazy na časové cesty.
Datový typ: CalendarInterval
Výchozí: interval 30 days
delta.minReaderVersion
Minimální požadovaná verze čtečky protokolu pro čtenáře, která umožňuje čtení z této tabulky Delta.
Databricks nedoporučuje ruční konfiguraci této vlastnosti.
Viz Jak Azure Databricks spravuje kompatibilitu funkcí Delta Lake?.
Datový typ: Int
Výchozí: 1
delta.minWriterVersion
Minimální požadovaná verze zapisovače protokolu pro zapisovač, který umožňuje ukládat data do této tabulky Delta.
Databricks doporučuje ruční konfiguraci této vlastnosti.
Viz Jak Azure Databricks spravuje kompatibilitu funkcí Delta Lake?.
Datový typ: Int
Výchozí: 2
delta.randomizeFilePrefixes
true pro Delta Lake, aby místo informací o oddílu vygenerovala náhodnou předponu cesty k souboru.
Datový typ: Boolean
Výchozí: false
delta.randomPrefixLength
Pokud je delta.randomizeFilePrefixes nastavena na true, počet znaků, které Delta Lake generuje pro náhodné předpony.
Datový typ: Int
Výchozí: 2
delta.setTransactionRetentionDuration
Nejkratší doba trvání, během které budou nové snímky uchovávat identifikátory transakcí (například SetTransactions). Když nový snímek zobrazí identifikátor transakce starší nebo roven době zadané touto vlastností, snímek považuje jeho platnost za vypršenou a ignoruje ji. Identifikátor SetTransaction se používá ke zajištění idempotentnosti zápisů. Podrobnosti najdete v části Zápisy do idempotentní tabulky v dokumentu foreachBatch.
Datový typ: CalendarInterval
Výchozí hodnota: (žádná)
delta.targetFileSize
Cílová velikost souboru v bajtech nebo vyšších jednotkách pro ladění souborů. Příklad:
104857600 (bajty) nebo 100mb.
Viz Konfigurace Delta Lake pro řízení velikosti datového souboru.
Datový typ: String
Výchozí hodnota: (žádná)
delta.tuneFileSizesForRewrites
true vždy používat nižší velikosti souborů pro všechny operace optimalizace rozložení dat v tabulce Delta.
false aby se nikdy nenaladily na nižší velikosti souborů, to znamená zabránit aktivaci automatického zjišťování.
Viz Konfigurace Delta Lake pro řízení velikosti datového souboru.
Datový typ: Boolean
Výchozí hodnota: (žádná)