Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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: BooleanVý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: IntVý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: StringVý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: CalendarIntervalVý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: BooleanVý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: CalendarIntervalVý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: IntVý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: IntVý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: IntVýchozí: 2 |
randomizeFilePrefixes |
true pro vygenerování náhodné předpony pro cestu k souboru místo informací o oddílu.Datový typ: BooleanVý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: StringVý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: StringVý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: StringVý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: BooleanVý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: StringVýchozí hodnota: (žádná) |
checkpoint.writeStatsAsJson |
true pro zápis statistik souboru ve formátu JSON do kontrolních bodů pro sloupec stats.Datový typ: BooleanVý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: BooleanVý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: StringVý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: DeltaColumnMappingModeVý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: BooleanVýchozí: false |
enableChangeDataFeed |
true povolit sledování změn dat.Viz Použití kanálu změn dat. Datový typ: BooleanVýchozí: false |
enableTypeWidening |
true pro povolení rozšíření datového typu.Viz Rozšíření typu. Datový typ: BooleanVý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: StringVýchozí: WriteSerializable |
randomPrefixLength |
Počet znaků, které se mají vygenerovat pro náhodné předpony, pokud randomizeFilePrefixes je true.Datový typ: IntVý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: CalendarIntervalVýchozí hodnota: (žádná) |