Ler informações de estado do Streaming Estruturado
Importante
Esta funcionalidade está em Pré-visualização Pública.
No Databricks Runtime 14.3 LTS e superior, você pode usar operações DataFrame ou funções de valor de tabela SQL para consultar dados e metadados de estado do Streaming Estruturado. Você pode usar essas funções para observar informações de estado para consultas com estado de Streaming Estruturado, o que pode ser útil para monitoramento e depuração.
Você deve ter acesso de leitura ao caminho do ponto de verificação para uma consulta de streaming para consultar dados de estado ou metadados. As funções descritas neste artigo fornecem acesso somente leitura a dados de estado e metadados. Você só pode usar a semântica de leitura em lote para consultar informações de estado.
Nota
Não é possível consultar informações de estado para pipelines Delta Live Tables, tabelas de streaming ou exibições materializadas.
Ler armazenamento de estado de streaming estruturado
Você pode ler informações de armazenamento de estado para consultas de Streaming Estruturado executadas em qualquer Databricks Runtime suportado. Utilize a seguinte sintaxe:
Python
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SQL
SELECT * FROM read_statestore('/checkpoint/path')
As seguintes configurações opcionais são suportadas:
Opção | Type | Default value | Description |
---|---|---|---|
batchId |
Longo | ID do lote mais recente | Representa o lote de destino a partir do qual ler. Especifique esta opção para consultar informações de estado para um estado anterior da consulta. O lote deve ser comprometido, mas ainda não limpo. |
operatorId |
Longo | 0 | Representa o operador de destino a partir do qual ler. Essa opção é usada quando a consulta está usando vários operadores com monitoração de estado. |
storeName |
String | "PADRÃO" | Representa o nome do armazenamento de estado de destino a partir do qual ler. Essa opção é usada quando o operador stateful usa várias instâncias de armazenamento de estado. Ou storeName joinSide deve ser especificado para uma junção fluxo-vapor, mas não ambos. |
joinSide |
String ("esquerda" ou "direita") | Representa o lado de destino a partir do qual ler. Essa opção é usada quando os usuários desejam ler o estado da junção de fluxo de fluxo. |
Os dados retornados têm o seguinte esquema:
Column | Tipo | Description |
---|---|---|
key |
Struct (outro tipo derivado da chave de estado) | A chave para um registro de operador com monitoração de estado no ponto de verificação de estado. |
value |
Struct (outro tipo derivado do valor do estado) | O valor de um registro de operador com monitoração de estado no ponto de verificação de estado. |
partition_id |
Número inteiro | A partição do ponto de verificação de estado que contém o registro de operador com monitoração de estado. |
Ler metadados de estado do Streaming Estruturado
Importante
Você deve executar consultas de streaming no Databricks Runtime 14.2 ou superior para registrar metadados de estado. Os arquivos de metadados de estado não quebram a compatibilidade com versões anteriores. Se você optar por executar uma consulta de streaming no Databricks Runtime 14.1 ou inferior, os arquivos de metadados de estado existentes serão ignorados e nenhum novo arquivo de metadados de estado será gravado.
Você pode ler informações de metadados de estado para consultas de Streaming Estruturado executadas no Databricks Runtime 14.2 ou superior. Utilize a seguinte sintaxe:
Python
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SQL
SELECT * FROM read_state_metadata('/checkpoint/path')
Os dados retornados têm o seguinte esquema:
Column | Tipo | Description |
---|---|---|
operatorId |
Número inteiro | A ID inteira do operador de streaming com monitoração de estado. |
operatorName |
Número inteiro | Nome do operador de streaming com monitoração de estado. |
stateStoreName |
String | Nome do armazenamento de estado do operador. |
numPartitions |
Número inteiro | Número de partições do armazenamento de estado. |
minBatchId |
Longo | O ID de lote mínimo disponível para o estado de consulta. |
maxBatchId |
Longo | O ID de lote máximo disponível para o estado de consulta. |
Nota
Os valores de ID de lote fornecidos por minBatchId
e maxBatchId
refletem o estado no momento em que o ponto de verificação foi gravado. Os lotes antigos são limpos automaticamente com a execução de microlotes, portanto, não é garantido que o valor fornecido aqui ainda esteja disponível.