Megosztás a következőn keresztül:


Delta-tábla tulajdonságainak referenciája

A Delta Lake a Delta tábla tulajdonságait a delta.-val kezdődően fenntartja. Ezek a tulajdonságok konkrét jelentéssel rendelkezhetnek, és hatással lehetnek a viselkedésre, amikor ezek a tulajdonságok be vannak állítva.

Feljegyzés

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.

Hogyan működnek együtt a táblatulajdonságok és a SparkSession-tulajdonságok?

A deltatábla tulajdonságai táblánként vannak beállítva. Ha egy tulajdonság egy táblán van beállítva, akkor ezt a beállítást követi az alapértelmezett beállítás.

Egyes táblatulajdonságok társított SparkSession-konfigurációkkal rendelkeznek, amelyek mindig elsőbbséget élveznek a táblatulajdonságokkal szemben. Ilyenek például a spark.databricks.delta.autoCompact.enabled és spark.databricks.delta.optimizeWrite.enabled konfigurációk, amelyek a táblázatszint helyett bekapcsolják az automatikus tömörítést és az optimalizált írásokat a SparkSession szintjén. A Databricks a legtöbb számítási feladathoz tábla hatókörű konfigurációkat javasol.

Minden Delta-táblatulajdonsághoz beállíthat egy alapértelmezett értéket az új táblákhoz SparkSession-konfigurációval, felülírva a beépített alapértelmezett értéket. Ez a beállítás csak az új táblákat érinti, és nem bírálja felül vagy nem cseréli le a meglévő táblákon beállított tulajdonságokat. A SparkSession előtagja eltér a táblatulajdonságokban használt konfigurációktól, ahogyan az a következő táblázatban látható:

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

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

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

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

Delta-tábla tulajdonságai

Az elérhető Delta-táblatulajdonságok a következők:

Tulajdonság
delta.appendOnly
true, hogy a Delta-tábla csak hozzáadható legyen. Ha csak hozzáfűző, a meglévő rekordok nem törölhetők, és a meglévő értékek nem frissíthetők.
Lásd Delta-tábla tulajdonságaira vonatkozó referencia.
Adattípus: Boolean
Alapértelmezett: false
delta.autoOptimize.autoCompact
auto, hogy a Delta Lake automatikusan optimalizálja a Delta-tábla fájljainak elrendezését.
Tekintse meg a Delta Lake automatikus tömörítését az Azure Databricksben.
Adattípus: Boolean
Alapértelmezett: (nincs)
delta.autoOptimize.optimizeWrite
true, hogy a Delta Lake automatikusan optimalizálja a Delta-táblázat fájljainak elrendezését az írások során.
További információért lásd: Optimalizált írások a Delta Lake-hoz az Azure Databricksben.
Adattípus: Boolean
Alapértelmezett: (nincs)
delta.checkpoint.writeStatsAsJson
true, hogy a Delta Lake JSON formátumban írjon fájlstatisztikákat az stats oszlop ellenőrzőpontjaiba.
Lásd: Az ellenőrzőpontok oszlopszintű statisztikáinak kezelése.
Adattípus: Boolean
Alapértelmezett: true
delta.checkpoint.writeStatsAsStruct
true, hogy a Delta Lake fájlstatisztikákat strukturált formátumban írjon az ellenőrzőpontokba a stats_parsed oszlophoz, és hogy a partícióértékeket strukturált formában írja a partitionValues_parsed-höz.
Lásd: Az ellenőrzőpontok oszlopszintű statisztikáinak kezelése.
Adattípus: Boolean
Alapértelmezett: (nincs)
delta.checkpointPolicy
classic a klasszikus Delta Lake ellenőrzőpontokhoz. v2 v2 ellenőrzőpontokhoz.
Lásd A folyékony fürtözéssel rendelkező táblák kompatibilitása.
Adattípus: String
Alapértelmezett: classic
delta.columnMapping.mode
Az alapján megállapítható, hogy engedélyezve van-e az oszlopképezés a Delta táblák oszlopaihoz és azokhoz a Parquet-oszlopokhoz, amelyek különböző elnevezést használnak.
Lásd: Oszlopok átnevezése és elhagyása a Delta Lake oszlopleképezés alkalmazásával.
Megjegyzés: A(z) delta.columnMapping.mode funkció engedélyezése automatikusan engedélyezi
delta.randomizeFilePrefixes.
Adattípus: DeltaColumnMappingMode
Alapértelmezett: none
delta.dataSkippingNumIndexedCols
A Delta Lake azon oszlopainak a száma, amelyekről statisztikákat gyűjtenek az adatkihagyáshoz. A -1 érték az összes oszlop statisztikáinak gyűjtését jelenti.
Lásd: Adatkihagyás a Delta Lake esetében.
Adattípus: Int
Alapértelmezett: 32
delta.dataSkippingStatsColumns
Az oszlopnevek vesszővel tagolt listája, amelyen a Delta Lake statisztikákat gyűjt az adatok kihagyási funkciójának javítása érdekében. Ez a tulajdonság elsőbbséget élvez a delta.dataSkippingNumIndexedCols.
Lásd: A Delta Lake adatkihagyása.
Adattípus: String
Alapértelmezett: (nincs)
delta.deletedFileRetentionDuration
A Delta Lake által a logikailag törölt adatfájlok fizikai törlése előtti legrövidebb időtartam. Ennek célja, hogy megakadályozza az elavult állapotú olvasó programok hibáit a tömörítés vagy a partíció felülírása után.
Ennek az értéknek elég nagynak kell lennie ahhoz, hogy:
  • Ha a VACUUM-t futtatja, amikor egyidejű olvasók vagy írók férnek hozzá a Delta táblához, az nagyobb, mint a feladat leghosszabb lehetséges időtartama.
  • Ha olyan streamelési lekérdezést futtat, amely a táblából olvas be, a lekérdezés nem áll le hosszabb ideig, mint ez az érték. Ellenkező esetben előfordulhat, hogy a lekérdezés nem tud újraindulni, mivel a régi fájlokat továbbra is be kell olvasnia.

