Partager via


Prise en main du mode en temps réel

Important

Cette fonctionnalité est disponible en préversion publique.

Le mode en temps réel permet une diffusion en continu à latence ultra-faible 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 des fraudes et la personnalisation en temps réel. Ce tutoriel vous guide tout au long de la configuration de votre première requête de streaming en temps réel à l’aide d’un exemple simple.

Pour obtenir des informations conceptuelles sur le mode en temps réel, quand l’utiliser et les fonctionnalités prises en charge, consultez le mode temps réel dans Structured Streaming.

Exigences

Note

Si vous n’avez pas de privilèges de création de calcul classique, contactez l’administrateur de votre espace de travail pour créer un cluster en mode temps réel pour vous à l’aide de la configuration à l’étape 1.

Étape 1 : Créer un calcul classique pour le mode en temps réel

Le mode en temps réel nécessite une configuration de calcul classique spécifique pour obtenir une latence ultra-faible. Ces paramètres garantissent que les tâches s’exécutent simultanément dans toutes les phases et que les données sont traitées en continu à mesure qu’elles arrivent, plutôt que par lots.

Pour créer un calcul classique correctement configuré :

  1. Dans votre espace de travail Azure Databricks, cliquez sur Calcul dans la barre latérale.

  2. Cliquez sur Créer un calcul.

  3. Entrez un nom.

  4. Sélectionnez Databricks Runtime 17.1 ou version ultérieure.

  5. Effacer l’accélération photon (le mode en temps réel ne prend pas en charge Photon).

  6. Effacer activer la mise à l’échelle automatique (le mode en temps réel nécessite une taille de cluster fixe).

  7. Sous Performances avancées, effacez les instances spot ( les instances spot peuvent entraîner des interruptions).

  8. Cliquez sur Options avancées pour développer des paramètres supplémentaires.

  9. En mode Accès, sélectionnez Dédié (anciennement : Utilisateur unique).

  10. Sous configuration Spark, ajoutez la configuration suivante :

    spark.databricks.streaming.realTimeMode.enabled true
    
  11. Cliquez sur Créer un calcul.

Étape 2 : Créer un bloc-notes

Les notebooks fournissent un environnement interactif pour le développement et le test de requêtes de diffusion en continu. Vous utilisez ce notebook pour écrire votre requête en temps réel et voir les résultats mis à jour en continu.

Pour créer un bloc-notes :

  1. Cliquez sur Nouveau dans la barre latérale, puis sur Bloc-notes.
  2. Dans le menu déroulant calcul, sélectionnez le calcul que vous avez créé à l’étape 1.
  3. Sélectionnez Python ou Scala comme langage par défaut.

Étape 3 : Exécuter une requête en mode temps réel

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

Note

La display fonction avec realTime déclencheur 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")

Scala

import org.apache.spark.sql.streaming.Trigger
import org.apache.spark.sql.streaming.OutputMode

val inputDF = spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
display(inputDF, trigger=Trigger.RealTime(), outputMode=OutputMode.Update())

Après avoir exécuté le code, vous voyez une table qui est mise à jour en temps réel à mesure que de nouvelles lignes sont générées. Le tableau affiche une timestamp colonne et une value colonne qui incrémente avec chaque ligne.

Présentation du code

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

Python

Paramètre Description
format("rate") Utilise la source de débit, une source intégrée qui génère des lignes à un taux configurable. Cela 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 en temps réel. L’intervalle spécifie la fréquence à laquelle les points de contrôle de requête progressent. Les intervalles plus longs signifient des points de contrôle moins fréquents, mais des temps de récupération potentiellement plus longs après les échecs.
outputMode="update" Le mode en temps réel nécessite un mode de sortie mis à jour.

Scala

Paramètre Description
format("rate") Utilise la source de débit, une source intégrée qui génère des lignes à un taux configurable. Cela 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.
Trigger.RealTime() Active le mode en temps réel avec l’intervalle de point de contrôle par défaut. Vous pouvez également spécifier un intervalle, par exemple Trigger.RealTime("5 minutes").
OutputMode.Update() Le mode en temps réel nécessite un mode de sortie mis à jour.

Ce que vous voyez

Lorsque vous exécutez la requête, la display fonction crée une table qui est mise à jour en temps réel, car la source de débit génère de nouvelles lignes. Chaque ligne contient :

  • timestamp : heure à laquelle la ligne a été générée par la source de taux
  • valeur : compteur monotoniquement croissant qui incrémente avec chaque nouvelle ligne

La table est mise à jour en continu avec une latence minimale, ce qui montre comment le mode temps réel traite les données dès qu’elles sont disponibles. Il s’agit de l’avantage principal du mode en temps réel : la possibilité de voir et d’agir immédiatement sur les données plutôt que d’attendre le traitement par lots.

Ce que vous avez appris

Vous avez correctement configuré et exécuté votre première requête de streaming en temps réel. Vous savez maintenant comment :

  • Configurer le calcul classique avec les paramètres requis pour le mode en temps réel (cluster dédié, Photon désactivé, mise à l’échelle automatique désactivée, configuration Spark)
  • Activer le traitement en temps réel à l’aide du realTime déclencheur
  • Utilisez la fonction display pour le développement et les tests interactifs
  • Vérifiez que votre requête s’exécute en mode temps réel en observant les mises à jour continues

Vous êtes prêt à créer des pipelines de production en temps réel avec Kafka, Kinesis et d'autres sources prises en charge. Pour en savoir plus sur Structured Streaming, consultez les concepts de Structured Streaming.

Étapes suivantes

Maintenant que vous avez exécuté votre première requête en temps réel, explorez ces ressources pour créer des applications de diffusion en continu de production :