Hogyan kezeli az Azure Databricks a Delta Lake-funkciók kompatibilitását?

A Delta Lake egy független, nyílt forráskódú projekt a Linux Foundation irányítása alatt. A Databricks támogatja az új Delta Lake-funkciókat és -optimalizálásokat, amelyek a Databricks Runtime-kiadásokban a Delta Lake-ra épülnek.

A Delta Lake-funkciókat használó Azure Databricks-optimalizálások tiszteletben tartják az OSS Delta Lake-ben a kompatibilitás érdekében használt protokollokat.

Számos Azure Databricks-optimalizáláshoz engedélyezni kell a Delta Lake-funkciókat a táblában. A Delta Lake-funkciók mindig visszamenőlegesen kompatibilisek, így az alacsonyabb verziójú Databricks Runtime-futtatókörnyezettel írt táblák mindig olvashatók és írhatók egy magasabb Databricks Runtime-verzióval. Egyes szolgáltatások engedélyezése megszakítja az alacsonyabb verziójú Databricks Runtime-ban futó számítási feladatokkal való kompatibilitást. A kompatibilitást megszakító funkciók esetében frissítenie kell az összes olyan számítási feladatot, amely a frissített táblákra hivatkozik, hogy megfelelő Databricks Runtime-verziót használjon.

Feljegyzés

Az Azure Databricksben és v2Checkpoint az Azure Databricksben is megtehetideletionVectors. Lásd a Delta-tábla funkcióinak elvetése című témakört.

Fontos

Minden protokollmódosítási művelet ütközik az összes egyidejű írással.

A streamelési olvasások meghiúsulnak, ha olyan véglegesítést tapasztalnak, amely módosítja a tábla metaadatait. Ha azt szeretné, hogy a stream folytatódjon, újra kell indítania. Az ajánlott módszerekért tekintse meg a strukturált streamelés éles környezettel kapcsolatos szempontjait.

Milyen Delta Lake-funkciókra van szükség a Databricks Runtime frissítéséhez?

Az alábbi Delta Lake-funkciók megszakítják a kompatibilitást. A funkciók tábla alapján engedélyezve vannak. Ez a táblázat az Azure Databricks által támogatott legalacsonyabb Databricks Runtime-verziót sorolja fel.

Szolgáltatás A Databricks Futtatókörnyezet verziójának vagy újabb verziójának megköveteléséhez Dokumentáció
CHECK Korlátok Databricks Runtime 9.1 LTS CHECK-korlátozás beállítása az Azure Databricksben
Adatcsatorna módosítása Databricks Runtime 9.1 LTS Delta Lake change data feed használata az Azure Databricksben
Létrehozott oszlopok Databricks Runtime 9.1 LTS Delta Lake által létrehozott oszlopok
Oszlopleképezés Databricks Runtime 10.4 LTS Oszlopok átnevezése és elvetése Delta Lake-oszlopleképezéssel
Identitásoszlopok Databricks Runtime 10.4 LTS Identitásoszlopok használata a Delta Lake-ben
Táblafunkciók Databricks Runtime 12.1 (nem támogatott) Mik azok a táblafunkciók?
Törlési vektorok Databricks Runtime 12.1 (nem támogatott) Mik azok a törlési vektorok?
IdőbélyegNTZ Databricks Runtime 13.0 (nem támogatott) TIMESTAMP_NTZ típusa
Egységes Databricks Runtime 13.2 (nem támogatott) Delta-táblák olvasása Iceberg-ügyfelekkel az UniForm használatával
Folyékony fürtözés Databricks Runtime 13.3 LTS Folyékony fürtözés használata Delta-táblákhoz

Lásd a Databricks Runtime kibocsátási megjegyzéseinek verzióit és kompatibilitását.

Feljegyzés

A Delta Live Tables és a Databricks SQL automatikusan frissíti a futtatókörnyezeteket rendszeres kiadásokkal az új funkciók támogatásához. Lásd a Delta Live Tables kibocsátási megjegyzéseit, valamint a kiadásfrissítési folyamatot és a Databricks SQL kibocsátási megjegyzéseit.

Mi az a táblaprotokoll-specifikáció?

Minden Delta-tábla rendelkezik protokollspecifikációval, amely a tábla által támogatott funkciók készletét jelzi. A protokoll specifikációját a táblázatot olvasó vagy író alkalmazások használják annak megállapításához, hogy képesek-e kezelni a tábla által támogatott összes funkciót. Ha egy alkalmazás nem tudja, hogyan kezelheti a tábla protokolljában támogatottként felsorolt funkciókat, akkor az alkalmazás nem tudja olvasni vagy írni a táblát.

