Concepts de Structured Streaming

Apache Spark Structured Streaming vous permet de construire des applications de streaming et des pipelines de streaming avec les mêmes API Spark que vous utilisez pour le traitement par lots. Sur Azure Databricks, il prend en charge deux modes de traitement :

  • Mode temps réel (RTM) : Conçu pour des charges de travail opérationnelles inférieures à la seconde, telles que la détection de fraude et la personnalisation en temps réel. RTM traite les enregistrements au fur et à mesure qu’ils arrivent, avec une latence de bout en bout aussi basse que cinq millisecondes. Voir concepts du mode temps réel.
  • Mode micro-batch : Conçu pour les pipelines analytiques et les charges d’extraction, transformation et chargement (ETL). Le mode micro-batch traite les flux en petits lots, équilibrant le coût de calcul avec les exigences de latence mesurées en secondes ou minutes. Le micro-traitement par lots est le mode par défaut.

Les deux modes utilisent les mêmes API de streaming structuré. Pour les requêtes prises en charge par les deux modes, vous pouvez changer de mode via la configuration de déclenchement et de calcul. Consultez Configurer le mode en temps réel.

Le flux structuré alimente également la diffusion dans les pipelines Lakeflow, basés sur Apache Spark™ Declarative Pipelines. Les pipelines gèrent l’orchestration, les points de contrôle et la récupération, et vous définissez les transformations en SQL ou Python.

Pour obtenir un didacticiel pas à pas, consultez Exécuter votre première charge de travail Structured Streaming.

Lecture à partir d’un flux de données

Utilisez Structured Streaming pour ingérer de manière incrémentielle des données à partir de sources de données prises en charge.

Fonctionnalité Description
Chargeur automatique Traitez de façon incrémentielle et efficace les nouveaux fichiers de données à mesure qu’ils arrivent dans le stockage cloud.
Lecture et écriture de tables Delta Lake en streaming Utilisez des tables Delta Lake comme sources et destinations de streaming avec des garanties de traitement en une seule fois.
API SQL et Spark Connectez-vous aux bus de messages, files d’attente et applications d’entreprise en utilisant SQL et les API Spark.
Taille de micro-lot Limitez les taux d’entrée pour maintenir des tailles de lots cohérentes et empêchez les retards de traitement.

Écrire dans un récepteur de données

Configurez la façon dont Structured Streaming fournit des données aux systèmes cibles.

Fonctionnalité Description
Points de contrôle Stockez l'état de traitement pour permettre la tolérance aux pannes et garantir une sémantique de livraison exactement une fois.
Mode sortie Choisissez entre les modes d’ajout, de mise à jour et complet pour les requêtes de streaming avec état.
Intervalles de déclencheur Définissez les intervalles de déclencheur pour équilibrer la latence et le coût de vos besoins 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 requêtes sans état traitent les lignes sans conserver l’état. Les requêtes avec état conservent un état intermédiaire pour les agrégations, les jointures et la déduplication.

Fonctionnalité Description
Requêtes de streaming sans état Optimisez les requêtes qui traitent les données sans conserver l’é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érez les agrégations, les jointures entre flux et la déduplication à l’aide d’opérateurs avec état.

Surveillance et gestion

Effectuez le suivi des performances des requêtes, appliquez des optimisations et gérez l’accès aux données pour les charges de travail Structured Streaming de production.

Fonctionnalité Description
Surveiller avec StreamingQueryListener Suivez la progression des requêtes et les métriques de performances à l’aide de l’interface utilisateur Spark et de l’API d’écouteur.
Gouverner avec le catalogue Unity Configurez Unity Catalog pour les workloads de streaming, en intégrant des fonctionnalités de gouvernance et de contrôle d’accès.