Configurer une taille de lot de Structured Streaming sur Azure Databricks
La limitation du taux d’entrée des requêtes de Structured Streaming permet de maintenir une taille de lot cohérente, et d’éviter que des lots volumineux entraînent des retards de traitement des micro-lots en cascade.
Azure Databricks fournit les mêmes options pour contrôler les tailles de lot de Structured Streaming pour Delta Lake et le Chargeur automatique.
Limiter le taux d’entrée avec maxFilesPerTrigger
La définition de maxFilesPerTrigger
(ou cloudFiles.maxFilesPerTrigger
pour le Chargeur automatique) spécifie une limite supérieure pour le nombre de fichiers traités dans chaque micro-lot. Pour Delta Lake et le Chargeur automatique, la valeur par défaut est 1000. (Notez que cette option est également présente dans Apache Spark pour d’autres sources de fichiers, où il n’y a pas de valeur maximale par défaut.)
Limiter le taux d’entrée avec maxBytesPerTrigger
La définition de maxBytesPerTrigger
(ou cloudFiles.maxBytesPerTrigger
pour le Chargeur automatique) définit une « valeur maximale conditionnelle » pour la quantité de données traitées dans chaque micro-lot. Cela signifie qu’un lot traite approximativement cette quantité de données et peut traiter plus que la limite afin de faire avancer la requête de streaming dans les cas où la plus petite unité d’entrée est supérieure à cette limite. Il n'existe pas de valeur par défaut pour ce paramètre.
Par exemple, si vous spécifiez une chaîne d’octets telle que 10g
pour limiter chaque micro-lot à 10 Go de données, et avez des fichiers de 3 Go chacun, Azure Databricks traite 12 Go dans un micro-lot.
Définition de plusieurs taux d’entrée
Si vous utilisez maxBytesPerTrigger
conjointement avec maxFilesPerTrigger
, le micro-lot traite les données jusqu’à atteindre la limite inférieure de maxFilesPerTrigger
ou maxBytesPerTrigger
.
Limitation des taux d’entrée pour d’autres sources de Structured Streaming
Des sources de diffusion en continu telles qu’Apache Kafka ont des limites d’entrée personnalisées, telles que maxOffsetsPerTrigger
. Pour obtenir plus d’informations, consultez Configurer des sources de données de diffusion en continu.