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ść
batchId Długi najnowszy identyfikator partii
operatorId Długi 0
storeName String "DEFAULT"
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.