Améliorer les charges de travail des entrepôts de données Databricks avec les VM Azure E8ds_v4 et le moteur Photon de Databricks

Points clés :

  • Jusqu'à 80 % de réduction du temps d'exécution des requêtes d'aide à la décision avec les VM E8ds_v4 par rapport aux anciennes VM E8s_v3

  • Jusqu'à 31 % de réduction du temps d'exécution des requêtes d'aide à la décision avec les VM E8ds_v4 par rapport aux VM E8as_v4 avec processeurs AMDEPYC

  • Jusqu'à 65 % de réduction du temps d'exécution des requêtes d'aide à la décision avec Photon activé par rapport à sans photon sur les VM E8ds_v4

author-image

Par

Dotés de processeurs Intel® Xeon® Scalable de 2ᵉ génération, les VM E8ds_v4 sont plus performantes que les VM E8s_v3 et les VM E8as_v4

Dans la mesure où les appareils IoT, les sites Web, les bases de données et d'autres sources fournissent des quantités croissantes de données aux entreprises, la capacité à stocker et à analyser ces données devient de plus en plus importante. Les lacs de données et les entrepôts de données offrent respectivement une infrastructure de stockage à grande échelle pour les données non structurées et les données structurées. Databricks combine les caractéristiques des entrepôts de données et des lacs de données pour stocker et analyser de grandes quantités de données structurées et non structurées avec sa plateforme Lakehouse. Cette plateforme repose sur Delta Lake, un projet open-source qui assure la fiabilité, la sécurité et la performance des lacs de données. Elle offre des performances à grande échelle grâce à des optimisations telles que la mise en cache, l'indexation et le compactage des données. De plus, la plateforme Lakehouse de Databricks dispose de Photon, un moteur de requête vectorisé, qui pour SQL, accélère encore les performances des requêtes SQL à faible coût et l'analyse des données, fournissant des insights commerciaux encore plus rapidement.

Pour nos tests au sein d'Intel, nous avons exécuté un banc d'essai d'aide à la décision pour une charge de travail d'ingénierie de données Azure Databricks (Spark Cluster) en utilisant le runtime Databricks version 9.0. Le banc d'essai a exécuté 99 requêtes contre un cluster de VM Azure de 20 nœuds. Au-delà de la mise en valeur du moteur Photon de Databricks, notre objectif était de montrer la rapidité avec laquelle un cluster de VM E8ds_v4 soutenu par des processeurs Intel® Xeon® Scalable de 2ᵉ génération pouvait effectuer les requêtes de données par rapport à un cluster de VM E8s_v3 plus ancien. Nous avons également comparé le cluster E8ds_v4 à un cluster E8as_v4 soutenu par des processeurs AMD EPYC pour montrer les avantages en termes de performances et de valeur des VM Edsv4. Pour toutes ces comparaisons, nous avons testé un ensemble de données de 1 To et de 10 To pour montrer que vous pouvez obtenir de meilleures performances quelle que soit la taille de votre ensemble de données.

Réduire le temps de requête sur vos bases de données grâce au moteur Photon de Databricks

Plus les requêtes d'analyse de données sont rapides, plus vous pouvez implémenter rapidement les insights pour améliorer et développer votre entreprise. Le moteur Photon, développé en C++, améliore les performances des requêtes en SQL et Spark, accélérant ainsi l'analyse de vos données. Pour montrer à quel point Photon peut améliorer les performances des requêtes, nous avons testé notre cluster Edsv4 avec Photon désactivé et activé. La figure 1 montre comment le cluster E8ds_v4 avec Photon activé a complété un jeu de données de 1 To en 65 % moins de temps que le même cluster sans Photon, et a complété un jeu de données de 10 To en 68 % moins de temps.

Figure 1. Le temps de traitement relatif pour compléter les 99 requêtes d'aide à la décision du banc d'essai avec Photon par rapport à sans Photon sur des clusters E8ds_v4 pour des ensembles de données de 1 To et 10 To.

En plus de réduire le temps nécessaire à l'obtention d'insights, l'accélération des requêtes de données se traduit également par une réduction du temps de fonctionnement des machines virtuelles. Avec Photon, le cluster E8ds_v4 coûterait 35 % de moins pour exécuter un ensemble de données de 1 To que le même cluster sans Photon, et 30 % de moins pour exécuter un ensemble de données de 10 To. La figure 2 compare le rapport coût/performances de chaque cluster. Comme on peut le voir, des temps d'exécution plus courts se traduisent par des économies.

