Considérations relatives à la production pour Structured Streaming

Cet article contient des recommandations pour configurer les charges de travail de traitement incrémentielles de production avec Structured Streaming sur Azure Databricks afin de répondre aux exigences de latence et de coût pour les applications en temps réel ou par lots. La compréhension des concepts clés de Structured Streaming sur Azure Databricks peut vous aider à éviter certains pièges courants lorsque vous effectuez un scale-up du volume et de la vélocité des données, et que vous passez du développement à la production.

Azure Databricks a introduit Delta Live Tables afin de réduire la complexité de la gestion de l’infrastructure de production pour les charges de travail de Structured Streaming. Databricks recommande d’utiliser Delta Live Tables pour les nouveaux pipelines de Structured Streaming. Consultez Qu’est ce que Delta Live Tables.

Notes

La mise à l’échelle automatique du calcul présente des limitations pour la réduction de la taille du cluster pour les charges de travail Structured Streaming. Databricks recommande d’utiliser Delta Live Tables avec mise à l’échelle automatique améliorée pour les charges de travail de diffusion en continu. Consultez Optimiser l’utilisation des clusters des pipelines Delta Live Tables avec la mise à l’échelle automatique améliorée.

Utilisation de notebooks pour les charges de travail de Structured Streaming

Le développement interactif avec des notebooks Databricks nécessite que vous attachiez vos notebooks à un cluster afin d’exécuter les requêtes manuellement. Vous pouvez planifier des notebooks Databricks pour le déploiement automatisé et la récupération automatique d’échec de requête à l’aide de Flux de travail.

Vous pouvez visualiser des requêtes de Structured Streaming dans des notebooks en cours de développement interactif, ou pour la surveillance interactive de charges de travail de production. Vous ne devriez visualiser une requête Structured Streaming en production que si un humain surveille régulièrement la sortie du notebook. Si les paramètres trigger et checkpointLocation sont facultatifs, en guise de meilleure pratique, Databricks recommande de toujours les spécifier en production.

Contrôle de la taille et de la fréquence des lots pour Structured Streaming sur Azure Databricks

Structured Streaming sur Azure Databricks intègre des options améliorées permettant de contrôler les coûts et la latence tout en diffusant en continu avec le Chargeur automatique et Delta Lake.

Qu’est-ce que la diffusion en continu avec état ?

Une requête de Structured Streaming avec état nécessite des mises à jour incrémentielles d’informations d’état intermédiaires, tandis qu’une requête de Structured Streaming sans état effectue uniquement le suivi des informations sur les lignes traitées entre la source et le récepteur.

Les opérations avec état incluent l’agrégation de diffusion en continu, les dropDuplicates de diffusion en continu, les jointures flux-flux, mapGroupsWithState et flatMapGroupsWithState.

Les informations d’état intermédiaire requises pour les requêtes de Structured Streaming avec état peuvent conduire à des problèmes inattendus de latence et de production si elles ne sont pas correctement configurées.

Dans Databricks Runtime 13.3 LTS et versions ultérieures, vous pouvez activer le point de contrôle du journal des modifications avec RocksDB pour réduire la durée des points de contrôle et la latence de bout en bout pour les charges de travail de flux structuré. Databricks recommande d’activer le point de contrôle du journal des modifications pour toutes les requêtes avec état Flux structuré. Voir Activer le point de contrôle du journal des modifications.