Delen via


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.