Compartir a través de


Leer información de estado de flujo estructurado

Importante

Esta característica está en versión preliminar pública.

En Databricks Runtime 14.3 LTS y versiones posteriores, puede usar operaciones DataFrame o funciones de valores de tabla de SQL para consultar metadatos y datos de estado de Structured Streaming. Puede usar estas funciones para observar la información de estado de las consultas con estado de Structured Streaming, lo que puede resultar útil para la supervisión y depuración.

Debe tener acceso de lectura a la ruta de acceso del punto de control para una consulta de streaming para consultar los datos de estado o los metadatos. Las funciones descritas en este artículo proporcionan acceso de solo lectura a los datos de estado y a los metadatos. Solo puede usar la semántica de lectura por lotes para consultar la información de estado.

Nota:

No se puede consultar la información de estado de las canalizaciones de Delta Live Tables, las tablas de streaming ni las vistas materializadas.

Lectura del almacén de estado de Structured Streaming

Puede leer la información del almacén de estado de las consultas de Structured Streaming ejecutadas en cualquier Databricks Runtime compatible. Use la sintaxis siguiente:

Python

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

SQL

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

Se admiten las siguientes configuraciones opcionales:

Opción Tipo Valor predeterminado Descripción
batchId Largo identificador de lote más reciente Representa el lote de destino del que se va a leer. Especifica esta opción para consultar información de estado para un estado anterior de la consulta. El lote debe confirmarse, pero no se debe limpiar todavía.
operatorId Largo 0 Representa el operador de destino del que se va a leer. Esta opción se usa cuando la consulta usa varios operadores con estado.
storeName Cadena "DEFAULT" Representa el nombre del almacén de estado de destino del que se va a leer. Esta opción se usa cuando el operador con estado usa varias instancias de almacén de estado. storeName o joinSide debe especificarse para una combinación de vapor de flujo, pero no para ambas.
joinSide Cadena (“izquierda” o “derecha”) Representa el lado de destino del que se va a leer. Esta opción se usa cuando los usuarios quieren leer el estado de la combinación de transmisión con transmisión.

Los datos devueltos tienen el siguiente esquema:

Columna Type Descripción
key Estructura (tipo adicional derivado de la clave de estado) Clave de un registro de operador con estado en el punto de control de estado.
value Estructura (tipo adicional derivado del valor de estado) El valor de un registro de operador con estado en el punto de control de estado.
partition_id Entero La partición del punto de control de estado que contiene el registro de operador con estado.

Lectura de metadatos de estado de Structured Streaming

Importante

Debe ejecutar consultas de streaming en Databricks Runtime 14.2 o superior para registrar los metadatos de estado. Los archivos de metadatos de estado no interrumpen la compatibilidad con versiones anteriores. Si decide ejecutar una consulta de streaming en Databricks Runtime 14.1 o inferior, se omiten los archivos de metadatos de estado existentes y no se escriben nuevos archivos de metadatos de estado.

Puede leer la información de metadatos de estado de las consultas de Structured Streaming que se ejecutan en Databricks Runtime 14.2 o superior. Use la sintaxis siguiente:

Python

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

SQL

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

Los datos devueltos tienen el siguiente esquema:

Columna Type Descripción
operatorId Entero El identificador entero del operador de streaming con estado.
operatorName Entero Nombre del operador de streaming con estado.
stateStoreName Cadena Nombre del almacén de estado del operador.
numPartitions Entero Número de particiones del almacén de estado.
minBatchId Largo Identificador de lote mínimo disponible para el estado de consulta.
maxBatchId Largo Identificador de lote máximo disponible para el estado de la consulta.

Nota:

Los valores de identificador de lote proporcionados por minBatchId y maxBatchId reflejan el estado en el momento en que se escribió el punto de control. Los lotes antiguos se limpian automáticamente con la ejecución de microproceso, por lo que no se garantiza que el valor proporcionado aquí siga estando disponible.