Partager via


Lire les informations d’état Structured Streaming

Important

Cette fonctionnalité est disponible en préversion publique.

Dans Databricks Runtime 14.3 LTS et versions ultérieures, vous pouvez utiliser des opérations DataFrame ou des fonctions table SQL pour interroger des données et des métadonnées d’état Structured Streaming. Vous pouvez utiliser ces fonctions pour observer les informations d’état des requêtes avec état Structured Streaming, qui peuvent être utiles pour la supervision et le débogage.

Vous devez disposer d’un accès en lecture au chemin de point de contrôle d’une requête de diffusion en continu pour interroger les métadonnées ou les données d’état. Les fonctions décrites dans cet article fournissent un accès en lecture seule aux métadonnées et aux données d’état. Vous pouvez uniquement utiliser la sémantique de lecture par lots pour interroger les informations d’état.

Remarque

Vous ne pouvez pas interroger les informations d’état pour les pipelines Delta Live Tables, les tables de diffusion en continu ou les vues matérialisées.

Lire le magasin d’état Structured Streaming

Vous pouvez lire les informations de magasin d’état pour les requêtes Structured Streaming exécutées dans n’importe quel Databricks Runtime pris en charge. Utilisez la syntaxe suivante :

Python

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

SQL

SELECT * FROM read_statestore('/checkpoint/path')

Les configurations facultatives suivantes sont prises en charge :

Option Type Default value
batchId Long ID du dernier lot
operatorId Long 0
storeName Chaîne « DEFAULT »
joinSide Chaîne (« gauche » ou « droite ») Représente le côté cible à partir duquel effectuer la lecture. Cette option est utilisée quand des utilisateurs souhaitent lire l’état à partir d’une jointure flux-flux.

Les données retournées ont le schéma suivant :

Colonne Type Description
key Struct (autre type dérivé de la clé d’état) La clé d’un enregistrement d’opérateur avec état dans le point de contrôle d’état.
value Struct (autre type dérivé de la valeur d’état) La valeur d’un enregistrement d’opérateur avec état dans le point de contrôle d’état.
partition_id Entier La partition du point de contrôle d’état qui contient l’enregistrement d’opérateur avec état.

Lire les métadonnées d’état Structured Streaming

Important

Vous devez exécuter des requêtes de diffusion en continu sur Databricks Runtime 14.2 ou version ultérieure pour enregistrer les métadonnées d’état. Les fichiers de métadonnées d’état ne cassent pas la compatibilité descendante. Si vous choisissez d’exécuter une requête de diffusion en continu sur Databricks Runtime 14.1 ou version antérieure, les fichiers de métadonnées d’état existants sont ignorés et aucun nouveau fichier de métadonnées d’état n’est écrit.

Vous pouvez lire les informations de métadonnées d’état pour les requêtes Structured Streaming exécutées dans Databricks Runtime 14.2 ou version ultérieure. Utilisez la syntaxe suivante :

Python

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

SQL

SELECT * FROM read_state_metadata('/checkpoint/path')

Les données retournées ont le schéma suivant :

Colonne Type Description
operatorId Integer L’ID entier de l’opérateur de diffusion en continu avec état.
operatorName Entier Nom de l’opérateur de diffusion en continu avec état.
stateStoreName Chaîne Nom du magasin d’état de l’opérateur.
numPartitions Entier Nombre de partitions du magasin d’état.
minBatchId Long L’ID de lot minimal disponible pour l’état d’interrogation.
maxBatchId Long L’ID de lot maximal disponible pour l’état d’interrogation.

Remarque

Les valeurs d’ID de lot fournies par minBatchId et maxBatchId reflètent l’état au moment où le point de contrôle a été écrit. Les anciens lots sont nettoyés automatiquement avec l’exécution de micro-lots. Par conséquent, la valeur fournie ici n’est pas garantie d’être toujours disponible.