Freigeben über


Lesen von strukturierten Streamingzustandsinformationen

Wichtig

Dieses Feature befindet sich in der Public Preview.

In Databricks Runtime 14.3 LTS und höher können Sie DataFrame-Vorgänge oder SQL-Tabellenwertfunktionen verwenden, um Zustandsdaten und Metadaten für strukturierte Streams abzufragen. Sie können diese Funktionen verwenden, um Statusinformationen für Zustandsabfragen strukturierter Streams zu beobachten, die für die Überwachung und das Debuggen nützlich sein können.

Sie benötigen Lesezugriff auf den Prüfpunktpfad für eine Streamingabfrage, um Zustandsdaten oder Metadaten abzufragen. Die in diesem Artikel beschriebenen Funktionen bieten schreibgeschützten Zugriff auf Zustandsdaten und Metadaten. Sie können nur die Batchlesesemantik zum Abfragen von Zustandsinformationen verwenden.

Hinweis

Sie können keine Zustandsinformationen für Delta Live Tables-Pipelines, Streamingtabellen oder materialisierte Ansichten abfragen.

Lesen von strukturiertem Streamingzustandsspeicher

Sie können Zustandsspeicherinformationen für strukturierte Streaming-Abfragen lesen, die in unterstützten Databricks Runtime ausgeführt werden. Verwenden Sie die folgende Syntax:

Python

df = (spark.read
  .format("statestore")
  .load("/checkpoint/path"))

SQL

SELECT * FROM read_statestore('/checkpoint/path')

Die folgenden optionalen Konfigurationen werden unterstützt:

Option Typ Standardwert Beschreibung
batchId Long aktuellste Batch ID Stellt den Zielbatch dar, aus dem gelesen werden soll. Geben Sie diese Option an, um Statusinformationen für einen früheren Status der Abfrage abzufragen. Der Batch sollte committet, aber noch nicht bereinigt werden.
operatorId Long 0 Stellt den Zieloperator dar, aus dem gelesen werden soll. Diese Option wird verwendet, wenn die Abfrage mehrere zustandsbehaftete Operatoren verwendet.
storeName String "STANDARD" Stellt den Namen des Ziel-Zustandsspeichers dar, aus dem gelesen werden soll. Diese Option wird verwendet, wenn der zustandsbehaftete Operator mehrere Zustandsspeicherinstanzen verwendet. Für einen Stream-Steam-Join muss entweder storeName oder joinSide angegeben werden, aber nicht beide.
joinSide String („links“ oder „rechts“) Stellt die Zielseite dar, aus der gelesen werden soll. Diese Option wird verwendet, wenn Benutzer*innen den Status aus der Stream-Stream-Verknüpfung lesen möchten.

Die zurückgegebenen Daten haben das folgende Schema:

Spalte Type Beschreibung
key Struct (weiterer Typ, der vom Zustandsschlüssel abgeleitet wurde) Der Schlüssel für einen zustandsbehafteten Operatordatensatz im Zustandsprüfpunkt.
value Struct (weiterer Typ, der vom Zustandswert abgeleitet wurde) Der Wert für einen zustandsbehafteten Operatordatensatz im Zustandsprüfpunkt.
partition_id Integer Die Partition des Zustandsprüfpunkts, die den Datensatz des zustandsbehafteten Operators enthält.

Lesen von strukturierten Streamingzustandsmetadaten

Wichtig

Sie müssen Streamingabfragen auf Databricks Runtime 14.2 oder höher ausführen, um Zustandsmetadaten aufzuzeichnen. Zustandsmetadatendateien unterbrechen die Abwärtskompatibilität nicht. Wenn Sie eine Streamingabfrage auf Databricks Runtime 14.1 oder niedriger ausführen, werden vorhandene Zustandsmetadatendateien ignoriert und es werden keine neuen Zustandsmetadatendateien geschrieben.

Sie können Zustandsmetadateninformationen für strukturierte Streamingabfragen lesen, die auf Databricks Runtime 14.2 oder höher ausgeführt werden. Verwenden Sie die folgende Syntax:

Python

df = (spark.read
  .format("state-metadata")
  .load("<checkpointLocation>"))

SQL

SELECT * FROM read_state_metadata('/checkpoint/path')

Die zurückgegebenen Daten haben das folgende Schema:

Spalte Type Beschreibung
operatorId Integer Die ganzzahlige ID des zustandsbehafteten Streamingoperators.
operatorName Integer Name des zustandsbehafteten Streamingoperators.
stateStoreName String Name des Zustandsspeichers des Operators.
numPartitions Integer Anzahl der Partitionen des Zustandsspeichers.
minBatchId Long Die niedrigste Batch-ID, die für den Abfragezustand verfügbar ist.
maxBatchId Long Die höchste Batch-ID, die für den Abfragezustand verfügbar ist.

Hinweis

Die von minBatchId und maxBatchId bereitgestellten Batch-ID-Werte spiegeln den Zustand zum Zeitpunkt wider, zu dem der Prüfpunkt erstellt wurde. Alte Batches werden bei der Ausführung von Mikrobatches automatisch bereinigt, so dass nicht garantiert werden kann, dass der hier angegebene Wert noch verfügbar ist.