Introduction
Microsoft, grâce à sa plateforme Azure, a réussi à s’imposer dans le monde du cloud. On n’en attendait pas moins du créateur de Windows ou de la suite office pour émerger sur ce marché aux côtés d’autres grands fournisseurs de cloud que sont Google ou encore Amazon.
Dans cet article, nous allons nous intéresser à deux services proposés sur la plateforme Cloud de Microsoft : Azure SQL Database et Azure Synapse Analytics. Nous allons les comparer, comprendre comment ils fonctionnent, en quoi ils sont différents, leurs points communs ou encore pourquoi, pour mon organisation, je devrai plus m’orienter vers une solution plutôt qu’une autre ?
Pour découvrir les principaux produits Azure, c’est par ici : https://www.decivision.com/blog/microsoft-bi/overview-des-principaux-produits-azure
Vue d’ensemble de la plateforme Cloud
L’architecture fonctionnelle de Microsoft Azure se construit de la manière suivante :
Le Schéma disponible ci-dessous nous donne une vision d’ensemble de la plateforme Azure. Les processus essentiels que sont l’ingestion de données, le stockage, la mise en place de flux ETL, l’analyse des données et la visualisation de ces dernières.
Comme on peut le constater sur ce schéma, nos deux services ne se situent pas au même endroit sur la chaine décisionnelle. Alors qu’Azure SQL est une base de données hébergée dans le cloud, Synapse Analytics représente un outil complet pour le traitement des données.
Azure SQL DataBase
Azure SQL Database est un moteur de base de données PaaS (Platform as a Service) complètement managé qui prend en charge la plupart des fonctions de gestion de base de données telles que la mise à niveau, la mise à jour corrective, les sauvegardes et la surveillance sans intervention de l’utilisateur. Ce service fonctionne comme une base de données SQL installée localement.
Les bases de données Azure SQL Database sont hébergées dans le Cloud. Elles ne diffèrent pas des bases de données SQL normales. Elles permettent de créer une couche de stockage de données hautement disponible et très performante pour les applications et les solutions dans Azure. SQL Database peut être le meilleur choix pour diverses applications cloud moderne car il permet de traiter à la fois des données relationnelles et des structures non relationnelles, comme des graphiques, des données JSON, des données spatiales et des données XML.
Les performances d’une base de données Azure SQL dépendent uniquement de notre besoin et évidemment les prix augmentent en fonction des performances que nécessite le stockage de nos données.
Finalement, le service Azure SQL Database garanti des performances avec plusieurs types de ressources, plusieurs niveaux de services et plusieurs tailles de calcul. Il fournit une scalabilité dynamique sans temps d’arrêt, une optimisation intelligente intégrée, une haute disponibilité ainsi que des options de sécurité avancées.
Azure Synapse Analytics
Azure Synapse Analytics est un service d’analytique qui regroupe l’intégration, l’entreposage des données d’entreprise et l’analytique Big Data. Synapse est surnommé le « Dataware House d’Azure » et dispose de son propre environnement dédié pour l’analyse de tous types de données.
Les cas d’utilisations les plus fréquents d’Azure Synapse Analytics sont les suivants :
- Interrogation de données Ad Hoc : Interrogation de données sur des DataLake ou des Pool SQL
- Analyse et Entreposage de données SQL : Intégration d’un entrepôt de données complet permettant un modèle relationnel et des procédures stockées.
- ETL propre à Synapse : Possibilité de créer des pipelines d’interrogation de données.
- Communication avec tous les services d’Azure y compris Power BI pour la visualisation de nos données entreposées.
Tous les points de comparaison entre Azure SQL Database et Azure Synapse Analytics vont tourner autour du stockage des données mais surtout, de l’entreposage des données.
Il nous vient alors à l’esprit de se demander : Pourquoi est-ce que l’on compare Azure SQL Database, qui comme son nom l’indique est une base de données et Azure Synapse Analytics qui lui est un service créé pour l’entreposage de données ?
La réponse est la suivante : Il est tout à fait possible de structurer sa base de données SQL afin d’en faire un entrepôt de données. Il faut ensuite savoir si cela est mieux que d’utiliser un entrepôt de données et dans quels cas d’utilisations il est pertinent de le faire. De plus, Synapse Analytics Studio comprend d’autres services comme un ETL intégré ou encore la possibilité de créer des notebooks. On se contentera ici de comparer uniquement la partie entreposage des données (Pool SQL) avec Azure SQL Database.
Autre remarque pour faciliter la compréhension de cet article : Dans l’environnement Azure un entrepôt de données, un datawarehouse ou un pool SQL représentent la même chose.
Pour quelles quantités de données ?
C’est le point de comparaison le plus important entre ces deux solutions. Lorsque l’on a assimilé ce point, on a tout compris de la différence entre Azure SQL Database et Azure Synapse Analytics. Tous les points qui suivront dans cet article découleront directement ou indirectement de cette notion.
Azure Synapse Analytics a été pensé, créé et structuré pour le big data. Sa fonction principale est d’entreposer et de gérer des grosses quantités de données. Tous les services que Microsoft a ajoutés dans Synapse, que ça soit l’ETL copié de Data Factory, les notebooks copiés du monde de la Data science, ou évidemment la possibilité de créer et de structurer des pools de données, tout a été pensé pour l’ingestion et traitements de lourdes quantités de données. Des données qui sont souvent non structurées (tous types différents) avant d’être entreposées. La taille maximale d’un entrepôt de données dans Synapse est de 240 To.
Azure SQL Database est fait pour la création de bases de données relationnelles de petites et de moyennes tailles. Que l’on utilise notre base de données comme une base « classique » ou comme un entrepôt, Azure SQL Database est optimisé pour effectuer les opérations sur les données que l’on nomme CRUD (Create, Read, Update, Delete). La taille maximale d’une base de données est de 4 To.
Quel système pour le traitement de l’information ?
Azure SQL Database traite l’information de manière transactionnelle. Autrement dit, c’est un système OLTP. Les bases de données Azure sont transactionnelles, elles ont une haute disponibilité, des temps de réponse aux requêtes très rapide et le traitement de volume conséquent de données.
A l’inverse les Pools SQL d’Azure Synapse Analytics fonctionnent selon le traitement analytique OLAP qui est optimisé pour des charges de travail fortes en lecture et faibles en écriture.
Les requêtes
Lorsque l’on met en place une base de données relationnelle ou un entrepôt de données pour l’analyse, on cherche à savoir si nos systèmes sont capables de gérer et d’accumuler les requêtes.
Azure SQL Database est un service qui a été conçu pour se faire requêter sans causer des problèmes de performances.
- Requêtes simultanées au maximum : 6 400
- Connexions simultanées : 30 000
- Langage de requêtes : T-SQL
Azure Synapse Analytics est un service qui n’est pas transactionnel donc pas prévu pour un grand nombre de requêtes :
- Requêtes simultanées au maximum : 128
- Connexions simultanées : 1024
Langage de requêtes : T-SQL
Sources de données
Une autre différence notable entre Azure SQL Database et Azure Synapse Analytics est la possibilité d’intégrer plusieurs sources de données.
En effet, l’essence même d’un entrepôt de données est de pouvoir croiser les données provenant des sources différentes, et dans ce domaine c’est l’environnement Azure Synapse Analytics qui sort vainqueur. Tout dans synapse studio est fait pour l’ingestion de données de toute forme possible, premièrement dans le Data Lake puis dans le Pool SQL.
Il est plus compliqué de croiser les différentes sources de données lorsque l’on veut faire de notre Azure SQL Database un entrepôt de données.
Compatibilité ETL
Sur ce point, la comparaison est inutile. Azure SQL Database et Azure Synapse Analytics disposent tous les deux d’accès à Azure Data Factory, l’ETL 100% Cloud de Microsoft. A la seule différence que Data Factory est directement intégré dans Azure synapse studio.
Autres éléments de comparaison
Nous avons vu point par point des éléments de comparaison qui concernaient surtout le fonctionnement général de nos deux outils. Il existe encore de nombreux angles de comparaisons qui ne pourront pas être évoqués dans cet article comme la configuration au niveau Azure, les tarifications pour la mise en place des environnements de stockage ou encore les services additionnels qu’Azure mets à disposition de ses clients.
CONCLUSION DE L’EXPERT
Azure SQL Database et Azure Synapse Analytics sont deux technologies performantes et répondent à des besoins différents :
- Stockage de données : Azure SQL
- Entreposage de données : Bien que Synapse semble être une meilleure solution d’entreposage de données, le choix de la solution à adopter repose sur les réponses aux questions suivantes :
- Pour quelle quantité de données ?
- Pour quelles performances ?
- Pour quel usage ?