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


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.

Megjegyzés

Az Azure Databricksben eltávolíthatja deletionVectors, v2Checkpoint, columnMapping, typeWidening-previewés collations-preview. Lásd Delta táblázat törlési funkciók.

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ódszerekkel kapcsolatban tekintse meg a strukturált streamelés gyártási 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 az előre irányuló kompatibilitást. A funkciók egyes táblák esetében engedélyezhetők. Ez a táblázat az Azure Databricks által támogatott legalacsonyabb Databricks Runtime-verziót sorolja fel.

Funkció Databricks Runtime verzió vagy újabb szükséges Dokumentáció
CHECK Korlátok Databricks Runtime 9.1 LTS Egy 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
Oszlopok leképezése Databricks Runtime 10.4 LTS Oszlopok átnevezése és törlése a Delta Lake oszloptérképezéssel
Azonosító oszlopok Databricks Runtime 10.4 LTS Identitásoszlopok használata a Delta Lake-ben
Táblázati funkciók Databricks Runtime 12.2 LTS Mik azok a táblafunkciók?
Törlési vektorok Databricks Runtime 12.2 LTS Mik azok a törlési vektorok?
IdőbélyegNTZ Databricks Runtime 13.3 LTS TIMESTAMP_NTZ típus
Egyenruha Databricks Runtime 13.3 LTS Delta-táblák olvasása Iceberg-ügyfelekkel
Folyékony fürtözés Databricks Runtime 13.3 LTS Folyékony klaszterezés használata Delta-táblákhoz
Sorkövetés Databricks Runtime 14.1 Sorkövetés használata Delta-táblákhoz
Típusszűkítés Databricks Runtime 15.2 Típus kiterjesztése
Változat Databricks Runtime 15.3 Változattámogatás a Delta Lake-ben
Összehasonlítási szabályok Databricks Runtime 16.1 Összehasonlítási sorrend támogatása a Delta Lake-hez

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

Feljegyzés

A DLT é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 DLT kiadási megjegyzéseit, valamint a kiadás frissítési folyamatát és a Databricks SQL kiadá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 jelenlegi és jövőbeli gyártási eszközei támogatják-e a Delta Lake táblákat az új protokollverzióval.

Egyes funkciókhoz protokoll-leminősítések érhetők el. Lásd Delta táblázat törlési funkciók.

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.

Protokoll írása

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.

Például a CHECK kényszerek támogatása egy írási protokoll funkció: csak az írási alkalmazásoknak kell tudniuk a CHECK kényszerekről, é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 nem javasolja a minReaderVersion és minWriterVersion tábla tulajdonságainak módosítását. 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 Delta táblázat törlési funkciók.

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. Lásd: Delta Lake-tábla részleteinek áttekintése a részletesleírásával.

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á.

Funkció minWriterVersion minReaderVersion Dokumentáció
Alapszintű funkciók 2 1 Mi az a Delta Lake?
CHECK Korlátok 3 1 Korlátozás CHECK beállítása az Azure Databricksben
Adatcsatorna módosítása 4 1 Az Azure Databricksben használja a Delta Lake változásadat-hírcsatornát
Létrehozott oszlopok 4 1 Delta Lake által létrehozott oszlopok
Oszlopok leképezése 5 2 Oszlopok átnevezése és törlése a Delta Lake oszlopleképezéssel
Azonosító oszlopok 6 2 Identitásoszlopok használata a Delta Lake-ben
A táblázat jellemzői áttekinthetők 7 1 Mik azok a táblázatfunkciók?
Táblázat jellemzők írása 7 3 Mik azok a táblafunkciók?
Sorkövetés 7 1 Sorkövetés használata Delta-táblákhoz
Törlési vektorok 7 3 Mik azok a törlési vektorok?
IdőbélyegNTZ 7 3 TIMESTAMP_NTZ típus
Folyékony fürtözés 7 3 Liquid clustering használata Delta-táblákhoz
UniForm 7 2 Delta-táblák olvasása Iceberg-ügyfelekkel
Típusszűkítés 7 3 Típusszűkítés
Változat 7 3 Változattámogatás a Delta Lake-ben
Összehasonlítási szabályok 7 3 Összehasonlítási sorrend támogatása a Delta Lake-hez