Meilleures pratiques de configuration de calcul

Cet article décrit les recommandations relatives à la définition de configurations de calcul facultatives. Pour réduire les décisions de configuration, Azure Databricks recommande de tirer parti des stratégies de calcul et de calcul serverless.

  • Le calcul serverless ne nécessite pas de configuration des paramètres de calcul. Le calcul serverless est toujours disponible et mis à l’échelle en fonction de votre charge de travail. Consultez Types de calcul.

  • Les stratégies de calcul vous permettent de créer un calcul préconfiguré conçu pour des cas d’utilisation spécifiques tels que le calcul personnel, le calcul partagé, les utilisateurs avancés et les travaux. Si vous n’avez pas accès aux stratégies, contactez l’administrateur de votre espace de travail. Consultez Stratégies par défaut et familles de stratégies.

Si vous choisissez de créer un calcul avec vos propres configurations, les sections ci-dessous fournissent des recommandations pour les cas d’usage classiques.

Remarque

Cet article suppose que vous disposez d’une création de cluster sans restriction. Les administrateurs d’espace de travail ne doivent accorder ce privilège qu’aux utilisateurs avancés.

Considérations relatives au dimensionnement de la capacité de calcul

Les gens considèrent souvent la taille de calcul en termes de nombre de Workers, mais il existe d’autres facteurs importants à prendre en compte :

  • Nombre total de cœurs d’exécuteur (calcul) : nombre total de cœurs sur tous les exécuteurs. Cela détermine le parallélisme maximal d’un calcul.
  • Mémoire totale de l’exécuteur : quantité totale de RAM sur tous les exécuteurs. Cela détermine la quantité de données pouvant être stockées en mémoire avant de les déverser sur le disque.
  • Stockage local de l’exécuteur : type et quantité de stockage sur disque local. Le disque local est principalement utilisé en cas de débordement lors des brassages et de la mise en cache.

Les considérations supplémentaires incluent le type et la taille de l’instance de travail, qui influencent également les facteurs ci-dessus. Lors du dimensionnement de votre calcul, tenez compte des éléments suivants :

  • Quelle est la quantité de données consommées par votre charge de travail ?
  • Quelle est la complexité de calcul de votre charge de travail ?
  • Où sont lues les données ?
  • Comment les données sont-elles partitionnées dans un stockage externe ?
  • De quel degré de parallélisme avez-vous besoin ?

La réponse à ces questions vous aidera à déterminer les configurations de calcul optimales en fonction des charges de travail.

Il existe un acte d’équilibrage entre le nombre de threads de travail et la taille des types d’instance de travail. La configuration d’un calcul avec deux Workers, chacun avec 40 cœurs et 100 Go de RAM, a le même calcul et la même mémoire que la configuration d’un calcul avec 10 cœurs et 25 Go de RAM.

Exemples de dimensionnement de calcul

Les exemples suivants illustrent des recommandations de calcul basées sur des types de charges de travail spécifiques. Ces exemples incluent également des configurations pour éviter et pourquoi ces configurations ne conviennent pas aux types de charges de travail.

Analyse des données

Les analystes de données effectuent généralement un traitement nécessitant des données à partir de plusieurs partitions, ce qui entraîne de nombreuses opérations de lecture aléatoire. Un calcul avec un plus petit nombre de nœuds peut réduire le réseau et les E/S de disque nécessaires pour effectuer ces opérations aléatoires.

Si vous écrivez uniquement en SQL, la meilleure option pour l’analyse des données sera un entrepôt SQL serverless.

Remarque

Si votre espace de travail est activé pour la préversion publique de calcul serverless, vous pouvez utiliser le calcul serverless pour exécuter l’analyse en Python ou SQL. Consultez Calcul serverless pour les notebooks.

Si vous devez configurer un nouveau calcul, un calcul à nœud unique avec un type de machine virtuelle volumineux est probablement le meilleur choix, en particulier pour un analyste seul.

Les charges de travail analytiques auront probablement besoin de lire les mêmes données à plusieurs reprises. Par conséquent, les types de nœuds recommandés sont optimisés pour le stockage avec la mise en cache de disque activée.

Les fonctionnalités supplémentaires recommandées pour les charges de travail analytiques sont les suivantes :

  • Activez la terminaison automatique pour vous assurer que le calcul est terminé après une période d’inactivité.
  • Envisagez d’activer la mise à l’échelle automatique en fonction de la charge de travail classique de l’analyste.
  • Envisagez d’utiliser des pools, ce qui permet de limiter les calculs aux types d’instance pré-approuvés et de garantir la cohérence des configurations de calcul.

ETL de base pour le traitement par lots

Remarque

Si votre espace de travail est activé pour la préversion publique de calcul serverless pour les flux de données, vous pouvez utiliser le calcul serverless pour exécuter vos travaux. Consultez Calcul serverless pour les notebooks.

Les travaux ETL par lot simples qui ne nécessitent pas de transformations étendues, telles que les jointures ou les agrégations, tirent généralement parti des types de Workers optimisés pour le calcul.

Les Workers optimisés pour le calcul ont des exigences inférieures pour la mémoire et le stockage et peuvent entraîner des économies de coûts par rapport à d’autres types de Workers.

ETL (traitement par lots) complexe

Remarque

Si votre espace de travail est activé pour la préversion publique de calcul serverless pour les flux de données, vous pouvez utiliser le calcul serverless pour exécuter vos travaux. Consultez Calcul serverless pour les notebooks.

Pour un travail ETL complexe, tel qu’un travail qui nécessite des syndicats et des unions dans plusieurs tables, Databricks recommande de réduire le nombre de Workers afin de réduire la quantité de données aléatoires.

Les transformations complexes peuvent être gourmandes en calcul. Si vous observez un déversement significatif sur le disque ou des erreurs OOM, vous devez ajouter des nœuds supplémentaires.

Databricks recommande les types de Workers optimisés pour le calcul. Les Workers optimisés pour le calcul ont des exigences inférieures pour la mémoire et le stockage et peuvent entraîner des économies de coûts par rapport à d’autres types de Workers. Si vous le souhaitez, utilisez des pools pour réduire les temps de lancement de calcul et réduire le runtime total lors de l’exécution de pipelines de travaux.

Entraînement des modèles de Machine Learning

Databricks recommande un calcul à nœud unique avec un type de nœud volumineux pour l’expérimentation initiale de formation des modèles Machine Learning. Le fait d’avoir moins de nœuds réduit l’impact des opérations aléatoires.

L’ajout de Workers supplémentaires peut favoriser la stabilité, mais vous devez éviter d’ajouter trop de Workers en raison de la surcharge liée à la répartition aléatoire des données.

Les types de Workers recommandés sont optimisés pour le stockage avec la mise en cache de disque activée pour tenir compte des lectures répétées des mêmes données et pour activer la mise en cache des données de formation. Si les options de calcul et de stockage fournies par les nœuds optimisés pour le stockage ne sont pas suffisantes, envisagez les nœuds optimisés GPU. Un inconvénient possible est l’absence de prise en charge de la mise en cache de disque avec ces nœuds.

Les fonctionnalités supplémentaires recommandées pour les charges de travail de Machine Learning sont les suivantes :

  • Activez la terminaison automatique pour vous assurer que le calcul est terminé après une période d’inactivité.
  • Utilisez des pools, ce qui permet de limiter les calculs aux types d’instance pré-approuvés et de garantir la cohérence des configurations de calcul.