Läsa information om status för strukturerad direktuppspelning
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
I Databricks Runtime 14.3 LTS och senare kan du använda DataFrame-åtgärder eller SQL-tabellvärdefunktioner för att köra frågor mot data och metadata för structured Streaming-tillstånd. 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 batchläsningssemantik för att fråga tillståndsinformation.
Kommentar
Du kan inte fråga tillståndsinformation för Delta Live Tables-pipelines, strömmande tabeller eller materialiserade vyer.
Read Structured Streaming State Store
Du kan läsa information om tillståndslager för strukturerade strömningsfrågor som körs i databricks-körning 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 | Default value |
---|---|---|
batchId |
Long | senaste batch-ID |
operatorId |
Long | 0 |
storeName |
String | "STANDARD" |
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:
Column | Type | Beskrivning |
---|---|---|
key |
Struct (ytterligare typ härledd från tillståndsnyckeln) | Nyckeln för en tillståndskänslig operatörspost i tillståndskontrollpunkten. |
value |
Struct (ytterligare typ härledd från tillståndsvärdet) | Värdet för en tillståndskänslig operatorpost i tillståndskontrollpunkten. |
partition_id |
Integer | Partitionen för tillståndskontrollpunkten som innehåller den tillståndskänsliga operatorposten. |
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:
Column | Type | Beskrivning |
---|---|---|
operatorId |
Integer | Heltals-ID för den tillståndskänsliga strömningsoperatorn. |
operatorName |
Integer | Namnet på den tillståndskänsliga strömningsoperatorn. |
stateStoreName |
String | Namnet på operatorns tillståndslager. |
numPartitions |
Integer | Antal partitioner i tillståndsarkivet. |
minBatchId |
Long | Det minsta batch-ID som är tillgängligt för frågetillstånd. |
maxBatchId |
Long | 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.