Táblatulajdonságok áttekintése

A Delta Lake- és Apache Iceberg-táblák táblatulajdonságokkal konfigurálják a viselkedést és a funkciókat, beleértve az adatelrendezést, a fájlméretet, az adatok kihagyását, az elkülönítési szintet és az adatcsatorna módosítását.

Note

A táblatulajdonságokat beállítva vagy frissítve lévő összes művelet ütközik más egyidejű írási műveletekkel, ezért azok meghiúsulnak. A Databricks azt javasolja, hogy csak akkor módosítsa a táblatulajdonságokat, ha nincsenek egyidejű írási műveletek a táblán.

Táblatulajdonságok módosítása

A meglévő táblák táblatulajdonságainak módosításához használja SET TBLPROPERTIES.

Delta és Iceberg tulajdonságelőtagok

A Delta Lake és az Apache Iceberg táblák azonos táblatulajdonság-neveket használnak, de különböző előtagokat igényelnek:

  • Delta Lake-táblák: Az delta. előtag használata
  • Jéghegytáblák: Az iceberg. előtag használata

Például a törlési vektorok engedélyezése egy táblán:

Delta-tó

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

Iceberg-tábla

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

Táblatulajdonságok és SparkSession tulajdonságok

Minden tábla saját táblázattulajdonságokat tartalmaz, amelyek szabályozzák a viselkedését. Egyes SparkSession konfigurációk mindig felülbírálják a táblatulajdonságokat. Például autoCompact.enabled , és optimizeWrite.enabled engedélyezze az automatikus tömörítést és az optimalizált írásokat a SparkSession szinten. A Databricks a legtöbb számítási feladathoz tábla hatókörű konfigurációkat javasol.

Az új táblák SparkSession alapértelmezett értékeit konfigurációkkal állíthatja be. Ezek az alapértelmezett értékek csak az új táblákra vonatkoznak, és nem érintik a meglévő táblatulajdonságokat. SparkSession A konfigurációk a táblatulajdonságoktól eltérő előtagot használnak, ahogyan az az alábbi táblázatban látható:

Tábla tulajdonság SparkSession konfigurációja
delta.<conf>
iceberg.<conf>
spark.databricks.delta.properties.defaults.<conf>
spark.databricks.iceberg.properties.defaults.<conf>

Ha például a appendOnly = true munkamenetben létrehozott összes új tábla tulajdonságát szeretné beállítani, állítsa be a következőket:

Delta-tó

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

Iceberg-tábla

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

Táblatulajdonságok

Az alábbi táblázattulajdonságok többsége a Delta Lake és az Apache Iceberg táblákhoz is elérhető, kivéve, ha vannak. Használja a delta. Delta Lake-táblák előtagot és iceberg. az Iceberg-táblák előtagot.

