Pular para o conteúdo principal

Ler transmissão estruturada state information

Em Databricks Runtime 14.3 LTS e acima em compute configurado com modo de acesso dedicado ou sem isolamento, o senhor pode usar DataFrame operações ou SQL funções de valor de tabela para consultar dados e metadados de estado da transmissão estruturada. O senhor pode usar essas funções para observar informações de estado para consultas de transmissão estruturada com estado, o que pode ser útil para monitoramento e depuração.

O senhor deve ter acesso de leitura ao caminho do ponto de verificação para uma consulta de transmissão a fim de consultar dados de estado ou metadados. As funções descritas neste artigo fornecem acesso somente de leitura aos dados e metadados de estado. O senhor só pode usar a semântica de leitura de lotes para consultar informações de estado.

nota

O senhor não pode consultar informações de estado para pipeline DLT, tabelas de transmissão ou visualização materializada. O senhor não pode consultar informações de estado usando serverless compute ou compute configurado com o modo de acesso padrão.

Ler transmissão estructurada armazenamento do estado

O senhor pode ler as informações de armazenamento do estado para consultas de transmissão estruturada executadas em qualquer site compatível Databricks Runtime. Use a seguinte sintaxe:

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

As seguintes configurações opcionais são suportadas:

Opção

Tipo

Valor padrão

Descrição

batchId

Long

última identificação de lotes

Representa os lotes de destino para leitura. Especifique essa opção para consultar as informações de estado de um estado anterior da consulta. Os lotes devem estar comprometidos, mas ainda não foram limpos.

operatorId

Long

0

Representa o operador de destino a partir do qual ler. Essa opção é usada quando a consulta está usando vários operadores com estado.

storeName

String

"default" (padrão)

Representa o nome do armazenamento do estado de destino para leitura. Essa opção é usada quando o operador stateful usa várias instâncias de armazenamento do estado. storeName ou joinSide devem ser especificados para uma transmissão a vapor join, mas não ambos.

joinSide

strings ("left" ou "right")

Representa o lado alvo a partir do qual ler. Essa opção é usada quando os usuários desejam ler o estado da transmissão-transmissão join.

Os dados retornados têm o seguinte esquema:

Coluna

Tipo

Descrição

key

Struct (outro tipo derivado do estado key)

O endereço key para um registro de operador com estado no ponto de verificação de estado.

value

Estrutura (outro tipo derivado do valor do estado)

O valor de um registro de operador com estado no ponto de verificação estadual.

partition_id

Integer

A partição do ponto de verificação de estado que contém o registro do operador com estado.

Ler metadados do estado da transmissão estruturada

important

O senhor deve executar consultas de transmissão em 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 o senhor optar por executar uma consulta de transmissão em Databricks Runtime 14.1 ou abaixo, os arquivos de metadados de estado existentes serão ignorados e nenhum novo arquivo de metadados de estado será gravado.

O senhor pode ler as informações de metadados de estado para a execução de consultas de transmissão estruturada em Databricks Runtime 14.2 ou superior. Use a seguinte sintaxe:

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

Os dados retornados têm o seguinte esquema:

Coluna

Tipo

Descrição

operatorId

Integer

O ID inteiro do operador de transmissão com estado.

operatorName

Integer

Nome do operador de transmissão com estado.

stateStoreName

String

Nome do armazenamento do estado do operador.

numPartitions

Integer

Número de partições do armazenamento do estado.

minBatchId

Long

O ID de lote mínimo disponível para consultar o estado.

maxBatchId

Long

O ID de lote máximo disponível para consultar o estado.

nota

Os valores de ID do lote fornecidos por minBatchId e maxBatchId refletem o estado no momento em que o ponto de controle foi escrito. 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.