Concepts de Structured Streaming
Apache Spark Structured Streaming vous permet de créer des applications de streaming et des pipelines avec les mêmes Spark API que vous utilisez pour le traitement par batch. Sur Databricks, il prend en charge deux modes de traitement :
- Mode temps réel (RTM) : conçu pour les charges de travail opérationnelles inférieures à une seconde, telles que la détection de la fraude et la personnalisation en temps réel. Le mode RTM traite les enregistrements à mesure qu'ils arrivent, avec une latence de bout en bout allant jusqu'à cinq millisecondes. Consultez Concepts du mode temps réel.
- Mode micro-batch : conçu pour les pipelines analytiques et les charges de travail ETL (extraction, transformation et chargement). Le mode micro-batch traite les flux en petits batchs, ce qui permet d'équilibrer les coûts de compute et les exigences de latence mesurées en secondes ou en minutes. Le traitement par micro-batch est le mode par default.
Les deux modes utilisent les mêmes APIs de Structured Streaming. Pour les query prises en charge par les deux modes, vous pouvez basculer d'un mode à l'autre via la configuration du trigger et du compute. Voir Configurer le mode en temps réel.
Structured Streaming alimente également le streaming dans les LakeFlow Pipelines, qui sont basés sur des pipelines déclaratifs Apache Spark™. Les pipelines gèrent l’orchestration, les checkpoints et la récupération, et vous définissez les transformations en SQL ou en Python.
Pour un tutoriel pas à pas, consultez Exécuter votre première charge de travail Structured Streaming.
Lire à partir d'un Stream de données.
Utilisez Structured Streaming pour ingérer des données de manière incrémentielle à partir de sources de données prises en charge.
-
- Auto Loader
- Traitez de manière incrémentielle et efficace les nouveaux fichiers de données au fur et à mesure qu'ils arrivent dans le stockage cloud.
-
- Lectures et écritures en streaming des tables Delta Lake
- Utilisez les tables Delta Lake comme sources et récepteurs de streaming avec des garanties de traitement exactement une fois.
-
- SQL et Spark API
- Se connecter aux bus de messages, aux files d'attente et aux applications d'entreprise à l'aide de SQL et des API Spark.
-
- Taille de micro-batch
- Limitez les débits d’entrée pour maintenir des tailles de batch cohérentes et éviter les retards de traitement.
Écrire dans un puits de données
Configurez la manière dont Structured Streaming fournit des données aux systèmes cibles.
-
- Points de contrôle
- Stockez l'état de traitement pour activer la tolérance aux pannes et la sémantique de livraison exactement une fois.
-
- Mode de résultat
- Choisissez entre les modes d'ajout, de mise à jour et d'achèvement pour les streaming query avec état.
-
- Intervalles de Trigger
- Définissez les intervalles de Trigger pour équilibrer la latence et le coût en fonction de vos exigences de traitement.
-
- Mode temps réel dans Structured Streaming
- Traitez les données pour les charges de travail en temps réel avec une latence de bout en bout aussi faible que cinq millisecondes.
Traitement avec état et sans état
Les query sans état traitent les lignes sans conserver l'état. Les query avec état maintiennent un état intermédiaire pour les agrégations, les jointures et la déduplication.
-
- Requêtes de streaming sans état
- Optimiser les queries qui traitent les données sans maintenir d'état intermédiaire.
-
- Filigranes
- Contrôlez la durée pendant laquelle Structured Streaming attend les données arrivant en retard dans les Opérations avec état.
-
- Streaming avec état
- Gérer les agrégations, les jointures de Stream-Stream et la déduplication à l'aide d'opérateurs avec état.
Superviser et gérer
Suivez les performances des queries, appliquez des optimisations et régissez l'accès aux données pour les charges de travail Structured Streaming en production.
-
- Surveiller avec StreamingQueryListener
- Suivre la progression des query et les métriques de performance à l'aide de la Spark UI et de l'API d'écoute.
-
- Gouverner avec Unity Catalog
- Configurez Unity Catalog pour les charges de travail de streaming avec gouvernance et contrôle d'accès.