Sdílet prostřednictvím


Čtení informací o stavu strukturovaného streamování

Důležité

Tato funkce je ve verzi Public Preview.

Ve verzi Databricks Runtime 14.3 LTS a vyšší můžete k dotazování dat a metadat stavu strukturovaného streamování použít operace datového rámce nebo funkce tabulek SQL. Pomocí těchto funkcí můžete sledovat informace o stavu stavových dotazů strukturovaného streamování, které můžou být užitečné pro monitorování a ladění.

Abyste mohli dotazovat stavová data nebo metadata, musíte mít přístup ke čtení cesty ke kontrolnímu bodu dotazu streamování. Funkce popsané v tomto článku poskytují přístup jen pro čtení k datům a metadatům stavu. K dotazování informací o stavu můžete použít pouze sémantiku dávkového čtení.

Poznámka:

Nelze dotazovat informace o stavu pro kanály Delta Live Tables, streamované tabulky nebo materializovaná zobrazení.

Čtení úložiště stavu strukturovaného streamování

Informace o úložišti stavu pro dotazy strukturovaného streamování spuštěné v jakémkoli podporovaném modulu Databricks Runtime můžete číst. Použijte následující syntax:

Python

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

SQL

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

Podporují se následující volitelné konfigurace:

Možnost Type Default value
batchId Dlouhé celé číslo nejnovější ID dávky
operatorId Dlouhé celé číslo 0
storeName String "VÝCHOZÍ"
joinSide Řetězec ("vlevo" nebo "vpravo") Představuje cílovou stranu, ze které se má číst. Tato možnost se používá, když uživatelé chtějí číst stav z připojení streamu.

Vrácená data mají následující schéma:

Column Type Popis
key Struktura (další typ odvozený ze stavového klíče) Klíč záznamu stavového operátora v kontrolním bodu stavu.
value Struktura (další typ odvozený z hodnoty stavu) Hodnota záznamu stavového operátoru v kontrolním bodu stavu.
partition_id Celé číslo Oddíl kontrolního bodu stavu, který obsahuje záznam stavového operátoru.

Čtení metadat stavu strukturovaného streamování

Důležité

Pokud chcete zaznamenávat metadata stavu, musíte spouštět streamované dotazy na Databricks Runtime 14.2 nebo vyšší. Soubory metadat stavu neporušují zpětnou kompatibilitu. Pokud se rozhodnete spustit streamovací dotaz na Databricks Runtime 14.1 nebo nižší, existující soubory metadat stavu se ignorují a nebudou zapsány žádné nové soubory metadat stavu.

Můžete číst informace o metadatech stavu pro dotazy strukturovaného streamování spuštěné ve službě Databricks Runtime 14.2 nebo vyšší. Použijte následující syntax:

Python

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

SQL

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

Vrácená data mají následující schéma:

Column Type Popis
operatorId Celé číslo Celočíselné ID stavového operátoru streamování.
operatorName Celé číslo Název stavového operátoru streamování
stateStoreName String Název úložiště stavu operátora.
numPartitions Celé číslo Počet oddílů úložiště stavů
minBatchId Dlouhé celé číslo Minimální ID dávky, které je k dispozici pro dotazování stavu.
maxBatchId Dlouhé celé číslo Maximální id dávky, které je k dispozici pro dotazování stavu.

Poznámka:

Hodnoty ID dávky poskytnuté minBatchId a maxBatchId odrážejí stav v okamžiku zápisu kontrolního bodu. Staré dávky se automaticky vyčistí pomocí provádění mikrodávkové dávky, takže zadaná hodnota není zaručená, že bude stále dostupná.