Dela via


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.