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.
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
- SQL
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 | ú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. |
| 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. |
| 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. |
| 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 |
---|---|---|
| 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. |
| Estrutura (outro tipo derivado do valor do estado) | O valor de um registro de operador com estado no ponto de verificação estadual. |
| 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
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
- SQL
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SELECT * FROM read_state_metadata('/checkpoint/path')
Os dados retornados têm o seguinte esquema:
Coluna | Tipo | Descrição |
---|---|---|
| Integer | O ID inteiro do operador de transmissão com estado. |
| Integer | Nome do operador de transmissão com estado. |
| String | Nome do armazenamento do estado do operador. |
| Integer | Número de partições do armazenamento do estado. |
| Long | O ID de lote mínimo disponível para consultar o estado. |
| Long | O ID de lote máximo disponível para consultar o estado. |
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.