Поделиться через


Чтение сведений о состоянии структурированной потоковой передачи

Важно!

Эта функция предоставляется в режиме общедоступной предварительной версии.

В Databricks Runtime 14.3 LTS и более поздних версиях можно использовать операции DataFrame или функции табличного значения SQL для запроса данных о состоянии структурированной потоковой передачи и метаданных. Эти функции можно использовать для наблюдения за сведениями о состоянии для запросов с отслеживанием состояния структурированной потоковой передачи, которые могут быть полезны для мониторинга и отладки.

Необходимо иметь доступ на чтение к пути проверка point для потокового запроса, чтобы запрашивать данные о состоянии или метаданные. Функции, описанные в этой статье, предоставляют доступ только для чтения к данным состояния и метаданным. Для запроса сведений о состоянии можно использовать только пакетную семантику чтения.

Примечание.

Невозможно запрашивать сведения о состоянии конвейеров Delta Live Tables, потоковых таблиц или материализованных представлений.

Чтение хранилища состояний структурированной потоковой передачи

Вы можете считывать сведения о хранилище состояний для запросов структурированной потоковой передачи, выполняемых в любой поддерживаемой среде выполнения Databricks. Используйте следующий синтаксис:

Python

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

SQL

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

Поддерживаются следующие необязательные конфигурации:

Параметр Тип Default value
batchId Long последний идентификатор пакетной службы
operatorId Long 0
storeName Строка "DEFAULT"
joinSide Строка ("слева" или "справа") Представляет целевую сторону для чтения. Этот параметр используется, когда пользователи хотят считывать состояние из соединения stream-stream.

Возвращенные данные имеют следующую схему:

Column Type Описание
key Структура (дополнительный тип, производный от ключа состояния) Ключ записи оператора с отслеживанием состояния в точке состояния проверка.
value Структура (дополнительный тип, производный от значения состояния) Значение записи оператора с отслеживанием состояния в точке проверка состояния.
partition_id Целое Секция состояния проверка точка, содержащая запись оператора с отслеживанием состояния.

Чтение метаданных состояния структурированной потоковой передачи

Важно!

Для записи метаданных состояния необходимо выполнить потоковые запросы в Databricks Runtime 14.2 или более поздней версии. Файлы метаданных состояния не нарушают обратную совместимость. Если вы решили выполнить потоковый запрос в Databricks Runtime 14.1 или ниже, существующие файлы метаданных состояния игнорируются и новые файлы метаданных состояния не записываются.

Вы можете считывать сведения о метаданных состояния для запросов структурированной потоковой передачи, выполняемых в Databricks Runtime 14.2 или более поздней версии. Используйте следующий синтаксис:

Python

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

SQL

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

Возвращенные данные имеют следующую схему:

Column Type Описание
operatorId Целое Целочисленный идентификатор оператора потоковой передачи с отслеживанием состояния.
operatorName Целое Имя оператора потоковой передачи с отслеживанием состояния.
stateStoreName Строка Имя хранилища состояний оператора.
numPartitions Целое Количество секций хранилища состояний.
minBatchId Long Минимальный идентификатор пакета, доступный для запроса состояния.
maxBatchId Long Максимальный идентификатор пакета, доступный для запроса состояния.

Примечание.

Значения идентификатора пакета, предоставленные minBatchId и maxBatchId отражают состояние во время записи проверка point. Старые пакеты автоматически очищаются с помощью микро-пакетного выполнения, поэтому указанное здесь значение не гарантируется по-прежнему доступно.