ÉLŐ séma (örökölt)
Ez a cikk áttekintést nyújt a LIVE
virtuális séma örökölt szintaxisáról és viselkedéséről.
A LIVE
virtuális séma a DLT-folyamatok örökölt funkciója, és elavultnak minősül. Továbbra is használhat régi közzétételi módot és a LIVE
virtuális sémát az ezzel a móddal létrehozott folyamatokhoz.
Az örökölt LIVE
virtuális séma és az örökölt közzétételi mód támogatása az Azure Databricks egy későbbi verziójában megszűnik.
Jegyzet
Az örökölt közzétételi módú folyamatok a DLT-folyamatbeállítások felhasználói felületének Összegzés mezőjében jelennek meg. Azt is ellenőrizheti, hogy egy folyamat örökölt közzétételi módot használ-e, ha a target
mező a folyamat JSON-specifikációjában van beállítva.
A folyamatkonfigurációs felhasználói felülettel nem hozhat létre új folyamatokat az örökölt közzétételi móddal. Ha új folyamatokat kell üzembe helyeznie örökölt LIVE
szintaxissal, forduljon a Databricks-fiók képviselőjéhez.
Mi a LIVE virtuális séma?
Jegyzet
A LIVE
virtuális sémára már nincs szükség az adathalmaz-függőség elemzéséhez a DLT alapértelmezett közzétételi módjában.
A LIVE
séma egy programozási fogalom a DLT-ben, amely egy virtuális határt határoz meg a folyamatban létrehozott vagy frissített összes adathalmazhoz. A LIVE
séma tervezés szerint nincs közvetlenül a közzétett sémák adatkészleteihez kötve. Ehelyett a LIVE
séma lehetővé teszi a folyamatok logikájának tervezését és futtatását akkor is, ha a felhasználó nem szeretne adathalmazokat közzétenni egy sémában.
Az örökölt közzétételi módú folyamatokban a LIVE
kulcsszóval hivatkozhat az aktuális folyamat más adathalmazaira olvasás céljából, például SELECT * FROM LIVE.bronze_table
. Az új DLT-folyamatok alapértelmezett közzétételi módjában a rendszer figyelmen kívül hagyja ezt a szintaxist, ami azt jelenti, hogy a nem minősített azonosítók az aktuális sémát használják. Lásd: Célkatalógus és sémabeállítása.
Örökölt közzétételi mód csővezetékekhez
A LIVE
virtuális sémát a rendszer a DLT-folyamatok örökölt közzétételi módjával használja. A 2025. február 5. előtt létrehozott összes tábla alapértelmezés szerint az örökölt közzétételi módot használja.
Az alábbi táblázat ismerteti a régi közzétételi módban létrehozott vagy frissített materializált nézetek és streamelő táblák viselkedését a folyamatokban.
Tárolási lehetőség | Tárolási hely vagy katalógus | Célséma | Magatartás |
---|---|---|---|
Hive metaadattár | Nincs megadva | Nincs megadva | Az adathalmaz metaadatai és adatai a DBFS-gyökérben vannak tárolva. A Hive metaadattárban nincsenek adatbázis-objektumok regisztrálva. |
Hive metaadattár | URI vagy fájl elérési útja a felhőalapú objektumtárolóhoz. | Nincs megadva | Az adathalmaz metaadatait és adatait a rendszer a megadott tárolási helyre tárolja. A Hive metaadattárban nincsenek adatbázis-objektumok regisztrálva. |
Hive metaadattár | Nincs megadva | Meglévő vagy új séma a Hive metaadattárban. | Az adathalmaz metaadatai és adatai a DBFS-gyökérben vannak tárolva. A folyamat összes materializált nézete és streamtáblája közzé lesz téve a Hive metaadattár megadott sémájában. |
Hive metaadattár | URI vagy fájl elérési útja a felhőalapú objektumtárolóhoz. | Meglévő vagy új séma a Hive metaadattárban. | Az adathalmaz metaadatait és adatait a rendszer a megadott tárolási helyre tárolja. A folyamat összes materializált nézete és streamtáblája közzé lesz téve a Hive metaadattár megadott sémájában. |
Unity-katalógus | Egy meglévő Unity Catalog-katalógus. | Nincs megadva | Az adathalmaz metaadatai és adatai a célkatalógushoz társított alapértelmezett tárolási helyen vannak tárolva. A Unity-katalógusban nincsenek adatbázis-objektumok regisztrálva. |
Unity-katalógus | Egy meglévő Unity Catalog-katalógus. | Meglévő vagy új séma a Unity Catalogban. | Az adathalmaz metaadatai és adatai a célséma vagy katalógus alapértelmezett tárolási helyén vannak tárolva. A folyamat összes materializált nézete és streamtáblája közzé lesz téve a Unity Catalog megadott sémájában. |
Forráskód frissítése ÉLŐ sémából
Az új alapértelmezett közzétételi módban való futtatásra konfigurált folyamatok csendben figyelmen kívül hagyják a LIVE
sémaszintaxisát. Alapértelmezés szerint az összes táblázatolvasás a folyamatkonfigurációban megadott katalógust és sémát használja.
A legtöbb meglévő folyamat esetében ez a viselkedésváltozás nincs hatással, mivel az örökölt LIVE
virtuális séma viselkedése a folyamatkonfigurációban megadott katalógusba és sémába is irányítja az olvasást.
Fontos
A munkaterület alapértelmezett katalógusát és sémáját használó régebbi kód kódfrissítéseket igényel. Vegye figyelembe a következő materializált nézetdefiníciót:
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data
Örökölt közzétételi módban a raw_data
táblából származó nem minősített olvasás a munkaterület alapértelmezett katalógusát és sémáját használja, például main.default.raw_data
. Az új alapértelmezett csővezeték módban az alapértelmezetten használt katalógus és séma az, amely a folyamatkonfigurációban van beállítva. Annak érdekében, hogy a kód továbbra is a várt módon működjön, frissítse a hivatkozást a tábla teljes azonosítójának használatára, ahogyan az alábbi példában is látható:
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM main.default.raw_data
A Unity Catalog örökölt közzétételi módú folyamatainak eseménynaplójának használata
Fontos
A event_log
TVF az örökölt közzétételi módú folyamatokhoz érhető el, amelyek táblákat tesznek közzé a Unity Catalogban. Az új folyamatok alapértelmezett viselkedése közzéteszi az eseménynaplót a célkatalógusban és a folyamathoz konfigurált sémában. Lásd: Az eseménynapló lekérdezése.
A Hive-metaadattárral konfigurált táblák is különböző eseménynapló-támogatással és -működéssel rendelkeznek. Lásd: Hogyan dolgozzon az eseménynaplóval a Hive metaadattár-folyamatokhoz.
Ha a folyamat régebbi közzétételi móddal teszi közzé a táblákat a Unity Catalogban, a folyamat eseménynaplójának lekéréséhez a event_log
táblaértékelő függvényt kell használnia (TVF). A folyamat eseménynaplóját a folyamatazonosító vagy a táblanév tvF-nek való átadásával kérdezheti le. Például a folyamat eseménynapló-rekordjainak lekérése 04c78631-3dd7-4856-b2a6-7d84e9b2638b
azonosítóval:
SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")
A tábla my_catalog.my_schema.table1
létrehozó vagy tulajdonosa folyamat eseménynapló-rekordjainak lekérése:
SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))
A TVF meghívásához megosztott fürtöt vagy SQL-raktárt kell használnia. Használhat például egy megosztott fürthöz csatolt jegyzetfüzetet, vagy a SQL szerkesztőt, amely a SQL-raktárhoz van csatlakoztatva.
A folyamat eseményeinek lekérdezésének egyszerűsítése érdekében a folyamat tulajdonosa létrehozhat egy nézetet a event_log
TVF-en. Az alábbi példa egy folyamat eseménynaplójának nézetét hozza létre. Ezt a nézetet a jelen cikkben szereplő példaeseménynapló-lekérdezések használják.
Jegyzet
- A
event_log
TVF-et csak a csővezeték tulajdonosa hívhatja meg. - A folyamat vagy lekérdezés
event_log
táblaértékelt függvénye nem használható több folyamat eseménynaplóinak eléréséhez. - A
event_log
táblaértékfüggvényen létrehozott nézet nem osztható meg más felhasználókkal.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");
Cserélje le <pipeline-ID>
a DLT-folyamat egyedi azonosítójával. Az azonosítót a Folyamat részletei panelen találja a DLT felhasználói felületén.
A pipeline lefutásának minden egyes példányát frissítésneknevezik. A legutóbbi frissítéshez gyakran szeretne adatokat kinyerni. Futtassa a következő lekérdezést a legutóbbi frissítés azonosítójának megkereséséhez, és mentse azt latest_update_id
ideiglenes nézetben. Ezt a nézetet az ebben a cikkben szereplő példaeseménynapló-lekérdezések használják:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;