Øvelse - Opret en ekstern tabel fra en database i Azure SQL Database
I denne enhed forbinder du til og opretter en ekstern tabel fra en database i Azure SQL Database ved at bruge PolyBase-tjenesterne. Til denne øvelse gør du:
- Opret en database i SQL Server 2025.
- Opret en database-hovednøgle for at sikre Azure SQL-databasescoped-legitimationen.
- Opret en databasescoped credential for at få adgang til Azure SQL Database-datakilden.
- Opret en ekstern datakilde ved at bruge databasescoped credential.
- Forespørg den eksterne datakilde ved hjælp af OPENROWSET.
- Opret en ekstern tabel ved hjælp af den eksterne datakilde.
Forudsætninger
En Azure SQL-database oprettet ved at bruge instruktionerne i Quickstart: Opret en enkelt database - Azure SQL Database. Til denne øvelse skal du navngive Azure SQL-serveren
polybaseserverog Azure SQL-databasenpolybase2025test. Husk at vælge Brug eksisterende dataeksempel > under Yderligere indstillinger, når du opretter databasen.En SQL Server 2025-instans med PolyBase installeret og aktiveret som ved den forrige øvelse. For at forbinde til en anden database, såsom en Azure SQL-database, skal du bruge PolyBase-tjenester. Åbn SQL Server Configuration Manager og sørg for, at SQL Server PolyBase Data Movement og SQL Server PolyBase Engine-tjenesterne kører.
Opret en database
I din SQL Server-instans opretter du en database kaldet Demo2, og skifter til at bruge den database.
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;
Opret databasens hovednøgle
Opret en databasehovednøgle til denne nye database, som i den forrige øvelse.
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;
Opret den database-scopede legitimation
Opret den databasescopede legitimation til at forbinde til din Azure SQL logiske server. Erstat <sql_user> og <password> med brugernavn og adgangskode til din Azure SQL-server.
CREATE DATABASE SCOPED CREDENTIAL AzureSQLDB
WITH IDENTITY = '<sql_user>', Secret = '<password>';
Opret den eksterne datakilde til Azure SQL Database
Opret den eksterne datakilde, der peger på Azure SQL logiske server. Du bruger præfikset sqlserver:// til at forbinde til serveren. I dette eksempel er polybaseserver.database.windows.netdet fuldt kvalificerede servernavn .
CREATE EXTERNAL DATA SOURCE AzureSQLDB
WITH ( LOCATION = 'sqlserver://polybaseserver.database.windows.net',
CREDENTIAL = AzureSQLDB);
Aktiver ad hoc distribuerede forespørgsler
Som standard tillader SQL Server ikke ad hoc distribuerede forespørgsler ved brug af OPENROWSET. Kør kommandoen sp_configure for at aktivere ad hoc distribuerede forespørgsler. For mere information, se ad hoc distribuerede forespørgsler (serverkonfigurationsmulighed).
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC SP_CONFIGURE N'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
Brug OPENROWSET til at få adgang til Azure SQL-databasen
Brug OPENROWSET til at forbinde til databasen polybase2025test i Azure SQL Database og forespørge SalesLT.Customer tabellen. Du skal specificere en udbyder. Dette eksempel bruger MSOLEDBSQL-udbyderen, som er installeret med SQL Server 2025. Du skal også specificere SQL-autentificeringen <user> og <password>
SELECT
*
FROM OPENROWSET(
N'MSOLEDBSQL',
'Server=polybaseserver.database.windows.net;database=polybase2025test;uid=<user>;pwd=<password>',
'SELECT * FROM SalesLT.Customer'
);
Opret en ekstern tabel fra SQL Server 2025 til Azure SQL Database
Nu hvor du har bekræftet, at du kan forespørge den eksterne datakilde, kan du oprette og se en ekstern tabel kaldt ext_tblCustomers fra den datakilde ved at bruge databasescoped credential og ekstern datakilde.
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;
I denne enhed brugte du PolyBase på en SQL Server 2025-instans til at forespørge og oprette en ekstern tabel fra Azure SQL Database. Gå videre til næste enhed for at lære om kommandoen CREATE EXTERNAL TABLE AS SELECT (CETAS) og dens fordele.