Lásd: Adatmegőrzés konfigurálása időutazásos lekérdezésekhez.
Adattípus: CalendarInterval
Alapértelmezett: interval 1 week
delta.enableChangeDataFeed
true az adatcsatorna módosításának engedélyezéséhez.
Lásd a Változásadatcsatorna engedélyezése részt.
Adattípus: Boolean
Alapértelmezett: false
delta.enableDeletionVectors
true a törlési vektorok és a prediktív I/O engedélyezése a frissítésekhez.
Lásd: Mik azok a törlési vektorok?.
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
delta.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 Serializable és WriteSerializable.
Lásd: Elkülönítési szintek és írási ütközések az Azure Databricksben.
Adattípus: String
Alapértelmezett: WriteSerializable
delta.logRetentionDuration
Mennyi ideig őrzik egy Delta-tábla történetét. VACUUM műveletek felülírják ezt a megőrzési küszöbértéket.
Minden alkalommal, amikor egy ellenőrzőpont meg van írva, a Delta Lake automatikusan törli a megőrzési időköznél régebbi naplóbejegyzéseket. Ha elég nagy értékre állítja ezt a tulajdonságot, a rendszer sok naplóbejegyzést megtart. Ez nem befolyásolhatja a teljesítményt, mivel a naplón végzett műveletek állandó időnek számítanak. Az előzmények műveletei párhuzamosak, de a naplóméret növekedésével egyre drágábbak lesznek.
Lásd: Adatmegőrzés konfigurálása időutazásos lekérdezésekhez.
Adattípus: CalendarInterval
Alapértelmezett: interval 30 days
delta.minReaderVersion
Az olvasó minimálisan szükséges protokollolvasó verziója, amely lehetővé teszi a Delta-táblázatból való olvasást.
A Databricks nem javasolja ennek a tulajdonságnak a manuális konfigurálását.
Lásd: Hogyan kezeli az Azure Databricks a Delta Lake funkció kompatibilitását?.
Adattípus: Int
Alapértelmezett: 1
delta.minWriterVersion
Az a minimálisan szükséges protokollírói verzió egy íróprogram számára, amely lehetővé teszi, hogy ebbe a Delta-táblába írjon.
A Databricks nem javasolja a tulajdonság manuális konfigurálását.
Lásd: Hogyan kezeli az Azure Databricks a Delta Lake funkció kompatibilitását?.
Adattípus: Int
Alapértelmezett: 2
delta.randomizeFilePrefixes
true, hogy a Delta Lake véletlenszerű előtagot hozzon létre egy fájlútvonalhoz partícióadatok helyett.
Adattípus: Boolean
Alapértelmezett: false
delta.randomPrefixLength
Amikor a delta.randomizeFilePrefixestrue értékre van állítva, az határozza meg a Delta Lake által véletlenszerű előtagokhoz generált karakterek számát.
Adattípus: Int
Alapértelmezett: 2
delta.setTransactionRetentionDuration
A legrövidebb időtartam, amelyen belül az új pillanatképek megőrzik a tranzakcióazonosítókat (például SetTransaction). Ha egy új pillanatkép a tulajdonság által megadott időtartamnál régebbi vagy azzal egyenlő tranzakcióazonosítót lát, a pillanatkép lejártnak tekinti, és figyelmen kívül hagyja azt. A SetTransaction azonosítót a rendszer az írások idempotenssé tételére használja. Részletekért lásd idempotens táblaírásokat foreachBatch.
Adattípus: CalendarInterval
Alapértelmezett: (nincs)
delta.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: A Delta Lake konfigurálása az adatfájlok méretének szabályozásához.
Adattípus: String
Alapértelmezett: (nincs)
delta.tuneFileSizesForRewrites
true, hogy mindig alacsonyabb fájlméreteket használjon a Delta tábla összes adatelrendezési optimalizálási műveletéhez.
false hogy soha ne hangoljon alacsonyabb fájlméretekre, azaz ne aktiválódjon az automatikus észlelés.
Lásd: A Delta Lake konfigurálása az adatfájlok méretének szabályozásához.
Adattípus: Boolean
Alapértelmezett: (nincs)