Odczytywanie informacji o stanie przesyłania strumieniowego ze strukturą
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W środowisku Databricks Runtime 14.3 LTS lub nowszym można użyć operacji ramki danych lub funkcji wartości tabeli SQL do wykonywania zapytań dotyczących danych i metadanych stanu przesyłania strumieniowego ze strukturą. Za pomocą tych funkcji można obserwować informacje o stanie zapytań stanowych przesyłania strumieniowego ze strukturą, co może być przydatne do monitorowania i debugowania.
Aby wysyłać zapytania o stan lub metadane, musisz mieć dostęp do odczytu do ścieżki punktu kontrolnego dla zapytania dotyczącego zapytania dotyczącego danych lub metadanych. Funkcje opisane w tym artykule zapewniają dostęp tylko do odczytu do danych stanu i metadanych. Semantyka odczytu wsadowego umożliwia wykonywanie zapytań dotyczących informacji o stanie.
Uwaga
Nie można wykonywać zapytań dotyczących informacji o stanie potoków tabel delta live, tabel przesyłania strumieniowego ani zmaterializowanych widoków.
Odczyt magazynu stanów przesyłania strumieniowego ze strukturą
Informacje o magazynie stanów dla zapytań przesyłania strumieniowego ze strukturą wykonywane w dowolnym obsługiwanym środowisku Databricks Runtime. Użyj następującej składni:
Python
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SQL
SELECT * FROM read_statestore('/checkpoint/path')
Obsługiwane są następujące opcjonalne konfiguracje:
Opcja | Typ | Domyślna wartość | opis |
---|---|---|---|
batchId |
Długi | najnowszy identyfikator partii | Reprezentuje partię docelową do odczytu. Określ tę opcję, aby wysyłać zapytania o informacje o stanie dla wcześniejszego stanu zapytania. Partia musi zostać zatwierdzona, ale nie została jeszcze wyczyszczona. |
operatorId |
Długi | 0 | Reprezentuje operator docelowy do odczytu. Ta opcja jest używana, gdy zapytanie używa wielu operatorów stanowych. |
storeName |
String | "DEFAULT" | Reprezentuje docelową nazwę magazynu stanów do odczytania. Ta opcja jest używana, gdy operator stanowy używa wielu wystąpień magazynu stanów. joinSide Albo storeName musi być określony dla sprzężenia strumieniowo-parowego, ale nie obu. |
joinSide |
Ciąg ("lewy" lub "po prawej") | Reprezentuje stronę docelową do odczytania. Ta opcja jest używana, gdy użytkownicy chcą odczytać stan ze sprzężenia strumienia strumienia. |
Zwrócone dane mają następujący schemat:
Kolumna | Type | Opis |
---|---|---|
key |
Struktura (dalszy typ pochodzący z klucza stanu) | Klucz rekordu operatora stanowego w punkcie kontrolnym stanu. |
value |
Struktura (dalszy typ pochodzący z wartości stanu) | Wartość rekordu operatora stanowego w punkcie kontrolnym stanu. |
partition_id |
Integer | Partycja punktu kontrolnego stanu, który zawiera rekord operatora stanowego. |
Odczytywanie metadanych stanu przesyłania strumieniowego ze strukturą
Ważne
Aby rejestrować metadane stanu, należy uruchamiać zapytania przesyłane strumieniowo w środowisku Databricks Runtime 14.2 lub nowszym. Pliki metadanych stanu nie przerywają zgodności z poprzednimi wersjami. Jeśli zdecydujesz się uruchomić zapytanie przesyłania strumieniowego w środowisku Databricks Runtime 14.1 lub nowszym, istniejące pliki metadanych stanu są ignorowane i nie są zapisywane żadne nowe pliki metadanych stanu.
Informacje o metadanych stanu dla zapytań przesyłania strumieniowego ze strukturą są uruchamiane w środowisku Databricks Runtime 14.2 lub nowszym. Użyj następującej składni:
Python
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SQL
SELECT * FROM read_state_metadata('/checkpoint/path')
Zwrócone dane mają następujący schemat:
Kolumna | Type | Opis |
---|---|---|
operatorId |
Integer | Identyfikator liczby całkowitej operatora przesyłania strumieniowego stanowego. |
operatorName |
Integer | Nazwa stanowego operatora przesyłania strumieniowego. |
stateStoreName |
String | Nazwa magazynu stanów operatora. |
numPartitions |
Integer | Liczba partycji magazynu stanów. |
minBatchId |
Długi | Minimalny identyfikator partii dostępny do wykonywania zapytań o stan. |
maxBatchId |
Długi | Maksymalny identyfikator partii dostępny dla stanu wykonywania zapytań. |
Uwaga
Wartości identyfikatora partii dostarczone przez minBatchId
i maxBatchId
odzwierciedlają stan w momencie zapisania punktu kontrolnego. Stare partie są czyszczone automatycznie przy użyciu wykonywania mikrosadowego, więc podana tutaj wartość nie jest gwarantowana, aby nadal być dostępna.