Recommandations d’optimisation sur Azure Databricks
Azure Databricks offre de nombreuses optimisations prenant en charge une large gamme de charges de travail sur le lac de données, allant du traitement ETL à grande échelle à des requêtes interactives ad hoc. La plupart de ces optimisations ont lieu automatiquement. Vous bénéficiez simplement de leurs avantages à l’aide d’Azure Databricks. En outre, la plupart des fonctionnalités Databricks Runtime nécessitent Delta Lake, le format par défaut utilisé pour créer des tables dans Azure Databricks.
Azure Databricks configure les valeurs par défaut qui optimisent la plupart des charges de travail. Toutefois, dans certains cas, la modification des paramètres de configuration améliore les performances.
Améliorations des performances de Databricks Runtime
Notes
Utilisez la dernière version de Databricks Runtime pour tirer parti des dernières améliorations des performances. Tous les comportements documentés ici sont activés par défaut dans Databricks Runtime 10.4 LTS et versions ultérieures.
- La mise en cache du disque accélère les lectures répétées sur les fichiers de données Parquet en chargeant des données sur des volumes de disque attachés aux clusters de calcul.
- L’élagage de fichiers dynamiques améliore les performances des requêtes en ignorant les répertoires qui ne contiennent pas de fichiers de données qui correspondent aux prédicats de requête.
- La fusion faible et aléatoire réduit le nombre de fichiers de données réécrits par les opérations
MERGE
et réduit la nécessité de recalculer des clustersZORDER
. - Apache Spark 3.0 a introduit l’exécution de requêtes adaptatives, ce qui offre des performances améliorées pour de nombreuses opérations.
Recommandations Databricks pour améliorer les performances
- Vous pouvez cloner des tables sur Azure Databricks pour créer des copies profondes ou superficielles des jeux de données sources.
- L’optimiseur basé sur les coûts accélère les performances des requêtes en tirant parti des statistiques de table.
- Vous pouvez utiliser Spark SQL pour interagir avec des chaînes JSON sans analyser les chaînes.
- Les fonctions d’ordre supérieur fournissent des performances intégrées et optimisées pour de nombreuses opérations qui n’ont pas d’opérateurs Spark communs. Les fonctions d’ordre supérieur offrent un avantage en termes de performances par rapport aux fonctions définies par l’utilisateur.
- Azure Databricks fournit un certain nombre d’opérateurs intégrés et une syntaxe spéciale pour l’utilisation de types de données complexes, notamment des tableaux, des structs et des chaînes JSON.
- Vous pouvez régler manuellement les paramètres pour les jonctions de plages. Voir Optimisation des jointures de plage.
Comportements d’adhésion
- Azure Databricks fournit une garantie d’isolation sérialisable en écriture par défaut : la modification du niveau d’isolation sur sérialisable peut réduire le débit pour les opérations simultanées, mais peut être nécessaire lorsque la sérialisabilité en lecture est requise.
- Vous pouvez utiliser des index de filtre bloom pour réduire la probabilité d’analyser les fichiers de données qui ne contiennent pas d’enregistrements correspondant à une condition donnée.