Strukturált streamelési állapotinformációk olvasása
A Databricks Runtime 14.3 LTS-ben és a fenti, dedikált vagy elkülönítés nélküli hozzáférési móddal konfigurált számításban DataFrame-műveletek vagy SQL táblaértékfüggvények használatával lekérdezheti a strukturált streamelési állapot adatait és metaadatait. Ezekkel a függvényekkel megfigyelheti a strukturált streamelési állapotalapú lekérdezések állapotadatait, amelyek a figyeléshez és a hibakereséshez hasznosak lehetnek.
Az állapotadatok vagy metaadatok lekérdezéséhez olvasási hozzáféréssel kell rendelkeznie a streamelési lekérdezés ellenőrzőpont-elérési útjának eléréséhez. A cikkben ismertetett függvények írásvédett hozzáférést biztosítanak az állapotadatokhoz és metaadatokhoz. Az állapotinformációk lekérdezéséhez csak kötegelt olvasási szemantikát szabad használni.
Feljegyzés
DLT-folyamatok, streamelési táblák vagy materializált nézetek állapotadatai nem kérdezhetők le. Az állapotadatok nem kérdezhetők le kiszolgáló nélküli számítással vagy standard hozzáférési móddal konfigurált számítással.
Strukturált streamelési állapottároló olvasása
A támogatott Databricks-futtatókörnyezetekben végrehajtott strukturált streamelési lekérdezések állapottárolási információit olvashatja. Alkalmazza a következő szintaxist:
Python
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SQL
SELECT * FROM read_statestore('/checkpoint/path')
A következő választható konfigurációk támogatottak:
Lehetőség | Típus | Alapértelmezett érték | Leírás |
---|---|---|---|
batchId |
Hosszú | legújabb kötegazonosító | Azt a célkötetet jelöli, amelyből olvasni kíván. Ezzel a beállítással lekérdezheti a lekérdezés egy korábbi állapotának állapotadatait. A tételt véglegesíteni kell, de még nem szabad megtisztítani. |
operatorId |
Hosszú | 0 | Azt a céloperátort jelöli, amelyből olvasni szeretne. Ez a beállítás akkor használatos, ha a lekérdezés több állapotalapú operátort használ. |
storeName |
Sztring | "ALAPÉRTELMEZETT" | A célállapot-tároló nevét jelöli, amelyből olvasni szeretne. Ez a beállítás akkor használható, ha az állapotalapú operátor több állapottároló-példányt használ. A stream-steam illesztéshez storeName vagy joinSide megadása szükséges, de nem mindkettő. |
joinSide |
String ("balra" vagy "jobbra") | A céloldalt jelöli, amelyről olvasni szeretne. Ez a beállítás akkor használható, ha a felhasználók a stream-stream illesztésből szeretnék olvasni az állapotot. |
A visszaadott adatok sémája a következő:
Oszlop | Típus | Leírás |
---|---|---|
key |
Struct (az állapotkulcsból származtatott további típus) | Az állapotalapú operátorrekord kulcsa az állapot-ellenőrzőpontban. |
value |
Struct (az állapotértékből származtatott további típus) | Az állapotalapú operátorrekord értéke az állapot-ellenőrzőpontban. |
partition_id |
Egész szám | Az állapotalapú operátorrekordot tartalmazó állapot-ellenőrzőpont partíciója. |
Strukturált streamelési állapot metaadatainak olvasása
Fontos
Az állapot metaadatainak rögzítéséhez streamelési lekérdezéseket kell futtatnia a Databricks Runtime 14.2-ben vagy újabb verziójában. Az állapot metaadat-fájljai nem szakítják meg a visszamenőleges kompatibilitást. Ha streamelési lekérdezést futtat a Databricks Runtime 14.1 vagy újabb verzióján, a rendszer figyelmen kívül hagyja a meglévő állapot metaadatfájljait, és nem ír új állapot metaadatfájlokat.
A Databricks Runtime 14.2 vagy újabb verzióján futó strukturált streamelési lekérdezések állapot metaadatait olvashatja. Alkalmazza a következő szintaxist:
Python
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SQL
SELECT * FROM read_state_metadata('/checkpoint/path')
A visszaadott adatok sémája a következő:
Oszlop | Típus | Leírás |
---|---|---|
operatorId |
Egész | Az állapotalapú streamszolgáltató egész számazonosítója. |
operatorName |
Egész | Az állapotalapú streamelő operátor neve. |
stateStoreName |
Sztring | Az operátor állapottárolójának neve. |
numPartitions |
Egész | Az állapottároló partícióinak száma. |
minBatchId |
Hosszú | Az állapot lekérdezéséhez elérhető minimális kötegazonosító. |
maxBatchId |
Hosszú | Az állapot lekérdezéséhez elérhető maximális kötegazonosító. |
Feljegyzés
A minBatchId
és maxBatchId
által megadott kötegazonosító értékek az ellenőrzőpont megírásának idejének állapotát tükrözik. A régi kötegek automatikusan törlődnek a mikroköteg végrehajtásával, így az itt megadott érték nem garantált, hogy továbbra is elérhető marad.