Udostępnij za pośrednictwem


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.