Figure 2. Rapport prix/performances normalisé pour exécuter une charge de travail d'aide à la décision dans un environnement Databricks sur des VM Azure E8ds_v4 pour des ensembles de données de 1 To et 10 To.

Comparaison des générations : Faut-il passer à la génération supérieure ?

L'utilisation du moteur Photon de Databricks n'est pas la seule façon de garantir de bonnes performances. Le choix du bon matériel a également un impact sur les performances de vos charges de travail d'aide à la décision. Si le concept selon lequel du matériel plus récent permet d'obtenir de meilleures performances n'est pas nouveau, il n'est pas toujours évident de connaître l'ampleur de l'amélioration d'une charge de travail sur du matériel plus récent. L'amélioration peut être suffisamment faible pour ne pas valoir les efforts ou les coûts supplémentaires liés au passage à un matériel plus récent. Si Azure élimine une grande partie des difficultés et des efforts liés à la mise à niveau du matériel, l'un des nombreux avantages de l'exécution de vos charges de travail dans le Cloud, qu'en est-il du coût ? Il est naturel de supposer que des instances plus récentes coûtent plus cher. Bien que cela soit vrai dans ce cas, l'augmentation des performances du matériel plus récent apporte un gain net en termes de valeur, ce qui justifie le choix de la mise à niveau.

Pour montrer aux lecteurs ce qu'ils risquent de manquer en restant sur du matériel plus ancien, nous avons créé une situation hypothétique. Nous avons testé notre charge de travail d'aide à la décision sur un cluster E8s_v3 de 20 nœuds avec Databricks Runtime 9.0 pour obtenir une mesure de référence des performances. La série Esv3 d'Azure offre des VM avec une gamme de processeurs de l'Intel® Xeon® E5-2673 v4 à l'Intel® Xeon® 8272CL. Le processeur que vous obtenez lorsque vous lancez une VM est aléatoire, ce qui signifie qu'un cluster de 20 nœuds peut avoir un mélange de types de processeurs, dont certains pouvant être trois générations de processeurs Intel® plus anciens que les processeurs les plus récents. Pour nos tests, nous nous sommes assurés que toutes les VM E8s_v3 listaient le même processeur Intel® Xeon® Platinum 8171M lors de nos tests pour des raisons de cohérence. Nous avons ensuite testé la même charge de travail sur un cluster E8ds_v4 de 20 nœuds avec Photon activé. Azure garantit que chaque VM Edsv4 utilise un processeur Intel® Xeon® Platinum 8272CL, offrant ainsi des performances cohérentes.

Lorsque nous comparons les performances des deux clusters de VM, il est clair que la mise à niveau vers les VM E8ds_v4 plus récentes est avantageuse pour les performances, quelle que soit la taille de l'ensemble de données. Avec l'ensemble de données de 1 To, la requête du cluster E8ds_v4 a réduit le temps d'exécution à seulement 26 % de celui du cluster E8s_v3. Avec l'ensemble de données de 10 To, le temps d'exécution de la requête du cluster E8ds_v4 était encore plus réduit, représentant un cinquième de celui du cluster E8s_v3 (voir figure 3).

Figure 3. Le temps de traitement relatif pour compléter les 99 requêtes d'aide à la décision du banc d'essai sur un cluster de VM E8ds_v4 avec des processeurs Intel® Xeon® Scalable de 2ᵉ génération par rapport à un cluster de VM E8s_v3 plus ancien sur des ensembles de données de 1 To et 10 To.

Meilleur rapport prix/performances que les générations précédentes

Avec des gains de performances tels que ceux illustrés sur la figure 3, il semble probable que le coût supplémentaire de la mise à niveau des VM E8s_v3 vers les VM E8ds_v4 en vaille la peine. En utilisant le prix public par heure au moment du test, nous avons déterminé le coût d'exécution de chaque scénario de charge de travail. Nous avons converti le temps total de traitement des requêtes de millisecondes en heures, combiné le coût horaire des instances et du stockage, et calculé le prix d'exécution par To pour les quatre scénarios. Comme le montre la figure 4, l'exécution d'une charge de travail d'aide à la décision avec un ensemble de données de 1 To coûterait presque deux fois plus cher sur le cluster E8s_v3 que sur le cluster E8ds_v4. Plus impressionnant encore, l'exécution de l'ensemble de données de 10 To sur le cluster E8ds_v4 coûterait bien moins de la moitié de ce qu'elle coûterait sur le cluster E8s_v3 plus ancien, à savoir une économie de 61 %.