Property Description
autoOptimize.optimizeWrite true a táblázat fájljainak elrendezésének automatikus optimalizálása írás közben.
Lásd : Optimalizált írások.
Adattípus: Boolean
Alapértelmezett: (nincs)
dataSkippingNumIndexedCols Az adatok kihagyására vonatkozó statisztikák gyűjtésére szolgáló oszlopok száma. A -1 érték az összes oszlop statisztikáinak gyűjtését jelenti.
Lásd Adatkihagyás.
Adattípus: Int
Alapértelmezett: 32
dataSkippingStatsColumns Az oszlopnevek vesszővel tagolt listája, amelyen statisztikákat gyűjthet az adatok kihagyási funkciójának javítása érdekében. Ez a tulajdonság elsőbbséget élvez a dataSkippingNumIndexedCols.
Lásd Adatkihagyás.
Adattípus: String
Alapértelmezett: (nincs)
deletedFileRetentionDuration A logikailag törölt adatfájlok fizikai törlése előtti megőrzésének legrövidebb időtartama. Ez megakadályozza az elavult olvasók meghibásodását a tömörítés vagy a partíció felülírása után.
A Databricks az alapértelmezett 7 napos vagy annál magasabb értéket javasolja. Ha a megőrzési időszak túl rövid, előfordulhat, hogy a hosszú ideig futó feladatok a feladat befejezése előtt törölték a nem véglegesített fájlokat.
Lásd: Adatmegőrzés konfigurálása időutazásos lekérdezésekhez.
Adattípus: CalendarInterval
Alapértelmezett: interval 1 week
enableDeletionVectors true a törlési vektorok és a prediktív I/O engedélyezése a frissítésekhez.
Lásd a Databricks törlési vektorait és a törlési vektorok engedélyezését.
Adattípus: Boolean
Alapértelmezett: A munkaterület rendszergazdai beállításaitól és a Databricks Futtatókörnyezet verziójától függ. Lásd: Törlési vektorok automatikus engedélyezése.
logRetentionDuration Mennyi ideig őrizze meg egy tábla előzményeit. VACUUM műveletek felülírják ezt a megőrzési küszöbértéket.
A Databricks minden ellenőrzőpont írásakor automatikusan törli a megőrzési időköznél régebbi naplóbejegyzéseket. Ha ezt a tulajdonságot nagy értékre állítja, számos naplóbejegyzés marad meg. Ez nem befolyásolja a teljesítményt, mert a naplón végzett műveletek állandó időnek számítanak. A múltbéli rekordok műveletei párhuzamosak, de a napló méretének növekedésével egyre költségesebbek lesznek.
Lásd: Adatmegőrzés konfigurálása időutazásos lekérdezésekhez.
Adattípus: CalendarInterval
Alapértelmezett: interval 30 days
minReaderVersion (Csak Delta Lake) A táblázatból való olvasáshoz minimálisan szükséges protokollolvasó verzió.
A Databricks nem javasolja ennek a tulajdonságnak a manuális konfigurálását.
Lásd a Delta Lake szolgáltatáskompatibilitását és protokolljait.
Adattípus: Int
Alapértelmezett: 1
minWriterVersion (Csak Delta Lake) A táblába íráshoz minimálisan szükséges protokollíró-verzió.
A Databricks nem javasolja ennek a tulajdonságnak a manuális konfigurálását.
Lásd a Delta Lake szolgáltatáskompatibilitását és protokolljait.
Adattípus: Int
Alapértelmezett: 2
format-version (Csak Apache Iceberg által felügyelt táblák) Az Iceberg tábla formátumának verziója.
A Databricks nem javasolja ennek a tulajdonságnak a manuális konfigurálását.
Lásd: Apache Iceberg v3-funkciók használata.
Adattípus: Int
Alapértelmezett: 2
randomizeFilePrefixes true egy fájlútvonal véletlenszerű előtagjának létrehozása partícióadatok helyett.
Adattípus: Boolean
Alapértelmezett: false
targetFileSize A célfájl mérete bájtban vagy nagyobb egységekben a fájlhangoláshoz. Például 104857600 (bájt) vagy 100mb.
Lásd: Adatfájl méretének szabályozása.
Adattípus: String
Alapértelmezett: (nincs)
parquet.compression.codec Egy tábla tömörítési kodekje.
Érvényes értékek: ZSTD, SNAPPY, GZIP, LZ4BROTLI ( a támogatás formátumonként változik)
Ez a tulajdonság biztosítja, hogy a tábla összes jövőbeli írása a kiválasztott kodekkel történjen, felülírva a fürt vagy a munkamenet alapértelmezését (spark.sql.parquet.compression.codec). Az egyszeri DataFrame-beállítások .write.option("compression", "...") azonban továbbra is elsőbbséget élveznek. A Databricks Runtime 16.0-s és újabb verzióiban érhető el. Vegye figyelembe, hogy a meglévő fájlok nem lesznek automatikusan újraírva. A meglévő adatok újratömörítéséhez a választott formátummal használja a OPTIMIZE table_name FULL parancsot.
Adattípus: String
Alapértelmezett: ZSTD
parquet.format.version (Csak Delta Lake) Az adatfájlok írásához használt Parquet formátumverzió. Ha ezt úgy állítja be, hogy lehetővé teszi a 2.12.0 speciális kódolást, a v2-adatoldal fejlécét és INT64 az időbélyegeket, ami javíthatja a lekérdezési teljesítményt és csökkentheti a tárterület-terhelést.
Az érvényes értékek az 1.0.02.12.0Apache Parquet formátumból származó kiadásoknak felelnek meg.
Ez a tulajdonság beállítható Delta Lake- és Apache Iceberg-táblákon. Előfordulhat, hogy egyes OSS Iceberg-olvasók nem támogatják a Parquet v2 kódolást. Lásd Korlátozások.
Lásd: Parquet v2.
Adattípus: String
Alapértelmezett: 1.0.0
appendOnly true annak érdekében, hogy a tábla csak hozzáfűzhető legyen. A csak hozzáfűző táblák nem teszik lehetővé a meglévő rekordok törlését és a meglévő értékek frissítését.
Adattípus: Boolean
Alapértelmezett: false
autoOptimize.autoCompact A kisebb fájlproblémák csökkentése érdekében automatikusan egyesíti a kis méretű fájlokat a táblapartíciókban. auto Elfogadja (ajánlott), truelegacyvagy false.
Lásd : Automatikus tömörítés.
Adattípus: String
Alapértelmezett: (nincs)
checkpoint.writeStatsAsJson true fájlstatisztikák írása ellenőrzőpontokba JSON formátumban az stats oszlophoz.
Adattípus: Boolean
Alapértelmezett: false
checkpoint.writeStatsAsStruct true fájlstatisztikák írása ellenőrzőpontokba strukturált formátumban az stats_parsed oszlop számára, és partícióértékek írása partitionValues_parsed struktúraként.
Adattípus: Boolean
Alapértelmezett: true
checkpointPolicy classic klasszikus ellenőrzőpontokhoz. v2 v2 ellenőrzőpontokhoz.
Lásd a 2. ellenőrzőpontot és a folyékony fürtözést tartalmazó táblák kompatibilitását.
Adattípus: String
Alapértelmezett: classic
columnMapping.mode Lehetővé teszi a táblázatoszlopok és a megfelelő, különböző neveket használó Parquet-oszlopok oszlopleképezését. Az érvényes értékek a következők: none, nameés id.
Lásd: Oszlopok átnevezése és elhagyása a Delta Lake oszlopleképezés alkalmazásával.
Megjegyzés: A columnMapping.mode bekapcsolása automatikusan bekapcsolja a randomizeFilePrefixes-t.
Adattípus: DeltaColumnMappingMode
Alapértelmezett: none
compatibility.symlinkFormatManifest.enabled (Csak Delta Lake) true a Delta Lake-tábla konfigurálásához, hogy a tábla összes írási művelete automatikusan frissítse a jegyzékfájlokat.
Adattípus: Boolean
Alapértelmezett: false
enableChangeDataFeed true az adatcsatorna módosításának engedélyezéséhez.
Lásd: Változásadatcsatorna használata.
Adattípus: Boolean
Alapértelmezett: false
enableTypeWidening true a típuskiszélesítés engedélyezéséhez.
Lásd típusbővítés.
Adattípus: Boolean
Alapértelmezett: false
isolationLevel Annak mértéke, hogy egy tranzakciót milyen mértékben kell elkülöníteni az egyidejű tranzakciók által végrehajtott módosításoktól.
Az érvényes értékek a következők: Serializable és WriteSerializable.
Lásd : Elkülönítési szintek (WriteSerializable és Szerializálható).
Adattípus: String
Alapértelmezett: WriteSerializable
randomPrefixLength A véletlenszerű előtagokhoz létrehozandó karakterek száma, ha randomizeFilePrefixes az .true
Adattípus: Int
Alapértelmezett: 2
setTransactionRetentionDuration A legrövidebb időtartam, amelyen belül az új pillanatképek megőrzik a tranzakcióazonosítókat (például SetTransactionazokat). Az új pillanatképek lejárnak, és figyelmen kívül hagyják a tulajdonság által megadott időtartamnál régebbi vagy azzal egyenlő tranzakcióazonosítókat. Az SetTransaction azonosítót akkor használjuk, amikor az írásokat idempotenssé akarjuk tenni. Részletekért lásd: Idempotens táblaírások használataforeachBatch.
Adattípus: CalendarInterval
Alapértelmezett: (nincs)