Data Analytics

Comparaison des bases de données analytiques

Plus les quantités de données augmentent, plus les exigences envers les bases de données augmentent. Dans le cadre d'un travail de recherche à la Haute école spécialisée à distance de Berne, j'ai comparé Azure Synapse Analytics et Vertica. Laquelle est la plus performante?

Quel était l'objectif?

Dans l'équipe Data & Analytics, nous travaillons tous les jours avec des bases de données. Nous conseillons les clients et les aidons à trouver leur solution analytique. Il est essentiel que nous connaissions parfaitement les technologies de base de données courantes. Je fais partie de l'équipe en tant qu'apprenant et j'étudie les technologies ou je soutiens différents projets. Pour cela, j'ai réalisé une comparaison dans le cadre d'un travail semestriel de mes études.

L'objectif de cette comparaison est d'examiner de plus près l'aspect de la performance entre les technologies. Cela nous permet d'augmenter notre compréhension et d'avoir des justifications scientifiques pour nos recommandations aux clients.

Qu'est-ce que j'ai fait?

Le début du projet a consisté à définir un scénario. Dans le cadre de ce travail, je me suis limité à un petit schéma en étoile. Celui-ci correspond à un cas typique dans notre équipe, sous une forme légèrement plus petite.

Le diagramme montre la structure de la base de données. La table de faits "sales" a 1 000 000 d'enregistrements, tandis que les tables de dimensions plus petites avaient entre 20 et 5 000 entrées. Les données ont été générées au hasard à l'aide de Vertica et chargées dans les deux bases de données:

  • Vertica version 9.3
  • Azure Synapse Analytics

Les expériences pouvaient maintenant commencer. J'ai opté pour quatre requêtes (Queries) de complexité croissante. J'ai effectué les recherches pour deux cas: En série et en parallèle. Le temps total d'exécution des requêtes a été mesuré, c'est-à-dire depuis l'envoi de la requête jusqu'à l'arrivée du dernier paquet. L'exemple suivant est la requête 3. La syntaxe est différente entre Azure Synapse Analytics et Vertica.

Pour que les résultats soient significatifs, nous devions encore créer des conditions identiques pour toutes les bases de données. Nous avons utilisé Azure comme hôte des bases de données. Nous avons ainsi pu comparer les résultats avec les coûts journaliers du matériel dans Azure. Ce résultat sert ensuite de base pour les interprétations et la décision.

Les coûts ont été générés de différentes manières. Pour Azure Synapse Analytics (PaaS), les coûts sont principalement liés aux ordinateurs. L'unité de performance dans Azure Synapse s'appelle l'unité d'entrepôt de données. Cela correspond à un mélange de mémoire et de mémoire de travail. Dans le test, le réglage le plus petit de 100 DWU a été utilisé.

Le stockage des données dans Synapse est résolu par ce que l'on appelle les comptes de stockage. L'avantage est que l'on ne paie que pour la quantité de données stockées. Celle-ci s'élève à environ 300 Mo, ce qui représente un coût de <0,01 CHF.

Pour Vertica, nous avons utilisé la ressource prête à l'emploi d'Azure, qui nous aide à la mettre en place. Les coûts les plus importants ont été générés par le stockage des données, qui fonctionnait avec des SSD premium. La machine virtuelle était relativement bon marché. Contrairement à Azure Synapse, j'avais un accès direct (IaaS).

Un autre point est la licence. Pour Azure Synapse, la licence est incluse dans le prix de la puissance de calcul. Par contre, si des projets plus importants sont réalisés avec Vertica (à partir de 1TB), il faut acheter une licence, ce qui entraîne des coûts supplémentaires.

Tous les détails concernant les coûts et le matériel sont encore décrits dans le travail, ce billet de blog n'est pas suffisant pour cela.

Qu'est-ce que j'ai découvert?

Pour que les résultats soient significatifs, nous devions encore créer des conditions identiques pour toutes les bases de données. Nous avons utilisé Azure comme hôte des bases de données. Nous avons ainsi pu comparer les résultats avec les coûts journaliers du matériel dans Azure. Ce résultat sert ensuite de base pour les interprétations et la décision.

Pour Vertica, c'est aussi fait mais avec le coût de Vertica dans le compteur. Pour Synapse, cela donne une valeur d'environ un tiers et pour Vertica, deux tiers. Les colonnes orange apparaissent lorsque la colonne bleue est multipliée par ce facteur.

Vertica est légèrement meilleur que Synapse dans toutes les catégories, à l'exception de Query 1. On remarque aussi la durée très courte de Vertica dans Query 2. Il y a plusieurs raisons à ces résultats, qui seront discutées plus en détail dans le travail. Parmi elles, on trouve par exemple des architectures différentes ou des erreurs de mesure dues aux expériences.

Les requêtes parallèles n'ont pas pu être mesurées aussi facilement en raison des différences entre les architectures. Au lieu de cela, le rapport entre les requêtes sérielles et parallèles a été calculé pour les deux bases de données et l'amélioration entre les deux a été comparée.

Dans une formule, cela se présente comme suit:

Il existe des directives sur le nombre de requêtes parallèles qui peuvent être traitées simultanément. Cela change en fonction de la taille de la base de données. Chez Synpase, la limite était de 4 requêtes parallèles. Vertica n'avait pas de limite, mais la performance ne changeait pas beaucoup à partir de 10 threads.

Synapse dépasse légèrement Vertica dans les requêtes un et deux. Cependant, Vertica est meilleur dans les deux dernières requêtes. Les résultats sont proches les uns des autres dans les deux requêtes. Les coûts ont été traités de la même manière que pour les résultats en série.

Quelles sont mes conclusions?

Les deux technologies ont leurs points forts et leurs points faibles, qui ne sont pas toujours apparus dans le cadre de ce travail. En outre, il y a d'autres aspects que la performance qui sont décisifs pour le choix d'une base de données.

Mais en général, nous pouvons dire que Vertica est un très bon choix en termes de performance. Pour finir, je voudrais dire que d'autres caractéristiques que la performance sont importantes pour choisir une base de données.

Si tu es intéressé par le travail, tu peux me contacter par e-mail: Lukas.Meier1@swisscom.com

Lukas Meier

Lukas Meier

Student PiBS Informatik

Plus d’articles getIT

Prêts pour Swisscom

Trouve le Job ou l’univers professionnel qui te convient. Où tu veux co-créer et évoluer.

Ce qui nous définit, c’est toi.

Vers les univers professionnels

Vers les postes vacants cybersécurité