Gestructureerde streamingstatusinformatie lezen
In Databricks Runtime 14.3 LTS en hoger op berekeningen die zijn geconfigureerd met toegewezen of geen isolatietoegangsmodus, kunt u DataFrame-bewerkingen of SQL-tabelwaardefuncties gebruiken om query's uit te voeren op gestructureerde streamingstatusgegevens en metagegevens. U kunt deze functies gebruiken om statusinformatie te bekijken voor stateful query's met structured streaming. Dit kan handig zijn voor bewaking en foutopsporing.
U moet leestoegang hebben tot het controlepuntpad voor een streamingquery om statusgegevens of metagegevens op te vragen. De functies die in dit artikel worden beschreven, bieden alleen-lezentoegang tot statusgegevens en metagegevens. U kunt alleen batchleessemantiek gebruiken om staatinformatie op te vragen.
Notitie
U kunt geen query's uitvoeren op statusinformatie voor DLT-pijplijnen, streamingtabellen of gerealiseerde weergaven. U kunt geen query's uitvoeren op statusgegevens met behulp van serverloze berekeningen of berekeningen die zijn geconfigureerd met de standaardtoegangsmodus.
Opslag voor gestructureerde streamingstatus lezen
U kunt statusopslaginformatie lezen voor Structured Streaming-query's die worden uitgevoerd in elke ondersteunde Databricks Runtime. Gebruik de volgende syntaxis:
Python
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SQL
SELECT * FROM read_statestore('/checkpoint/path')
De volgende optionele configuraties worden ondersteund:
Optie | Type | Standaardwaarde | Beschrijving |
---|---|---|---|
batchId |
Lang | meest recente batch-id | Vertegenwoordigt de doelbatch van waaruit gelezen moet worden. Geef deze optie op om statusinformatie op te vragen voor een eerdere status van de query. De batch moet worden vastgelegd, maar nog niet worden opgeschoond. |
operatorId |
Lang | 0 | Vertegenwoordigt de doeloperator waaruit moet worden gelezen. Deze optie wordt gebruikt wanneer de query meerdere stateful operators gebruikt. |
storeName |
String | "STANDAARD" | Vertegenwoordigt de naam van de doelstatusopslag waarnaartoe gelezen moet worden. Deze optie wordt gebruikt wanneer de stateful operator meerdere exemplaren van de statusopslag gebruikt. Ofwel storeName of joinSide moet worden opgegeven voor een stream-steam join, maar niet beide. |
joinSide |
Tekenreeks ("links" of "rechts") | Vertegenwoordigt de doelzijde waaruit moet worden gelezen. Deze optie wordt gebruikt wanneer gebruikers de status van stream-stream join willen lezen. |
De geretourneerde gegevens hebben het volgende schema:
Kolom | Type | Beschrijving |
---|---|---|
key |
Struct (verder type afgeleid van de statussleutel) | De sleutel voor een toestand-gebaseerd operatorrecord in het statuscontrolepunt. |
value |
Struct (verder type afgeleid van de statuswaarde) | De waarde voor een stateful operatorrecord in het statuscontrolepunt. |
partition_id |
Geheel getal | De partitie van het toestandcontrolepunt dat het stateful operatorrecord bevat. |
Metagegevens van gestructureerde streamingstatus lezen
Belangrijk
U moet streamingquery's uitvoeren op Databricks Runtime 14.2 of hoger om statusmetagegevens vast te leggen. Statusmetagegevensbestanden breken de compatibiliteit met eerdere versies niet af. Als u ervoor kiest om een streamingquery uit te voeren op Databricks Runtime 14.1 of lager, worden bestaande metagegevensbestanden met status genegeerd en worden er geen nieuwe metagegevensbestanden voor de status geschreven.
U kunt statusmetagegevens lezen voor structured streaming-query's die worden uitgevoerd op Databricks Runtime 14.2 of hoger. Gebruik de volgende syntaxis:
Python
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SQL
SELECT * FROM read_state_metadata('/checkpoint/path')
De geretourneerde gegevens hebben het volgende schema:
Kolom | Soort | Beschrijving |
---|---|---|
operatorId |
Geheel getal | Het integer-ID van de stateful streaming-operator. |
operatorName |
Geheel getal | Naam van de stateful streaming-operator. |
stateStoreName |
String | Naam van de statusopslag van de operator. |
numPartitions |
Geheel getal | Aantal partities van de toestandwinkel. |
minBatchId |
Lang | De minimale batch-id die beschikbaar is voor het opvragen van statusinformatie. |
maxBatchId |
Lang | De maximale batch-id die beschikbaar is voor het opvragen van de staat. |
Notitie
De batch-id-waarden van minBatchId
en maxBatchId
geven de status weer op het moment dat het controlepunt is geschreven. Oude batches worden automatisch opgeschoond met microbatchuitvoering, dus de hier opgegeven waarde is niet gegarandeerd nog steeds beschikbaar.