Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
- Vous avez l’autorisation de créer un calcul classique.
- Databricks Runtime 17.1 ou version ultérieure (requis pour l’utilisation de la
displayfonction avec le mode en temps réel).
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é :
Dans votre espace de travail Azure Databricks, cliquez sur Calcul dans la barre latérale.
Cliquez sur Créer un calcul.
Entrez un nom.
Sélectionnez Databricks Runtime 17.1 ou version ultérieure.
Effacer l’accélération photon (le mode en temps réel ne prend pas en charge Photon).
Effacer activer la mise à l’échelle automatique (le mode en temps réel nécessite une taille de cluster fixe).
Sous Performances avancées, effacez les instances spot ( les instances spot peuvent entraîner des interruptions).
Cliquez sur Options avancées pour développer des paramètres supplémentaires.
En mode Accès, sélectionnez Dédié (anciennement : Utilisateur unique).
Sous configuration Spark, ajoutez la configuration suivante :
spark.databricks.streaming.realTimeMode.enabled trueCliquez 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 :
- Cliquez sur Nouveau dans la barre latérale, puis sur Bloc-notes.
- Dans le menu déroulant calcul, sélectionnez le calcul que vous avez créé à l’étape 1.
- 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
realTimedéclencheur - Utilisez la fonction
displaypour 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 :
- Exemples de mode en temps réel - Exemples de code de travail pour les sources et récepteurs Kafka, requêtes avec état, agrégations et récepteurs personnalisés
- Informations de référence sur le mode en temps réel - En savoir plus sur le dimensionnement du cluster, les opérateurs pris en charge, la surveillance et les limitations des fonctionnalités
- Applications de diffusion en continu avec gestion de l'état : ajoutez la gestion d'état à vos requêtes de flux pour la déduplication, l'agrégation et le fenêtrage
-
Gestion avancée de l’état - Utilisez
transformWithStatepour un traitement d'état personnalisé avec durée de vie (TTL) et logique complexe