SQL Server Big data clusters

Brouillon

À venir

0 commentaire

SQL

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

 

La couche de contrôle gère le cluster SQL Server Big Data, avec Kubernetes. Des instances de SQL Server 2019 fonctionnent dans la couche de calcul. La couche de données contient des noeuds de stockage composés de SQL Server sur Linux, de Spark et de HDFS.

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.


A lire sur le même sujet : Requête récursive avec SQL Server

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];

BannièreV2-LBComplexité

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.

 

Azure Data Studio est un logiciel open source et multiplateforme (basé sur Electron) qui permet de se connecter directement à SQL Server.

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.


A lire sur le même sujet : SQL - exporter le contenu d'une table


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 :

https://docs.microsoft.com/fr-fr/sql/sql-server/what-s-new-in-sql-server-ver15?view=sqlallproducts-allversions

Arnaud Couchet

Diplômé de l'ENSIIE (Ecole Nationale Supérieure d’Informatique pour l’Industrie et l’Entreprise), il travaille depuis 1 an sur les technologies Microsoft et plus particulièrement C# et .NET.

Profil de l'auteur