Configurer PolyBase pour accéder à des données externes dans SQL Server
S'applique à : SQL Server
Cet article explique comment utiliser PolyBase sur une instance de SQL Server pour interroger des données externes dans une autre instance SQL Server.
Prérequis
Si vous n’avez pas installé PolyBase, consultez Installation de PolyBase. Cet article décrit les prérequis pour l’installation. Une fois l’installation terminée, veillez également à activer Polybase.
La source de données externe SQL Server utilise l’authentification SQL.
La clé principale doit être créée avant les informations d’identification incluses dans l’étendue de la base de données.
Configurer une source de données externes SQL Server
Pour interroger les données d’une source de données SQL Server, vous devez créer des tables externes pour référencer les données externes. Cette section fournit un exemple de code pour créer ces tables externes.
Pour des performances de requêtes optimales, créez des statistiques sur les colonnes de tables externes, en particulier celles utilisées pour les jointures, les filtres et les agrégats.
Les commandes Transact-SQL suivantes sont utilisées dans cette section :
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
Créez des informations d’identification incluses dans l’étendue de la base de données pour accéder à la source SQL Server. L’exemple suivant crée des informations d’identification pour la source de données externe avec
IDENTITY = 'username'
etSECRET = 'password'
.CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials WITH IDENTITY = 'username', SECRET = 'password';
Important
Le connecteur ODBC SQL pour Polybase prend uniquement en charge l’authentification de base (l’authentification Kerberos n’est pas prise en charge).
Créez une source de données externe avec CREATE EXTERNAL DATA SOURCE. L’exemple suivant :
- Crée une source de données externe pour nommée
SQLServerInstance
. - Identifie la source de données externe (
LOCATION = '<vendor>://<server>[:<port>]'
). Dans l’exemple, elle pointe vers une instance par défaut de SQL Server. - Indique si le calcul doit faire l’objet d’un push vers la source (
PUSHDOWN
).PUSHDOWN
estON
par défaut.
Pour finir, l’exemple utilise les informations d’identification créées précédemment.
CREATE EXTERNAL DATA SOURCE SQLServerInstance WITH ( LOCATION = 'sqlserver://SqlServer', PUSHDOWN = ON, CREDENTIAL = SQLServerCredentials);
- Crée une source de données externe pour nommée
Créez la table externe avec CREATE EXTERNAL TABLE. L’instruction nécessite un classement et l’emplacement nécessite une notation en trois parties (
<database>.<schema>.<table>
).CREATE EXTERNAL TABLE DatabasesExternal ( name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS) WITH (LOCATION = 'master.sys.databases', DATA_SOURCE = SQLServerInstance);
Éventuellement, créez des statistiques sur une table externe.
Pour des performances de requêtes optimales, créez des statistiques sur les colonnes de tables externes, en particulier celles utilisées pour les jointures, les filtres et les agrégats.
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
WITH FULLSCAN;
Important
Une fois que vous avez créé une source de données externes, vous pouvez utiliser la commande CREATE EXTERNAL TABLE afin de créer une table requêtable sur cette source.
Types compatibles avec le connecteur SQL Server
Vous pouvez également utiliser le connecteur SQL Server (sqlserver://) pour accéder à la base de données Azure SQL. Pour accomplir cette tâche, suivez les étapes indiquées précédemment. Vérifiez que les informations d’identification incluses dans l’étendue de la base de données, l’adresse du serveur, le port et la chaîne d’emplacement sont bien ceux de la source de données de la base de données Azure SQL à laquelle vous souhaitez vous connecter.
Étapes suivantes
Pour plus de tutoriels sur la création de sources de données externes et de tables externes vers diverses sources de données, consultez référence PolyBase Transact-SQL.
Pour en savoir plus sur PolyBase, consultez Vue d’ensemble de SQL Server PolyBase.