Microsoft a fait évoluer ses services Azure en solutions cloud pour entreprises, intégrant des fonctionnalités de pointe comme la gestion et l’analyse de données.
Lors de son passage au cloud, Microsoft a introduit Azure SQL Data Warehouse. Cette solution, aujourd’hui renommée, est promue avec enthousiasme par Microsoft. Il s’agit d’un service flexible de gestion de bases de données, qui combine les atouts d’un entrepôt de données élastique.
Qu’est-ce qu’Azure SQL Data Warehouse ?
Azure SQL Data Warehouse, désormais appelé Azure Synapse Dedicated SQL Pool, est un entrepôt de données basé sur le cloud qui permet de créer et de gérer des entrepôts de données sur la plateforme Microsoft Azure. Il est conçu pour traiter d’importants volumes de données, qu’elles soient relationnelles ou non. Il offre à la fois les capacités d’un entrepôt de données SQL et les avantages du cloud computing.
Ce service prend en charge les serveurs SQL de manière native, permettant ainsi une migration facile des serveurs SQL existants vers SQL Data Warehouse. Il est possible d’utiliser les mêmes requêtes et constructions qu’auparavant. De plus, les utilisateurs ont la possibilité d’adapter instantanément les ressources de leur entrepôt de données, que ce soit pour augmenter, mettre en pause ou réduire leur capacité.
Azure Synapse Dedicated SQL Pool se positionne comme une solution complète d’entreposage de données basée sur SQL, conçue pour les entreprises. Il est utilisable dans les contextes suivants :
- Migration des entrepôts de données existants (sur site) vers le cloud.
- Fourniture d’une solution d’entreposage de données pour les applications et services nécessitant un stockage et une récupération de données en temps réel, tels que les applications Web.
- Mise en place d’une solution hybride, connectant un entrepôt de données hébergé sur Azure et un serveur SQL sur site.
La nature élastique d’Azure SQL Data Warehouse constitue sa principale force. Elle permet une adaptabilité et une gestion séparée des ressources de stockage et de calcul. Cette approche crée une situation avantageuse pour tous, où les utilisateurs paient uniquement pour ce qu’ils consomment et au moment où ils l’utilisent.
L’aspect calcul d’Azure SQL Data Warehouse repose sur l’unité Data Warehouse Unit (DWU), qui mesure les ressources de calcul telles que les E/S de stockage et la mémoire sur tous les nœuds de calcul impliqués.
Le service propose une fonctionnalité de sécurité d’accès, permettant de restreindre l’accès à des adresses ou plages IP spécifiques via des règles de pare-feu. L’intégration avec l’authentification Azure Active Directory (AAD) offre la possibilité de se connecter à Azure SQL Data Warehouse en utilisant les identités d’Azure AD.
Un chiffrement multicouche protège vos données au repos, en mouvement et en cours d’utilisation, les mettant à l’abri de toute utilisation abusive. Des outils complémentaires sont disponibles pour auditer et surveiller les données, et identifier les potentielles failles de sécurité.
Combiné à d’autres outils de Microsoft, Azure SQL Data Warehouse offre des performances supérieures, un atout majeur face aux autres services du marché.
Pool SQL dédié Azure Synapse
Le pool SQL dédié Azure Synapse (anciennement Azure SQL Data Warehouse) est une base de données de traitement massivement parallèle, comparable aux technologies de bases de données à extension horizontale basées sur des colonnes, comme Snowflake ou Amazon Redshift. Il offre une expérience similaire à un serveur SQL traditionnel pour l’utilisateur, mais les données ne sont ni stockées ni traitées sur un seul nœud.
Cette approche améliore considérablement les performances pour les entrepôts de données de plusieurs téraoctets. Cependant, pour les plus petites configurations, d’autres solutions peuvent s’avérer plus adaptées.
L’architecture sous-jacente diffère considérablement de celle des serveurs SQL traditionnels, ce qui induit des différences dans la syntaxe et les méthodes de développement.
Les distributions sont affectées aux nœuds de calcul au sein d’un pool SQL dédié. Le pool ajuste cette répartition lors de l’ajout de ressources de calcul.
L’importation de gros volumes de données est facilitée par des requêtes SQL PolyBase, tandis que le moteur de requête distribué permet des analyses haute performance.
Le pool SQL dédié, anciennement SQL DW, offre à votre entreprise une source unique de vérité, permettant une intégration et une analyse des données plus rapide et des informations plus pertinentes.
Quelle est la différence entre les pools SQL dédiés Azure Synapse et les pools SQL dédiés dans un espace de travail Azure Synapse Analytics ?
La documentation concernant « le pool SQL dédié (anciennement SQLDW) et les pools SQL dédiés » Synapse Analytics est parfois source de confusion, notamment en ce qui concerne PowerShell.
L’implémentation initiale de SQL DW utilisait un serveur logique, à l’image d’Azure SQL DB, partageant un module PowerShell nommé Az.Sql.
Ce module permet de créer un nouveau pool SQL (anciennement SQLDW) en utilisant l’applet de commande New-AzSqlDatabase. Le paramètre « Edition » permet de spécifier qu’il s’agit d’un DataWarehouse.
Lors de sa première version, Synapse Analytics a introduit un nouveau module PowerShell, Az.Synapse. Pour créer un pool SQL dédié dans un espace de travail Synapse Analytics, il est nécessaire d’utiliser la commande New-AzSynapseSqlPool.
Ce module PowerShell ne nécessite pas le paramètre « Edition », qui n’est utilisé que pour les artefacts Synapse.
Un pool SQL dédié fournit des capacités de calcul et de stockage basées sur T-SQL. Les données peuvent être chargées, modélisées et traitées dans Synapse afin de fournir des aperçus plus rapides.
Azure Synapse propose des pools SQL sans serveur et Apache Spark en complément des pools SQL dédiés, offrant un choix adapté aux besoins de chacun.
Un pool SQL sans serveur permet d’interroger les données stockées dans votre lac de données.
Que fait le pool SQL dédié Azure Synapse ?
Le pool SQL dédié Azure Synapse exploite une architecture évolutive pour distribuer le traitement des données sur plusieurs nœuds. La séparation du calcul et du stockage permet de les adapter indépendamment.
Les pools SQL sans serveur sont évolutifs par nature, s’ajustant automatiquement aux besoins en ressources des requêtes. L’ajout, la suppression ou la modification des nœuds leur permet de s’adapter aux évolutions, garantissant que chaque requête dispose des ressources nécessaires et puisse aboutir.
Synapse SQL repose sur une architecture basée sur des nœuds. Les applications peuvent se connecter au nœud de contrôle pour émettre des commandes T-SQL. Il s’agit du point d’entrée unique pour Synapse SQL.
Les nœuds de contrôle Azure Synapse SQL utilisent un moteur de requête distribué qui optimise les requêtes pour le traitement en parallèle, puis délègue les opérations aux nœuds de calcul pour qu’ils travaillent simultanément.
Le nœud de contrôle du pool SQL sans serveur utilise le moteur de traitement de requêtes distribuées (DQP) pour optimiser et orchestrer l’exécution distribuée.
Cela se traduit par le découpage de la requête utilisateur en sous-requêtes plus petites qui sont exécutées sur les nœuds de calcul. Chaque tâche constitue une unité d’exécution distribuée. Elle récupère les données des autres tâches, regroupe les fichiers et les lit depuis le stockage.
Les nœuds de calcul stockent toutes les données utilisateur et exécutent les requêtes en parallèle. Le Data Movement Service (DMS), service interne au niveau du système, assure le déplacement des données entre les nœuds, permettant l’exécution parallèle et garantissant des résultats précis.
Synapse SQL utilise Azure Storage pour assurer la sécurité des données utilisateur. Le stockage Azure héberge et gère vos données, avec des frais d’utilisation distincts.
Fonctionnalités des pools SQL dédiés Azure Synapse
Voici les principales fonctionnalités offertes par les pools SQL Azure Synapse :
- Interrogation des données dans divers formats tels que Parquet, JSON et CSV, directement dans le lac de données.
- Visualisation des données les plus récentes grâce à une abstraction relationnelle.
- Transformation des données du lac à l’aide du langage T-SQL, de manière simple et évolutive.
- Analyse rapide de la structure et du contenu des données du lac par les data scientists, grâce à OPENROWSET ou aux fonctionnalités d’inférence automatique du schéma.
- Exploration du lac, transformation et simplification des pipelines de transformation de données par les ingénieurs de données.
- Accès aux données et génération de tables externes via le langage T-SQL et d’autres outils familiers pour les analystes de données. Ces outils peuvent également être connectés à un pool SQL sans serveur.
- Création immédiate de rapports BI par les professionnels de l’informatique décisionnelle, basés sur les tables Spark ou un lac de données.
Pool SQL dédié Vs. Pool SQL sans serveur
Pool SQL sans serveur
Les espaces de travail Azure Synapse disposent d’un pool SQL sans serveur qui fonctionne comme un service de requête pour les lacs de données. Il ne nécessite pas de configuration supplémentaire pour accéder aux données. Il est entièrement sans serveur et ne requiert aucune infrastructure pour sa configuration ou sa maintenance.
La mise à l’échelle est automatique pour répondre aux besoins en ressources, et l’utilisateur ne paie que pour les données traitées, et non pour les ressources réservées. Le pool SQL sans serveur crée également des statistiques pour optimiser les exécutions de requêtes.
Par exemple, lors de l’exécution répétée d’une même requête ou de requêtes avec des plans d’exécution similaires, ces statistiques sont réutilisées.
Ces fonctionnalités permettent d’analyser rapidement de grands volumes de données, sans nécessiter de copie ou de chargement préalable dans un emplacement spécifique.
Pool SQL dédié
Le pool SQL dédié Synapse est le successeur d’Azure SQL Data Warehouse et propose toutes les fonctionnalités d’entreposage de données d’entreprise. Il se distingue du pool SQL sans serveur, car il nécessite une création et une suppression par l’utilisateur. Ce dernier a également le choix des ressources à utiliser.
Ces ressources sont mesurées en Data Warehousing Units (DWU), qui combinent les ressources CPU, mémoire et IO.
Le nombre de DWU détermine les performances et le coût du pool. Au lieu d’une facturation par requête, la facturation se fait à chaque fois que le pool est actif, quel que soit le travail effectué.
Pour éviter des coûts inutiles, les pools dédiés peuvent être arrêtés et redémarrés. Un pool SQL dédié de 100 DWU a été créé pour notre test.
Une fois le pool créé, les données peuvent y être chargées à l’aide de la commande COPY, de PolyBase avec des requêtes T-SQL, ou encore d’un pipeline. Ces données sont stockées dans un format en colonnes, au sein de tables relationnelles.
Pool SQL dédié | Pool SQL sans serveur | |
Fonction | Interrogation et ingestion du lac de données | Interrogation des fichiers du lac de données |
Infrastructure | Nécessite une infrastructure : serveurs dédiés | Aucune infrastructure n’est requise pour la transformation ou l’exploration des données. |
Stockage des données | Tables relationnelles | Data Lake |
Gestion des coûts | Possibilité de gestion des coûts en mettant en pause le pool SQL et en réduisant l’entrepôt. | Gestion automatique des coûts, facturation selon le principe de paiement à la demande. |
Facturation | Coût basé sur les ressources réservées. | Coût basé sur le volume de données traitées par requête. |
Modèle de tarification | Paiement par DWU provisionné. | Paiement par To traité. |
Conclusion
Voici une présentation d’Azure SQL Data Warehouse, renommé Azure Synapse Dedicated SQL Pool. Bien que l’apparence d’un pool SQL dédié puisse évoquer un serveur SQL traditionnel, son architecture sous-jacente, basée sur un traitement massivement parallèle, est fondamentalement différente. Certains concepts et techniques ne sont applicables qu’à ce type de pool.
N’hésitez pas à explorer également les différences entre un Data Lake et un Data Warehouse.