Figure 4. Rapport prix/performances normalisé pour exécuter une charge de travail d'aide à la décision dans un environnement Databricks sur des VM Azure E8ds_v4 par rapport à des VM Azure E8s_v3 pour des ensembles de données de 1 To et 10 To.

Concurrence : mais qu'en est-il des VM E8as_v4 ?

Performances compétitives

Bon, nous vous avons convaincu d'abandonner les VM E8s_v3, mais Azure propose également des VM E8as_v4 reposant sur des processeurs AMD EPYC. Que valent-elles par rapport aux VM E8ds_v4 équipées de processeurs Intel® Xeon® Scalable de 2ᵉ génération ? Nous avons étendu notre scénario hypothétique décrit dans la section précédente pour répondre à cette question. Nous avons testé la même charge de travail d'aide à la décision Databricks Runtime 9.0 de 20 nœuds sur les VM E8as_v4 et avons comparé les résultats au cluster E8ds_v4. Comme vous pouvez le voir sur la figure 5, le cluster E8ds_v4 soutenu par des processeurs Intel® a été plus performant que le cluster E8as_v4 soutenu par des processeurs AMD EPYC pour les deux tailles d'ensembles de données. Le cluster E8ds_v4 a complété les 99 requêtes sur un ensemble de données de 1 To en 31 % moins de temps que le cluster E8as_v4. Et pour l'ensemble de données de 10 To, le temps de traitement du cluster E8ds_v4 était inférieur de 23 % à celui du cluster E8as_v4.

Figure 5. Le temps de traitement relatif pour compléter 99 requêtes d'aide à la décision sur Databricks sur un cluster E8ds_v4 soutenu par des processeurs Intel® Xeon® Scalable de 2ᵉ génération par rapport à un cluster E8as_v4 soutenu par des processeurs AMD EPYC.

Rapport prix/performances compétitive

Enfin, qu'en est-il des différences de coûts ? En utilisant la même méthodologie que celle décrite dans la section précédente, nous avons examiné le prix d'exécution par To pour obtenir la valeur relative du E8ds_v4 par rapport au E8as_v4. Un fois de plus, comme le montre la figure 6, le cluster E8ds_v4 soutenu par des processeurs Intel® offre le meilleur rapport prix/performances pour les charges de travail d'aide à la décision de Databricks. Sur des ensembles de données de 1 To, le coût d'exécution de la charge de travail sur un cluster E8as_v4 est inférieur de 30 % à celui de l'exécution de la même charge de travail sur le cluster E8ds_v4. Sur un volumineux ensemble de données de 10 To, le coût d'exécution du cluster E8as_v4 est inférieur de 22 % à celui du cluster E8ds_v4.

Figure 6. Rapport prix/performances normalisé pour exécuter une charge de travail d'aide à la décision dans un environnement Databricks sur des VM Azure E8ds_v4 par rapport à des VM Azure E8as_v4 pour des ensembles de données de 1 To et 10 To.

Données concurrentielles supplémentaires : qu'en est-il des instances optimisées en matière de stockage ?

Nous avons effectué un test supplémentaire en comparant les instances E8ds_v4 dotées de processeurs Intel® Xeon® Scalable de 2ᵉ génération aux instances Lsv2 optimisées en matière de stockage dotées de processeurs AMD EPYC 7551. Même là, les instances E8ds_v4 reposant sur des processeurs Intel® ont présenté des avantages en termes de performances et de rapport prix/performances. Comme le montre la figure 7, le cluster E8ds_v4 a complété les requêtes jusqu'à 38 % plus rapidement que les instances L8s_v2. Lorsque nous calculons la différence prix/performances, le cluster E8ds_v4 a coûté jusqu'à 39 % de moins que le cluster L8s_v2 (voir figure 8).

Figure 7. Le temps de traitement relatif pour compléter 99 requêtes d'aide à la décision sur Databricks sur un cluster E8ds_v4 soutenu par des processeurs Intel® Xeon® Scalable de 2ᵉ génération par rapport à un cluster L8s_v2 soutenu par des processeurs AMD EPYC.

Figure 8. Rapport prix/performances normalisé pour exécuter une charge de travail d'aide à la décision dans un environnement Databricks sur des VM Azure L8s_v2 par rapport à des VM Azure E8as_v4 pour des ensembles de données de 1 To et 10 To.

