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


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.