Läsa information om status för strukturerad direktuppspelning
I Databricks Runtime 14.3 LTS och senare, på beräkningsinstanser som konfigurerats med dedikerat eller utan isoleringsåtkomstläge, kan du använda DataFrame-operationer eller SQL-funktioner för tabellvärden för att fråga om Strukturerad Streaming-tillståndsdata och metadata. Du kan använda dessa funktioner för att observera tillståndsinformation för tillståndskänsliga frågor för strukturerad direktuppspelning, vilket kan vara användbart för övervakning och felsökning.
Du måste ha läsbehörighet till kontrollpunktssökvägen för en strömmande fråga för att kunna fråga tillståndsdata eller metadata. Funktionerna som beskrivs i den här artikeln ger skrivskyddad åtkomst till tillståndsdata och metadata. Du kan bara använda semantik för batchläsning för att hämta tillståndsinformation.
Kommentar
Du kan inte fråga om statusinformation för DLT-pipelines, strömmande tabeller eller materialiserade vyer. Du kan inte fråga statusinformation med hjälp av serverlös beräkning eller beräkning som har konfigurerats med standardåtkomstläge.
Läs strukturerad strömningstillståndsbutik
Du kan läsa information om state store för strukturerade strömningsfrågor som körs i vilken som helst av de Databricks Runtime-versioner som stöds. Använd följande syntax:
Python
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SQL
SELECT * FROM read_statestore('/checkpoint/path')
Följande valfria konfigurationer stöds:
Alternativ | Typ | Standardvärde | beskrivning |
---|---|---|---|
batchId |
Lång | senaste batch-ID | Representerar målbatchen som ska läsas från. Ange det här alternativet för att fråga tillståndsinformation om ett tidigare tillstånd för frågan. Batchen måste kommitteras men inte rensas ännu. |
operatorId |
Lång | 0 | Representerar måloperatorn som ska läsas från. Det här alternativet används när frågan använder flera tillståndskänsliga operatorer. |
storeName |
Sträng | FÖRVAL | Representerar namnet på mållagringen som ska läsas från. Det här alternativet används när den tillståndskänsliga operatorn använder flera tillståndslagringsinstanser. Antingen storeName eller joinSide måste anges för en stream-steam-koppling, men inte båda. |
joinSide |
Sträng ("vänster" eller "höger") | Representerar målsidan som ska läsas från. Det här alternativet används när användare vill läsa tillståndet från stream-stream-anslutning. |
De returnerade data har följande schema:
Kolumn | Typ | beskrivning |
---|---|---|
key |
Struct (ytterligare typ härledd från statnyckeln) | Nyckeln till en tillståndsbevarande operatörspost i tillståndskontrollpunkten. |
value |
Struct (en ytterligare typ härledd från tillståndsvärdet) | Värdet för en tillståndskänslig operatorpost i en kontrollpunkt för systemtillståndet. |
partition_id |
Integer | Partitionen för kontrollpunkten för tillstånd som innehåller operatörsposten med tillstånd. |
Läsa metadata för strukturerat direktuppspelningstillstånd
Viktigt!
Du måste köra strömmande frågor på Databricks Runtime 14.2 eller senare för att registrera tillståndsmetadata. Tillståndsmetadatafiler bryter inte bakåtkompatibiliteten. Om du väljer att köra en direktuppspelningsfråga på Databricks Runtime 14.1 eller senare ignoreras befintliga tillståndsmetadatafiler och inga nya tillståndsmetadatafiler skrivs.
Du kan läsa statusmetadatainformation för strukturerade direktuppspelningsfrågor som körs på Databricks Runtime 14.2 eller senare. Använd följande syntax:
Python
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SQL
SELECT * FROM read_state_metadata('/checkpoint/path')
De returnerade data har följande schema:
Kolumn | Typ | beskrivning |
---|---|---|
operatorId |
Integer | Heltals-ID för den tillståndskänsliga strömningsoperatorn. |
operatorName |
Integer | Namnet på den tillståndskänsliga strömningsoperatorn. |
stateStoreName |
Sträng | Operatorns tillståndslagernamn. |
numPartitions |
Integer | Antal partitioner i statuslagret. |
minBatchId |
Lång | Minsta batch-ID som är tillgängligt för frågestatus. |
maxBatchId |
Lång | Det maximala batch-ID som är tillgängligt för frågetillstånd. |
Kommentar
Batch-ID-värdena som tillhandahålls av minBatchId
och maxBatchId
återspeglar tillståndet när kontrollpunkten skrevs. Gamla batchar rensas automatiskt med micro-batch-körning, så värdet som anges här är inte garanterat fortfarande tillgängligt.