Introduction
Lors du MS Expérience de 2018, Hoda El Haddad et Nadia Ben El Kadi de Microsoft ont présenté une session sur SQL Server Big data clusters. Il s’agit d’un cluster de systèmes de gestion de base de données.
L’architecture de SQL Server Big data clusters est composée de 3 parties :
– La couche de contrôle
– La couche de calcul
– La couche de donnée
Dans cet article, nous nous intéressons aux nouveautés SQL Server 2019 dans le contexte SQL Server Big data clusters. Nous verrons ensuite les avantages Kubernetes et une mise en pratique dans Azure avec Azure Data Studio.
Couche de calcul : Kubernetes
Dans SQL Server Big Data Server, des instances SPARK et SQL Server coexistent sur tous les nœuds HDFS pour rendre l’accès aux données plus rapide et plus sécurisé.
Définition
Un conteneur est une unité logicielle standardisée qui inclut tout ce qui est nécessaire pour son exécution. Kubernetes est une plateforme d’hébergement de container.
Avantages des containers et de Kubernetes
Le déploiement est rapide grâce à la récupérations d’images. Le container est autonome : il n’y a pas d’installation supplémentaire à faire. Les mises à jour sont rendues aisées par la possibilité de simplement uploader une nouvelle image.
L’architecture est évolutive et parallélisable, conçue pour une forte élasticité.
L’objectif critique de Kubernetes est de garantir la disponibilité au serveur SQL.
Il est possible d’utiliser plusieurs nœuds Kubernetes, ainsi une panne d’un nœud n’impactera pas le système.
Couches Compute et Data : SQL Server 2019
Dans les couches Compute et Data, SQL Server Big Data Server utilise des instances de SQL Server 2019. Nous allons voir un exemple de use case ainsi que quelques nouveautés de SQL Server 2019.
Use Case
Une entreprise souhaite lier ses données stockées sur différentes sources, dont HDFS, SQL Server et Cosmos DB. Cette entreprise souhaite conserver ses différentes bases de données.
PolyBase
PolyBase permet d’accéder aux stores de données relationnelles et non relationnels, on requête directement sur les bases existantes. Les requêtes sont programmées en T-SQL.
Avec Polybase, il n’est pas nécessaire de migrer les données dans un datawarehouse, puis de requêter sur ce datawarehouse.
Il permet de mettre en cache les données des différentes sources pour exécuter des requêtes plus rapidement. La mise à l’échelle est plus rapide.
L’optimiseur de requête prend la décision de déléguer les calculs, à Hadoop par exemple, lorsque cela améliore les performances. Il utilise pour cela des statistiques sur des tables externes. La délégation des calculs a pour effet de créer des tâches MapReduce et de tirer parti des ressources de calcul distribuées.
Bases de données supportées
Grâce aux nouveaux connecteurs PolyBase, de nombreuses bases de données sont supportées.
Les bases de données relationnelles (Oracle, Microsoft SQL Server, Teradata), les bases de données non relationnelles NoSQL (MongoDb, CosmosDb), ainsi que sur les bases de données de Big Data (Cloudera, hadoop).
Code
La commande suivante permet de créer une source de données externe (similaire à une vue).
CREATE EXTERNAL DATA SOURCE SqlStoragePool
WITH (LOCATION = 'sqlhdfs://service-mssql-controller:8080');
GO
Ensuite, on peut sélectionner des données directement ou via une jointure sur cette source avec la commande suivante :
SELECT [name] ,[lastname] ,[email]
FROM [Database].[dbo].[SqlStoragePool];
Installation de SQL Server Big data clusters
Pour déployer un cluster Kubernetes dédié à SQL Server 2019, il existe deux possibilités :
– Utiliser Kubeadm directement sur une machine Linux
– Azure Kubernetes Service (AKS) pour un déploiement sur Azure
Azure Data Studio
Pour surveiller notre cluster SQL Server big data, nous allons utiliser Azure Data Studio.
Il s’agit d’une alternative à SQL Server Management Studio utilisée par les DevOps et les DBA.
Il simplifie le développement, la configuration, la surveillance et la résolution de problèmes liés aux bases de données SQL Server.
Conclusion
SQL Server Big data clusters est une solution qui utilise SQL Server 2019 pour le stockage et Kubernetes pour garantir la disponibilité.
Il est possible de gérer SQL Server Big data depuis Azure Data Studio.
Liens
Creating a Kubernetes cluster for SQL Server 2019 Big data cluster :
https://github.com/Microsoft/sql-server-samples/tree/master/samples/features/sql-big-data-cluster
Comparaison entre Azure Data Studio et SQL Server Management Studio :
https://cloudblogs.microsoft.com/sqlserver/2018/09/25/azure-data-studio-for-sql-server/
GitHub Azure Data Studio :
https://github.com/Microsoft/azuredatastudio
Liste complète des nouveautés SQL Server 2019 :