Aller au contenu principal

Tutoriel : Exécuter une charge de travail de streaming en temps réel.

Le mode temps réel permet le streaming à très faible latence avec une latence de bout en bout aussi faible que cinq millisecondes, ce qui le rend idéal pour les charges de travail opérationnelles telles que la détection de fraude et la personnalisation en temps réel. Ce didacticiel vous guide pour configurer votre première query de streaming en temps réel à l'aide d'un exemple simple.

Pour des informations conceptuelles sur le mode temps réel, quand l’utiliser et les fonctionnalités prises en charge, consultez Mode temps réel dans Structured Streaming. Pour connaître les exigences de configuration, consultez Configurer le mode temps réel.

Exigences

Avant de commencer, assurez-vous de disposer des autorisations nécessaires pour créer un cluster de compute classique qui utilise la configuration spécifiée dans Configurer le mode temps réel. Alternativement, contactez l'administrateur de votre Workspace pour qu'il vous crée un cluster en mode temps réel.

Étape 1 : Créer un Notebook

Les Notebooks fournissent un environnement interactif pour le développement et le test de queries de streaming. Vous utilisez ce Notebook pour écrire votre query en temps réel et voir les résultats se mettre à jour en continu.

Pour créer un notebook :

  1. Cliquez sur Nouveau dans la barre latérale, puis cliquez sur Icône du Notebook. Notebook .
  2. Dans le menu déroulant de compute, sélectionnez votre cluster en mode temps réel.
  3. Sélectionnez Python ou Scala comme langage default.

Étape 2 : Exécuter une query en temps réel

Copiez et collez le code suivant dans une cellule de Notebook et exécutez-le. Cet exemple utilise une source de débit, qui génère des lignes à un débit spécifié, et affiche les résultats en temps réel.

remarque

La fonction display avec realTime trigger est disponible dans Databricks Runtime 17.1 et versions ultérieures.

Python
inputDF = (
spark
.readStream
.format("rate")
.option("numPartitions", 2)
.option("rowsPerSecond", 1)
.load()
)
display(inputDF, realTime="5 minutes", outputMode="update")

Après l'exécution du code, vous voyez une table qui se met à jour en temps réel à mesure que de nouvelles lignes sont générées. La table affiche une colonne timestamp et une colonne value qui s'incrémente à chaque ligne.

Comprendre le code

Le code ci-dessus démontre les composants essentiels d'une query de streaming en temps réel. Les tableaux suivants expliquent les paramètres clés et ce qu'ils contrôlent :

parameter

Description

format("rate")

Utilise la source de taux, une source intégrée qui génère des lignes à un taux configurable. Ceci est utile pour les tests sans dépendances externes.

numPartitions

Définit le nombre de partitions pour les données générées.

rowsPerSecond

Contrôle le nombre de lignes générées par seconde.

realTime="5 minutes"

Active le mode temps réel. L'intervalle spécifie la fréquence à laquelle les points de contrôle de la requête progressent. Des intervalles plus longs signifient une vérification moins fréquente, mais des temps de récupération potentiellement plus longs après des pannes.

outputMode="update"

Le mode temps réel nécessite le mode de sortie de mise à jour.

parameter

Description

format("rate")

Utilise la source de taux, une source intégrée qui génère des lignes à un taux configurable. Ceci est utile pour les tests sans dépendances externes.

numPartitions

Définit le nombre de partitions pour les données générées.

rowsPerSecond

Contrôle le nombre de lignes générées par seconde.

realTime="5 minutes"

Active le mode temps réel. L'intervalle spécifie la fréquence à laquelle les points de contrôle de la requête progressent. Des intervalles plus longs signifient une vérification moins fréquente, mais des temps de récupération potentiellement plus longs après des pannes.

outputMode="update"

Le mode temps réel nécessite le mode de sortie de mise à jour.

Étape 3 : Valider les résultats

Lorsque vous exécutez la query, la fonction display crée une table qui se met à jour en temps réel à mesure que la source de débit génère de nouvelles lignes. Chaque ligne contient :

  • Un Timestamp pour le moment où la ligne a été générée par la source de taux.
  • Un compteur qui augmente de façon monotone à chaque nouvelle ligne.

La table se met à jour en continu avec une latence minimale, démontrant comment le mode temps réel traite les données dès qu'elles deviennent disponibles. C'est l'avantage principal du mode temps réel — la capacité de voir et d'agir sur les données immédiatement plutôt que d'attendre le traitement batch.

Ressources supplémentaires

Maintenant que vous avez exécuté votre première query en temps réel, explorez ces ressources pour créer des applications de streaming de production avec Kafka, Kinesis et d'autres sources prises en charge :