Leer información de estado de flujo estructurado
En Databricks Runtime 14.3 LTS y versiones posteriores en las computaciones configuradas con modo de acceso dedicado o sin aislamiento, puede usar operaciones DataFrame o funciones de valores de tabla de SQL para consultar los datos y metadatos del 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. No se puede consultar la información de estado mediante proceso sin servidor o proceso configurado con el modo de acceso estándar.
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 | Tipo | 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 | Tipo | 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.