Ler transmissão estruturada de informações estaduais
Visualização
Esse recurso está em Prévia Pública.
No Databricks Runtime 14.3 LTS e acima, você pode usar operações DataFrame ou funções de valor de tabela SQL para consultar dados e metadados de estado de transmissão estruturada. Você pode usar essas funções para observar informações de estado para consultas stateful de transmissão estruturada, 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 transmissão para consultar dados de estado ou metadados. As funções descritas neste artigo fornecem acesso somente leitura a dados e metadados de estado. Você só pode usar a semântica de leitura de lotes para consultar informações de estado.
Observação
Você não pode consultar informações de estado para pipeline Delta Live Tables, tabelas de transmissão ou visualização materializada.
Leia transmissão estruturada armazenamento do estado
Você pode ler o armazenamento do estado informação para consultas de transmissão estruturada executadas em qualquer Databricks Runtime compatível. Use a seguinte sintaxe:
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SELECT * FROM read_statestore('/checkpoint/path')
As seguintes configurações opcionais são suportadas:
Opção |
Tipo |
Valor padrão |
Descrição |
---|---|---|---|
|
Long |
ID dos últimos lotes |
Representa os lotes de destino a serem lidos. Especifique esta opção para consultar informações de estado para um estado anterior da consulta. Os lotes devem estar comprometidos, mas ainda não liquidados. |
|
Long |
0 |
Representa o operador de destino do qual ler. Esta opção é usada quando a consulta usa vários operadores com estado. |
|
String |
padrão" |
Representa o nome do armazenamento do estado de destino a ser lido. Esta opção é usada quando o operador stateful utiliza múltiplas instâncias de armazenamento do estado. |
|
strings (“esquerda” ou “direita”) |
Representa o lado de destino do qual ler. Esta opção é utilizada quando o usuário deseja ler o estado do join transmissão-transmissão. |
Os dados retornados possuem o seguinte esquema:
Coluna |
Tipo |
Descrição |
---|---|---|
|
Struct (tipo adicional derivado da key de estado) |
A key para um registro de operador com estado no ponto de verificação de estado. |
|
Struct (tipo adicional derivado do valor do estado) |
O valor de um registro de operador com estado no ponto de verificação de estado. |
|
Inteiro |
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
Importante
Você deve executar a transmissão de consultas no Databricks Runtime 14.2 ou acima 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 transmissão no 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.
Você pode ler informações de metadados de estado para execução de consultas de transmissão estruturada no Databricks Runtime 14.2 ou acima. Use a seguinte sintaxe:
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SELECT * FROM read_state_metadata('/checkpoint/path')
Os dados retornados possuem o seguinte esquema:
Coluna |
Tipo |
Descrição |
---|---|---|
|
Inteiro |
O ID inteiro do operador de transmissão com estado. |
|
Inteiro |
Nome do operador de transmissão stateful. |
|
String |
Nome do armazenamento do estado do operador. |
|
Inteiro |
Número de divisórias do armazenamento do estado. |
|
Long |
O ID dos lotes mínimos disponíveis para consulta de estado. |
|
Long |
O ID máximo de lotes disponível para consulta de estado. |
Observação
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 dos microlotes, portanto não há garantia de que o valor aqui informado ainda esteja disponível.