Notre environnement de test

Pour tous les résultats présentés dans ce rapport, nous avons utilisé une charge de travail d'aide à la décision et le runtime Databricks version 9.0 qui comprend Apache Spark 3.12 et Scala 2.12. Les paramètres de la charge de travail pour tous les tests étaient les suivants :

  • spark databricks passthrough enabled: true
  • spark databricks adaptive autoOptimizeShuffle enabled: true
  • spark databricks io cache maxMetaDataCache 10g
  • spark databricks io cache max DiskUsage 100g
  • spark databricks delta preview enabled: true

Toutes les VM testées utilisaient Ubuntu 20.04.1 kernel v5.4.0-1056-azure. Intel a effectué les tests E8s_v3 vs E8ds_v4, E8ds_v4 avec et sans Photon, et E8ds_v4 vs E8as_v4 en octobre 2021 sur la région Azure US- East-2. Intel a effectué les tests E8ds_v4 vs Ls_v2 le 17 novembre 2021.

Configuration E8s_v3

La configuration de référence du cluster E8s_v3 était composée de 1 VM Standard_E8s_v3 pour la VM de contrôle et de 20 VM Standard_E8s_v3 pour les VM de travail. Bien que les VM E8s_v3 aient plusieurs options de processeur, nos VM étaient équipées du processeur Intel® Xeon® Platinum 8171M à 2,60 GHz. Les VM avaient également 64 Go de mémoire chacune et des disques de stockage de 128 Go. Le débit de réseau par instance (Mbit/s) était de 4/4 000 et le débit de stockage par instance (Mbit/s) était de 16 000/128 (200).

Configuration E8ds_v4

La configuration du cluster E8ds_v4 était composée de 1 VM Standard_E8ds_v4 pour la VM de contrôle et de 20 VM Standard_E8ds_v4 pour les VM de travail. Chaque VM E8ds_v4 était composée d'un processeur Intel® Xeon® Platinum 8272CL à 2,60 GHz, de 64 Go de mémoire et d'un disque de stockage de 300 Go. Le débit de réseau par instance (Mbit/s) était de 4/4000 et le débit de stockage (Mbit/s) était de 77 000/485 (200). Le débit (taille du cache) pour la comparaison optimisée en matière de stockage était de 38 000/500.

Configuration E8as_v4

La configuration du cluster E8as_v4 était composée de 1 VM Standard_E8as_v4 pour la VM de contrôle et de 20 VM Standard_E8as_v4 pour les VM de travail. Chaque VM E8as_v4 était composée d'un processeur AMD EPYC 7452 à 32 cœurs, de 64 Go de mémoire et d'un disque de stockage de 128 Go. Le débit de réseau par instance (Mbit/s) était de 4/3 200 et le débit de stockage par instance (Mbit/s) était de 16 000/128 (200).

Configuration Ls_v2

La configuration du cluster Ls_v2 était composée de 1 instance Standard_Ls_v2 pour la VM de contrôle et de 20 instances Standard_Ls_v2 pour les VM de travail. Chaque VM Ls_v2 était composée d'un processeur AMD EPYC 7551 à 32 cœurs, de 64 Go de mémoire et d'un disque de 80 Go. De plus, l'instance était équipée d'un disque NVMe de 1,92 To (400 000/2 000 IOPS de lecture par Mbit/s). Le débit de réseau par instance (Mbit/s) était de 4/3 200 et le débit de stockage (taille du cache) était de 8 000/160 (200).

Conclusion

Notre test de Databricks avec un banc d'essai de l'aide à la décision fournit des informations pouvant aider les entreprises amenées à prendre des décisions concernant les performances et le coût de l'exécution de leurs charges de travail dans le Cloud. Si vous essayez de déterminer les meilleures instances pour vos charges de travail de bases de données d'aide à la décision, vous pouvez vous sentir dépassé par les nombreux choix disponibles. Nos tests montrent que la sélection de VM plus récentes peut fournir à la fois de meilleures performances et un meilleur rapport prix/performances. De plus, les VM soutenues par des processeurs Intel ont montré des performances supérieures à celles des VM AMD de même génération lors de nos tests. Pour vos charges de travail de bases de données d'aide à la décision, choisissez les VM E8ds_v4 pour obtenir le meilleur rapport qualité-prix.