A protokoll specifikációja két összetevőből áll: az olvasási protokollból és az írási protokollból.

Figyelmeztetés

A legtöbb protokollverzió-frissítés visszafordíthatatlan, és a protokollverzió frissítése megszakíthatja a meglévő Delta Lake-táblaolvasókat, írókat vagy mindkettőt. A Databricks azt javasolja, hogy csak szükség esetén frissítsen bizonyos táblákat, például a Delta Lake új funkcióira való bejelentkezést. Azt is ellenőriznie kell, hogy az összes jelenlegi és jövőbeli éles eszköz támogatja-e a Delta Lake-táblákat az új protokollverzióval.

Egyes funkciókhoz protokoll-leminősítések érhetők el. Lásd a Delta-tábla funkcióinak elvetése című témakört.

Olvasási protokoll

Az olvasási protokoll felsorolja a táblák által támogatott összes funkciót, és hogy az alkalmazásnak tisztában kell lennie a táblázat helyes olvasásához. A tábla olvasási protokolljának frissítéséhez minden olvasóalkalmazásnak támogatnia kell a hozzáadott funkciókat.

Fontos

A Delta-táblába író összes alkalmazásnak képesnek kell lennie pillanatképet készíteni a tábláról. Ezért a Delta-táblákba író számítási feladatoknak tiszteletben kell tartaniuk az olvasói és az írói protokoll követelményeit is.

Ha olyan protokollt tapasztal, amelyet az Azure Databricks számítási feladatai nem támogatnak, frissítenie kell egy magasabb Szintű Databricks-futtatókörnyezetre, amely támogatja ezt a protokollt.

Írási protokoll

Az írási protokoll felsorolja a táblák által támogatott összes funkciót, és hogy az alkalmazásnak tisztában kell lennie azzal, hogy helyesen tudjon írni a táblába. A tábla írási protokolljának frissítéséhez minden íróalkalmazásnak támogatnia kell a hozzáadott funkciókat. Ez nem érinti az írásvédett alkalmazásokat, kivéve, ha az olvasási protokollt is frissítik.

Mely protokollokat kell frissíteni?

Egyes funkciókhoz az olvasási és az írási protokollt is frissíteni kell. Más funkciók csak az írási protokoll frissítését igénylik.

A kényszerek támogatása CHECK például egy írási protokoll funkció: csak az írási alkalmazásoknak kell tudniuk a korlátozásokról CHECK , és kikényszeríteniük őket.

Ezzel szemben az oszlopleképezéshez az olvasási és írási protokollok frissítése is szükséges. Mivel az adatok tárolása másként történik a táblázatban, az olvasó alkalmazásoknak ismerniük kell az oszlopleképezést, hogy megfelelően olvashassák az adatokat.

Minimális olvasó- és íróverziók

Feljegyzés

Az oszlopleképezés engedélyezésekor explicit módon frissítenie kell a táblaprotokoll verzióját.

Ha engedélyezi a Delta-funkciókat egy táblán, a táblaprotokoll automatikusan frissül. A Databricks a tábla tulajdonságainak minWriterVersion módosítását minReaderVersion javasolja. A táblatulajdonságok módosítása nem akadályozza meg a protokoll frissítését. Ha alacsonyabb értékre állítja ezeket az értékeket, az nem csökkenti a táblát. Lásd a Delta-tábla funkcióinak elvetése című témakört.

Mik azok a táblafunkciók?

A Databricks Runtime 12.2 LTS-ben és újabb verziókban a Delta Lake táblafunkciói részletes jelzőket vezetnek be, amelyek meghatározzák, hogy egy adott tábla mely szolgáltatásokat támogatja. A Databricks Runtime 11.3 LTS-ben és az alatta lévő Delta Lake-funkciók protokollverzióknak nevezett csomagokban engedélyezve voltak. A táblafunkciók a protokollverziók utódai, és a Delta Lake-t olvasott és író ügyfelek rugalmasabbá tételét szolgálják. Lásd: Mi az a protokollverzió?.

Feljegyzés

A táblafunkciók protokollverzió-követelményekkel rendelkeznek. Lásd: Szolgáltatások protokollverzió szerint.

A Delta táblafunkció egy jelölő, amely azt jelzi, hogy a tábla támogat egy adott funkciót. Minden funkció egy írási protokoll funkció (ami azt jelenti, hogy csak az írási protokollt frissíti) vagy egy olvasási/írási protokoll funkció (ami azt jelenti, hogy az olvasási és írási protokollok is frissülnek a funkció engedélyezéséhez).

