PolyBase :
Polybase est une technologie qui permet de requêter et de combiner des données non-relationnelles et relationnelles à partir de SQL Server
PolyBase supporte Hadoop et Azure Blob Storage
Les requêtes sont optimisées pour pousser le calcul vers Hadoop
Comment créer une table polybase :
Pré requis :
- Un compte Azure
- Créer un blob storage
- Telecharger Azure Storage Explorer pour importer des données dans le Blob
Voici le contenu du fichier Conso que nous allons créer :
20140101;400;479 20150101;500;598 20140101;500;598 20140101;1000;1196 20160101;300;359![]()
![]()
Une fois qu’on a créé notre fichier on va créer notre table dans SQL Server 2016
Vérifier au préalable que les services polybase sont bien démarré et que l’installation de polybase a bien été réalisée.
Il faut dans un premier temps configurer Polybase afin d’acceder aux tables externes :
sp_configure ‘hadoop connectivity’, 7;
reconfigure
Ici nous choisissons 7 afin de pouvoir accéder à Azure mais aussi aux cluster Hortonworks voici le détail des différentes options possibles :
- Option 0: Disable Hadoop connectivity
- Option 1: Hortonworks HDP 1.3 on Windows Server
- Option 1: Azure blob storage (WASB[S])
- Option 2: Hortonworks HDP 1.3 on Linux
- Option 3: Cloudera CDH 4.3 on Linux
- Option 4: Hortonworks HDP 2.0 on Windows Server
- Option 4: Azure blob storage (WASB[S])
- Option 5: Hortonworks HDP 2.0 on Linux
- Option 6: Cloudera 5.1 on Linux
- Option 7: Hortonworks 2.1 and 2.2 on Linux
- Option 7: Hortonworks 2.2 on Windows Server
- Option 7: Azure blob storage (WASB[S])
Pour plus d’information vous pouvez consulter la page suivante : https://msdn.microsoft.com/en-us/library/mt143174.aspx
Redémarrer le service de votre instance pour plus de sécurité.
Créer Nos informations d’identification :
Il faut au préalable créer une clé d’encryptions :
CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘Test123!’;
Ensuite nous allons créer un login vers notre conteneur de blob
CREATE DATABASE SCOPED CREDENTIAL TestCredential
WITH
IDENTITY = ‘user’,
SECRET = mdp Azure
Nous testons :
Select * from sys.database_credentials
Nous allons créer une connexion vers notre espace de stockage
CREATE EXTERNAL DATA SOURCE AzureStorage
WITH (
TYPE = HADOOP,
LOCATION = ‘wasb://data@testpoly.blob.core.windows.net/’,
CREDENTIAL = TestCredential
);
Data = nom du container
Testpoly = compte de stockage
Nous allons créer le type de fichier que nous allons chercher à lire
CREATE EXTERNAL FILE FORMAT TextFile
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (FIELD_TERMINATOR = ‘;’)
);
Une fois ces opérations réalisé nous allons créer la table externe nécessaire :
CREATE EXTERNAL TABLE dbo.Conso(
DateId INT NOT NULL,
MontantHT INT NOT NULL,
MontantTTC INT NOT NULL
)
WITH (
LOCATION=’Conso’,
DATA_SOURCE=AzureStorage,
FILE_FORMAT=TextFile
);
Nous allons tester :
;