Aller au contenu principal

De nombreux petits Jobs Spark

Si la chronologie des jobs affiche de nombreux jobs courts qui s'exécutent les uns après les autres, la charge de travail peut exécuter de nombreuses opérations sur des données de petite taille, inférieures à 10 Go. Chaque opération ne prend que quelques secondes, mais le temps et la surcharge fixe par opération s'additionnent. Lorsque les petits jobs s'exécutent les uns après les autres, une grande partie du cluster peut rester inactive, vous payez donc pour du compute que vous n'utilisez pas.

Utilisez cette page lorsque la chronologie des jobs montre principalement de petits jobs. Si la chronologie montre un modèle différent, consultez la page correspondante :

Exécuter des opérations en parallèle​

Le meilleur moyen d'accélérer les petits jobs est d'exécuter plusieurs opérations en parallèle. Utilisez l'une des approches suivantes :

  • Utilisez les pipelines LakeFlow Pipelines. Databricks recommande d’utiliser les LakeFlow Pipelines, qui exécutent automatiquement des opérations en parallèle.
  • Utilisez des jobs multitâches. Séparez les opérations en plusieurs notebooks et exécutez-les en parallèle sur le même cluster avec des jobs multitâches.
  • Utilisez un SQL warehouse. Si toutes les queries sont écrites en SQL, exécutez-les sur un SQL warehouse. Les SQL Warehouse sont conçus pour exécuter de nombreuses queries en parallèle.
  • Utilisez une tâche For each. Paramétrez le notebook et utilisez une tâche For each pour l'exécuter plusieurs fois en parallèle. Définissez la concurrence pour contrôler le niveau de parallélisme. Cette approche fonctionne bien avec le compute serverless.

Adapter la taille du compute​

Si vous ne pouvez pas paralléliser les opérations, les petites opérations sur de petites données ne bénéficient pas de nombreux Worker. Utilisez un cluster plus petit ou du compute à nœud unique, ou exécutez la charge de travail sur du compute serverless afin de ne pas avoir à gérer vous-même la taille du cluster.