A Delta Lake támogatott táblafunkcióiról a Delta Lake protokollban olvashat bővebben.

Módosítják a táblafunkciók a Delta Lake-szolgáltatások engedélyezését?

Ha csak az Azure Databricksen keresztül kommunikál a Delta-táblákkal, a minimális Databricks-futtatókörnyezeti követelményekkel továbbra is nyomon követheti a Delta Lake-funkciók támogatását. Az Azure Databricks támogatja az összes Databricks Runtime LTS-kiadás táblafunkcióira frissített Delta-táblák olvasását, feltéve, hogy a tábla által használt összes funkciót támogatja ez a kiadás.

Ha más rendszerekkel olvas és ír Delta-táblákból, érdemes lehet megfontolni, hogy a táblafunkciók milyen hatással vannak a kompatibilitásra, mert fennáll annak a veszélye, hogy a rendszer nem tudja értelmezni a frissített protokollverziókat.

Fontos

A táblázatfunkciók a Delta Lake formátumot vezetik be a 7. írói és a 3. olvasói verzióhoz. Az Azure Databricks az összes támogatott Databricks Runtime LTS-verzióhoz tartalmaz háttérkódot a táblafunkciók támogatásához, de csak azokhoz a funkciókhoz, amelyek már támogatottak az adott Databricks-futtatókörnyezetben. Ez azt jelenti, hogy bár a databricks Runtime 9.1 LTS-ben továbbra is használhatja a táblafunkciókat a létrehozott oszlopok engedélyezéséhez, és továbbra is használhatja ezeket a táblákat, az engedélyezett identitásoszlopokkal rendelkező táblák (amelyekhez a Databricks Runtime 10.4 LTS szükséges) továbbra sem támogatottak a Databricks-futtatókörnyezetben.

Mi az a protokollverzió?

A protokollverzió egy protokollszám, amely a táblafunkciók adott csoportosítását jelzi. A Databricks Runtime 11.3 LTS-ben és az alábbi verziókban nem engedélyezheti egyenként a táblafunkciókat. A protokollverziók funkciók egy csoportját kötik össze.

A deltatáblák külön protokollverziót adnak meg az olvasási és írási protokollhoz. A Delta-tábla tranzakciónaplója olyan protokollverziós információkat tartalmaz, amelyek támogatják a Delta Lake-evolúciót. Tekintse át a Delta Lake-tábla részleteit a részletes leírással.

A protokollverziók a korábbi protokollok összes funkcióját kötik össze. Lásd: Szolgáltatások protokollverzió szerint.

Feljegyzés

Az író 7-es és 3-os olvasói verziójától kezdve a Delta Lake bevezette a táblafunkciók fogalmát. A táblafunkciók használatával mostantól dönthet úgy, hogy csak azokat a funkciókat engedélyezi, amelyeket más ügyfelek támogatnak az adat-ökoszisztémában. Lásd: Mik azok a táblafunkciók?.

Szolgáltatások protokollverzió szerint

Az alábbi táblázat a Delta Lake-funkciókhoz szükséges minimális protokollverziókat mutatja be.

Feljegyzés

Ha csak a Databricks Runtime kompatibilitásával foglalkozik, tekintse meg, hogy a Delta Lake mely funkciói igényelnek Databricks Runtime-frissítéseket? A Delta Sharing csak olyan funkciókkal támogatja a táblázatok olvasását, amelyekhez szükség van minReaderVersion = 1rá.

Szolgáltatás minWriterVersion minReaderVersion Dokumentáció
Alapszintű funkciók 2 0 Mi az a Delta Lake?
CHECK Korlátok 3 0 CHECK-korlátozás beállítása az Azure Databricksben
Adatcsatorna módosítása 4 0 Delta Lake change data feed használata az Azure Databricksben
Létrehozott oszlopok 4 0 Delta Lake által létrehozott oszlopok
Oszlopleképezés 5 2 Oszlopok átnevezése és elvetése Delta Lake-oszlopleképezéssel
Identitásoszlopok 6 2 Identitásoszlopok használata a Delta Lake-ben
Táblázatfunkciók olvasása 7 0 Mik azok a táblafunkciók?
Táblázatfunkciók írása 7 3 Mik azok a táblafunkciók?
Törlési vektorok 7 3 Mik azok a törlési vektorok?
IdőbélyegNTZ 7 3 TIMESTAMP_NTZ típusa
Folyékony fürtözés 7 3 Folyékony fürtözés használata Delta-táblákhoz
Egységes 7 2 Delta-táblák olvasása Iceberg-ügyfelekkel az UniForm használatával