Exercice - Créer une table externe à partir d’une base de données dans Azure SQL Database

Effectué

Dans cette unité, vous vous connectez à une base de données dans Azure SQL Database pour créer et utiliser une table externe à l’aide des services PolyBase. Pour cet exercice, vous devez :

  • Créez une base de données dans SQL Server 2025.
  • Créez une clé principale de base de données pour sécuriser les informations d'identification spécifiques au périmètre de la base de données Azure SQL.
  • Créer des informations d’identification délimitées à la base de données pour accéder à la source de données Azure SQL Database.
  • Créez une source de données externe à l’aide de l'identifiant limité à la portée de la base de données.
  • Interrogez la source de données externe à l’aide d’OPENROWSET.
  • Créez une table externe à l’aide de la source de données externe.

Conditions préalables

  • Une base de données Azure SQL créée à l’aide des instructions de démarrage rapide : Créer une base de données unique - Azure SQL Database. Pour cet exercice, nommez le serveur polybaseserver Azure SQL et la base de données polybase2025testAzure SQL. Veillez à sélectionner Utiliser l’exemple de données > existant sous Paramètres supplémentaires lorsque vous créez la base de données.

  • Instance SQL Server 2025 avec PolyBase installée et activée comme pour l’exercice précédent. Pour vous connecter à une autre base de données telle qu’une base de données Azure SQL, vous devez utiliser les services PolyBase. Ouvrez le Gestionnaire de configuration SQL Server et vérifiez que les services SQL Server PolyBase Data Movement et SQL Server PolyBase Engine sont en cours d’exécution.

Créer une base de données

Dans votre instance SQL Server, créez une base de données appelée Demo2et basculez vers cette base de données.

USE MASTER;
 
IF EXISTS (SELECT * FROM sys.databases WHERE [name] = N'Demo2')
BEGIN
    ALTER DATABASE Demo2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE IF EXISTS Demo2;
END;
 
CREATE DATABASE Demo2;
 
USE Demo2;

Créez la clé principale de base de données

Créez une clé principale de base de données pour cette nouvelle base de données, comme dans l’exercice précédent.

DECLARE @randomWord VARCHAR(64) = NEWID();
DECLARE @createMasterKey NVARCHAR(500) = N'
IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE name = ''##MS_DatabaseMasterKey##'')
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '  + QUOTENAME(@randomWord, '''')
EXEC sp_executesql @createMasterKey;
 
SELECT * FROM sys.symmetric_keys;

Créer les informations d’identification délimitées à la base de données

Créez les identifiants spécifiques à la base de données pour se connecter à votre serveur logique Azure SQL. Remplacez <sql_user> et <password> par le nom d'utilisateur et le mot de passe pour votre serveur Azure SQL.

CREATE DATABASE SCOPED CREDENTIAL AzureSQLDB
WITH IDENTITY = '<sql_user>', Secret = '<password>';

Créer la source de données externe pour Azure SQL Database

Créez la source de données externe pointant vers le serveur logique Azure SQL. Vous utilisez le sqlserver:// préfixe pour vous connecter au serveur. Dans cet exemple, le nom complet du serveur est polybaseserver.database.windows.net.

CREATE EXTERNAL DATA SOURCE AzureSQLDB
    WITH ( LOCATION = 'sqlserver://polybaseserver.database.windows.net',
    CREDENTIAL = AzureSQLDB);

Activer des requêtes distribuées ad hoc

Par défaut, SQL Server n’autorise pas les requêtes distribuées ad hoc à l’aide d’OPENROWSET. Exécutez la sp_configure commande pour activer les requêtes distribuées ad hoc. Pour plus d’informations, consultez les requêtes distribuées ad hoc (option de configuration de serveur).

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

EXEC SP_CONFIGURE N'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

Utiliser OPENROWSET pour accéder à la base de données Azure SQL

Utilisez OPENROWSET pour vous connecter à la polybase2025test base de données dans Azure SQL Database et interroger la SalesLT.Customer table. Vous devez spécifier un fournisseur. Cet exemple utilise le fournisseur MSOLEDBSQL, installé avec SQL Server 2025. Vous devez également spécifier l’authentification <user> SQL et <password>

SELECT
*
FROM OPENROWSET(
N'MSOLEDBSQL',
'Server=polybaseserver.database.windows.net;database=polybase2025test;uid=<user>;pwd=<password>',
'SELECT * FROM SalesLT.Customer'
);

Créer une table externe de SQL Server 2025 vers Azure SQL Database

Maintenant que vous avez vérifié que vous pouvez interroger la source de données externe, vous pouvez créer et afficher une table externe appelée ext_tblCustomers à partir de cette source de données à l’aide des informations d’identification délimitées à la base de données et de la source de données externe.

CREATE EXTERNAL TABLE ext_tblCustomers(
   CustomerID INT
   ,LastName  NVARCHAR(50)
   ,EmailAddress  NVARCHAR(50)
)
WITH 
(LOCATION = N'polybase2025test.SalesLT.Customer'
,DATA_SOURCE = AzureSQLDB);
 
SELECT * FROM ext_tblCustomers;

Dans cette unité, vous avez utilisé PolyBase sur une instance SQL Server 2025 pour interroger et créer une table externe à partir d’Azure SQL Database. Passez à l’unité suivante pour en savoir plus sur la commande CREATE EXTERNAL TABLE AS SELECT (CETAS) et ses avantages.