Microsoft

Bien démarrer avec PolyBase dans SQL Server 2016

Avec PolyBase, si vous utilisez SQL Server 2016 comme source de données, vous avez aussi accès à Hadoop et Azure Blob Storage quel que soit votre environnement.

Polybase : c’est certainement l’une des fonctions les plus passionnantes de SQL Server 2016, la dernière mouture du serveur de bases de données de Microsoft. Cet outil fournit une couche d’accès transparente qui facilite la connexion du moteur de la base à des sources de données externes, structurées ou non. PolyBase est aussi optimisé pour les workloads dédiées à l’entrepôt de données et les traitements analytiques. Ce qui en fait un outil simple pour fusionner le monde du Big Data au sein de l’univers SQL Server.

Pour autant, PolyBase n’est pas nouveau. Cet outil faisait déjà partie de Microsoft Analytics Platform System, avec pour nom Parallel Data Warehouse. PolyBase crée une passerelle entre SQL Server et des sources de données externes, permettant d’avoir recours à T-SQL pour interroger les données comme vous pouvez le faire avec des tables traditionnelles.

PolyBase : comment ça marche

Avec PolyBase, on peut accéder à des données contenues dans des clusters Hadoop ou Azure Blob Storage, mais avec les mêmes outils de SQL Server utilisés pour créer des statistiques, ou encore s’appuyer sur des applications de BI. Vous pouvez même créer des requêtes sur des données semi-structurées qui ont été associées aux jeux de données de SQL Server. Sa force est qu’il est intégré directement dans SQL Server et ne demande pas d’outils tiers pour effectuer des opérations identiques ni des compétences en Java, Map/Reduce, Hive ou d’autres concepts associés à Hadoop. Vous vous reposez sur les outils existants de SQL Server et sur T-SQL pour explorer des données non structurées et semi-structurées, le tout dans un environnement SQL Server.

Si vous utilisez PolyBase pour interroger Hadoop, SQL Server effectue le gros des traitements sur le cluster Hadoop, là où se trouvent les données. Le moteur de Polybase détermine quand générer les traitements MAP selon les besoins. De plus, ce moteur parallélise les opérations lorsqu’il faut importer des données d’Hadoop ou d’Azure par exemple.

Autre intérêt : le travail de PolyBase reste transparent pour l’application qui effectue des requêtes car les sources de données externes sont intégrées au schéma de la base. Vous pouvez ainsi interroger et intégrer les données en provenance de plusieurs systèmes, sans avoir à transformer les applications.

Démarrer avec PolyBase

Pour installer PolyBase, vous devez d’abord sélectionner la fonction PolyBase Query Service for External Data dans l’installation de SQL Server. Le module ne peut s’installer que sur une unique instance par machine. L’installation ajoute 3 bases de données (DWConfiguration, DWDiagnostics et DWQueue) et 2 services (SQL Server PolyBase Engine et SQL Server PolyBase Data Movement Service).

Actuellement,  les déclinaisons Hadoop de Cloudera et Hortonworks sont supportées ainsi que Azure Blob Storage. Microsoft envisage d’ajouter d’autres sources de données avec les versions à venir de SQL Server.

Après avoir installé SQL Server avec PolyBase, vous devez exécuter la procédure stockée sp_configure pour activer Polybase. A partir de là, vous pouvez suivre les étapes ci-dessous pour ajouter l’objet d’un schéma à votre base de données :

  • Créer un objet source de données externe pour établir une connexion vers un système de fichiers Hadoop ou vers Azure Blob Storage. Pour un tel objet, utilisez la commande CREATE EXTERNAL DATA SOURCE.
  • Créer un objet format de fichier externe pour spécifier le format des données Hadoop ou Azure. Aujourd’hui, PolyBase supporte 3 formats : texte délimité, Hive RCFile, Hive ORC. Pour définir un tel format, utilisez la commande CREATE EXTERNAL FILE FORMAT.
  • Créer une ou plusieurs tables externes en fonction des sources de données et des formats. Les tables fournissent une structure en fonction des schémas pour référencer les données externes. Elles peuvent être référencées comme des tables relationnelles de SQL Server. Pour une table, utilisez la commande CREATE EXTERNAL TABLE.

En ouvrant SQL Server Management Studio, vous trouverez plusieurs nouveaux dossiers dans Objects Explorer au niveau de la base. Le premier est le sous-dossier External Resources. Il contient toutes les sources de données et les formats de fichiers définis. Le dossier Folder comprendra également le sous-dossier External Tables qui rassemble toutes les tables externes définies.

Après avoir créé vos tables externes, vous pouvez utiliser la commande CREATE STATISTICS pour créer des statistiques d’optimisation de requêtes pour ces mêmes tables. Lorsque cela est mis en place, le moteur de la base importe les données dans une table temporaire de SQL Server.

Microsoft a également inclus plusieurs vues dynamiques à SQL Server pour gérer les requêtes PolyBase. A cela s’ajoute des options pour récupérer les données de ces sources externes de données, fichiers et tables qui ont alors été définis.

En plaçant Polybase directement dans SQL Server, Microsoft a franchi une étape clé : rapprocher les données non structurées et semi-structurées des données structurées. Ces données peuvent être exposées aux outils de BI de la marque, comme Power Pivot et Power Query ainsi qu’à d’autres outils tiers comme ceux de Tableau et Cognos.

 

Pour approfondir sur Outils décisionnels et analytiques