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 byla pouze pro 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 v 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 v2.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í a vyřazení sloupců s mapováním sloupců Delta Lake. Poznámka: Povolení automatického povolení delta.columnMapping.mode delta.randomizeFilePrefixes .Datový typ: DeltaColumnMappingMode Výchozí: none |
delta.dataSkippingNumIndexedCols Počet sloupců, u kterých Delta Lake shromažďuje statistiky pro přeskočení dat. Hodnota -1 znamená shromažďování statistik pro všechny sloupce.Viz Vynechá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 za účelem zlepšení funkce přeskočení dat. Tato vlastnost má přednost před delta.dataSkippingNumIndexedCols .Viz 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, když spustíte VACUUM a pokud existují souběžní čtenáři nebo zapisovači přistupující k tabulce Delta.– Pokud spustíte streamovací dotaz, který čte z tabulky, tento dotaz se nezastaví déle než tato hodnota. Jinak se dotaz nemusí restartovat, protože musí stále číst staré soubory. Viz Konfigurace uchovávání dat pro dotazy na časové cesty. Datový typ: CalendarInterval Výchozí: interval 1 week |
delta.enableChangeDataFeed true povolení kanálu změn dat.Viz Povolení kanálu změn dat. Datový typ: Boolean Výchozí: false |
delta.enableDeletionVectors true pro povolení vektorů odstranění a prediktivních vstupně-výstupních operací pro aktualizace.Podívejte se, 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 s protokolem jsou konstantní čas. Operacesch 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 doporuč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 SetTransaction s). 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á při vytváření idempotentních zápisů. Podrobnosti naleznete v Idempotent zápisech do tabulky ve 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á) |